/**
 * Creates a pan/zoom controls for a camera
 *
 *
 */
import { Camera } from 'three';
import { TypedCameraControlsEventNode } from './_BaseCameraControls';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { CameraControlsNodeType } from '../../poly/NodeContext';
import { PanZoomControls } from '../../../modules/core/controls/PanZoomControls';
export declare enum MouseControl {
    PAN = "pan",
    DOLLY = "dolly",
    NO_ACTION = "no action"
}
export declare const MOUSE_CONTROLS: MouseControl[];
declare class CameraPanZoomEventParamsConfig extends NodeParamsConfig {
    main: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FOLDER>;
    /** @param enable/disable */
    enabled: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    /** @param toggle on to allow pan */
    allowPan: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    /** @param minimum distance the cursor must travel before the camera is actually moved */
    panThreshold: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** @param toggle on to allow zoom */
    allowZoom: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    /** @param zoom speed */
    zoomSpeed: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** @param zoom to cursor */
    zoomToCursor: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    /** @param minimum distance the cursor must travel before the camera starts zooming */
    zoomThreshold: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** @param toggle on to have damping */
    tdamping: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    /** @param damping value */
    damping: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** @param toggle on to have the pan in screen space */
    screenSpacePanning: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    limits: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FOLDER>;
    /** @param smallest distance the camera can go to the target (perspective cameras only) */
    /** @param min zoom (orthographic cameras only) */
    minZoom: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** @param max zoom (orthographic cameras only) */
    maxZoom: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** @param clamp position */
    clampPosition: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    /** @param min position */
    positionMin: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR3>;
    /** @param max position */
    positionMax: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR3>;
    controls: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FOLDER>;
    /** @param leftMouseButton */
    leftMouseButton: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param leftMouseButton */
    middleMouseButton: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param leftMouseButton */
    rightMouseButton: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param 1 finger touch */
    oneFingerTouch: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param 2 fingers touch */
    twoFingersTouch: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
}
export declare class CameraPanZoomControlsEventNode extends TypedCameraControlsEventNode<CameraPanZoomEventParamsConfig> {
    paramsConfig: CameraPanZoomEventParamsConfig;
    static type(): CameraControlsNodeType;
    endEventName(): string;
    initializeNode(): void;
    private _controlsByElementId;
    private _firstControls;
    protected _createControls(camera: Camera, element: HTMLElement): PanZoomControls;
    createControlsInstance(camera: Camera, element: HTMLElement): Promise<PanZoomControls>;
    protected _bind_listeners_to_controls_instance(controls: PanZoomControls): void;
    setupControls(controls: PanZoomControls): void;
    updateRequired(): boolean;
    disposeControlsForHtmlElementId(html_element_id: string): void;
    private _updateCache;
}
export {};
