import { EventEmitter } from 'eventemitter3';
import 'reflect-metadata';
import { ITexture2D } from '../renderer/ITexture2D';
import { ISceneService } from '../scene/ISceneService';
import { IICONMap, IIconService, IImage } from './IIconService';
export default class IconService extends EventEmitter implements IIconService {
    canvasHeight: number;
    private texture;
    private canvas;
    private iconData;
    private iconMap;
    private ctx;
    private loadingImageCount;
    isLoading(): boolean;
    init(): void;
    addImage(id: string, image: IImage): void;
    /**
     * 适配小程序
     * @param id
     * @param image
     * @param sceneService
     */
    addImageMini(id: string, image: IImage, sceneService: ISceneService): void;
    getTexture(): ITexture2D;
    getIconMap(): IICONMap;
    getCanvas(): HTMLCanvasElement;
    hasImage(id: string): boolean;
    removeImage(id: string): void;
    destroy(): void;
    loadImage(url: IImage): Promise<unknown>;
    private update;
    /**
     * 将新增的 icon 图像存储到画布上（正方形）
     */
    private updateIconAtlas;
    /**
     * 计算 icon 在画布上的排布（是否需要换行）
     */
    private updateIconMap;
    /**
     * 适配小程序
     * @param url
     * @returns
     */
    private loadImageMini;
}
