import { MapboxCameraObjNode } from '../../../nodes/obj/MapboxCamera';
import { TypedSopNode } from '@polygonjs/polygonjs/dist/src/engine/nodes/sop/_Base';
import { NodeParamsConfig } from '@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig';
import { PerspectiveCamera } from 'three/src/cameras/PerspectiveCamera';
import { Constructor } from '@polygonjs/polygonjs/dist/src/types/GlobalTypes';
export declare function MapboxListenerParamConfig<TBase extends Constructor>(Base: TBase): {
    new (...args: any[]): {
        useBounds: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.BOOLEAN>;
        southWest: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.VECTOR2>;
        northEast: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.VECTOR2>;
        useZoom: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.BOOLEAN>;
        zoom: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.FLOAT>;
        mapboxCamera: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.NODE_PATH>;
        zoomRange: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.VECTOR2>;
        updateAlwaysAllowed: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.BOOLEAN>;
        updateAlways: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.BOOLEAN>;
    };
} & TBase;
declare const MapboxListenerParamsConfig_base: {
    new (...args: any[]): {
        useBounds: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.BOOLEAN>;
        southWest: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.VECTOR2>;
        northEast: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.VECTOR2>;
        useZoom: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.BOOLEAN>;
        zoom: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.FLOAT>;
        mapboxCamera: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.NODE_PATH>;
        zoomRange: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.VECTOR2>;
        updateAlwaysAllowed: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.BOOLEAN>;
        updateAlways: import("@polygonjs/polygonjs/dist/src/engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("@polygonjs/polygonjs/dist/src/engine/poly/ParamType").ParamType.BOOLEAN>;
    };
} & typeof NodeParamsConfig;
declare class MapboxListenerParamsConfig extends MapboxListenerParamsConfig_base {
}
export declare abstract class MapboxListenerSopNode<M extends MapboxListenerParamsConfig> extends TypedSopNode<M> {
    protected _mapboxListener: MapboxListener;
    protected _cameraNode: MapboxCameraObjNode | undefined;
    static PARAM_CALLBACK_update_mapbox_camera(node: MapboxListenerSopNode<MapboxListenerParamsConfig>): void;
    updateMapboxCamera(): void;
    cameraNode(): MapboxCameraObjNode | undefined;
    cameraObject(): PerspectiveCamera | undefined;
    findCameraNode(): MapboxCameraObjNode | undefined;
    abstract _postInitController(): void;
}
declare class MapboxListenerSopNodeWithParams extends MapboxListenerSopNode<MapboxListenerParamsConfig> {
    paramsConfig: MapboxListenerParamsConfig;
    _postInitController(): void;
}
export declare class MapboxListener {
    private _node;
    private _current_camera_path;
    private _camera_controller;
    constructor(_node: MapboxListenerSopNodeWithParams);
    cook(): Promise<void>;
    _updateCameraController(): void;
    _updateFromCamera(): void;
}
export {};
