import { EventEmitter } from 'eventemitter3';
import 'reflect-metadata';
import { ISceneConfig } from '../config/IConfigService';
import { ILayer } from '../layer/ILayerService';
import { ISceneService } from './ISceneService';
/**
 * will emit `loaded` `resize` `destroy` event panstart panmove panend
 */
export default class Scene extends EventEmitter implements ISceneService {
    destroyed: boolean;
    loaded: boolean;
    loadFont: boolean;
    fontFamily: string;
    private readonly id;
    /**
     * 使用各种 Service
     */
    private readonly iconService;
    private readonly fontService;
    private readonly controlService;
    private readonly configService;
    private readonly map;
    private readonly coordinateSystemService;
    private readonly rendererService;
    private readonly layerService;
    private readonly cameraService;
    private readonly interactionService;
    private readonly pickingService;
    private readonly shaderModuleService;
    private readonly markerService;
    private readonly popupService;
    /**
     * 是否首次渲染
     */
    private inited;
    private initPromise;
    private rendering;
    /**
     * canvas 容器
     */
    private $container;
    private canvas;
    private markerContainer;
    private hooks;
    constructor();
    init(sceneConfig: ISceneConfig): void;
    /**
     * 小程序环境下初始化 Scene
     * @param sceneConfig
     */
    initMiniScene(sceneConfig: ISceneConfig): void;
    addLayer(layer: ILayer): void;
    addMask(mask: ILayer): void;
    render(): Promise<void>;
    /**
     * 用户自定义添加第三方字体 （用户使用 layer/point/text/iconfont 的前提需要加载第三方字体文件）
     * @param fontFamily
     * @param fontPath
     */
    addFontFace(fontFamily: string, fontPath: string): void;
    getSceneContainer(): HTMLDivElement;
    exportPng(type?: 'png' | 'jpg'): string;
    getSceneConfig(): Partial<ISceneConfig>;
    getPointSizeRange(): Float32Array;
    addMarkerContainer(): void;
    getMarkerContainer(): HTMLElement;
    destroy(): void;
    private handleWindowResized;
    private initContainer;
    private setCanvas;
    private handleMapCameraChanged;
    private addSceneEvent;
}
