import { PerspectiveCamera } from 'three/src/cameras/PerspectiveCamera';
import { Raycaster } from 'three/src/core/Raycaster';
import { Vector2 } from 'three/src/math/Vector2';
import { TypedCameraObjNode, BaseViewerOptions } from '@polygonjs/polygonjs/dist/src/engine/nodes/obj/_BaseCamera';
import mapboxgl from 'mapbox-gl';
import { MapboxViewer } from '../../viewers/Mapbox';
import { NodeParamsConfig } from '@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig';
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>;
}
export declare class MapboxCameraObjNode extends TypedCameraObjNode<PerspectiveCamera, MapboxCameraObjParamConfig> {
    paramsConfig: MapboxCameraObjParamConfig;
    static type(): Readonly<'mapboxCamera'>;
    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(): PerspectiveCamera;
    cook(): Promise<void>;
    private _inverse_proj_mat;
    private _cam_pos;
    private _mouse_pos;
    private _view_dir;
    prepareRaycaster(mouse: Vector2, raycaster: Raycaster): void;
    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): MapboxViewer;
}
export {};
