import type { BaseViewerOptions } from '@polygonjs/polygonjs/dist/src/engine/nodes/obj/_BaseCamera';
import { TypedCameraObjNode } from '@polygonjs/polygonjs/dist/src/engine/nodes/obj/_BaseCamera';
import mapboxgl from 'mapbox-gl';
import { NodeParamsConfig } from '@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig';
import { MapboxPerspectiveCamera } from '../../../core/mapbox/MapboxPerspectiveCamera';
import type { MapboxCameraObjNodeType } from '../../../core/mapbox/registerMapboxCamera';
import { MapboxViewer } from '../../viewers/Mapbox';
declare const MapboxCameraObjParamConfig_base: (new (...args: any[]) => {
    setMainCamera: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.BUTTON>;
}) & typeof NodeParamsConfig;
declare class MapboxCameraObjParamConfig extends MapboxCameraObjParamConfig_base {
    style: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.STRING>;
    lngLat: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.VECTOR2>;
    zoom: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.FLOAT>;
    zoomRange: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.VECTOR2>;
    pitch: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.FLOAT>;
    bearing: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.FLOAT>;
    updateParamsFromMap: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.BUTTON>;
    allowDragRotate: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.BOOLEAN>;
    addZoomControl: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.BOOLEAN>;
    tlayerBuildings: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.BOOLEAN>;
    tlayer3D: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.BOOLEAN>;
    tlayerSky: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.BOOLEAN>;
    /** @param toggle on to add a CSSRenderer to have html elements on top of the 3D objects */
    setCSSRenderer: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.BOOLEAN>;
    /** @param add a css renderer */
    CSSRenderer: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.NODE_PATH>;
}
export declare class MapboxCameraObjNode extends TypedCameraObjNode<MapboxPerspectiveCamera, MapboxCameraObjParamConfig> {
    paramsConfig: MapboxCameraObjParamConfig;
    static type(): Readonly<MapboxCameraObjNodeType>;
    static onRegister: import("@polygonjs/polygonjs/dist/src/engine/poly/registers/nodes/NodesRegister").OnNodeRegisterCallback;
    integration_data(): void | import("@polygonjs/polygonjs/dist/src/engine/nodes/_Base").IntegrationData;
    private _maps_by_container_id;
    private _map_containers_by_container_id;
    private _canvases_by_container_id;
    private _controls_by_container_id;
    private _moving_maps;
    createObject(): MapboxPerspectiveCamera;
    cook(): Promise<void>;
    static PARAM_CALLBACK_updateCameraAttributes(node: MapboxCameraObjNode): void;
    private _updateCameraAttributes;
    createMap(container: HTMLElement): mapboxgl.Map;
    updateMaps(): void;
    updateMapFromContainerId(container_id: string): void;
    updateMapNav(map: mapboxgl.Map): void;
    firstMap(): mapboxgl.Map | undefined;
    firstId(): string | undefined;
    firstMapElement(): HTMLElement | undefined;
    bounds(): mapboxgl.LngLatBounds | undefined;
    zoom(): number | undefined;
    center(): mapboxgl.LngLat | undefined;
    horizontal_lng_lat_points(): mapboxgl.LngLat[] | undefined;
    centerLngLatPoint(): mapboxgl.LngLat | undefined;
    verticalFarLngLatPoints(): mapboxgl.LngLat[] | undefined;
    verticalNearLngLatPoints(): mapboxgl.LngLat[] | undefined;
    removeMap(container: HTMLElement): void;
    onMoveEnd(container: HTMLElement): void;
    lngLat(): {
        lng: number;
        lat: number;
    };
    cameraOptionsFromParams(): {
        center: {
            lng: number;
            lat: number;
        };
        pitch: number;
        bearing: number;
        zoom: number;
    };
    cameraOptionsFromMap(map: mapboxgl.Map): {
        center: mapboxgl.LngLat;
        pitch: number;
        bearing: number;
        zoom: number;
    };
    _addRemoveControls(map: mapboxgl.Map, container_id: string): void;
    updateParamsFromMap(): void;
    static PARAM_CALLBACK_update_params_from_map(node: MapboxCameraObjNode): void;
    static PARAM_CALLBACK_update_style(node: MapboxCameraObjNode): void;
    static PARAM_CALLBACK_update_nav(node: MapboxCameraObjNode): void;
    updateStyle(): void;
    updateNav(): void;
    createViewer(options?: BaseViewerOptions | HTMLElement): Promise<MapboxViewer | undefined>;
}
export {};
