import mapboxgl from 'mapbox-gl';
import { Camera } from 'three';
import { PolyScene } from '../../../engine/scene/PolyScene';
import { MapboxLayersController } from './LayersController';
import { ThreejsLayerRenderFunc } from './layers/MapboxThreejsLayer';
import { MapboxViewer } from '../../../engine/viewers/Mapbox';
interface CreateMapboxMapOptions {
    camera: Camera;
    container: HTMLElement;
    scene: PolyScene;
    renderFunc: ThreejsLayerRenderFunc;
    viewer: MapboxViewer;
}
declare class MapboxMapsControllerClass {
    private static _instance;
    static instance(): MapboxMapsControllerClass;
    private constructor();
    private _scene;
    private _mapByCameraName;
    private _lastCreatedMap;
    private _resolves;
    waitForMap(): Promise<mapboxgl.Map>;
    private _styleFlushed;
    private _flushCallbacksWithMap;
    createMap(options: CreateMapboxMapOptions): {
        map: mapboxgl.Map;
        layersController: MapboxLayersController;
    };
    private _dispatchCameraMove;
}
export declare const MapboxMapsController: MapboxMapsControllerClass;
export {};
