import { Camera } from 'three/src/cameras/Camera';
import { TypedCameraControlsEventNode } from './_BaseCameraControls';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { OrbitControls } from '../../../modules/core/controls/OrbitControls';
import { CameraControlsNodeType } from '../../poly/NodeContext';
declare class CameraOrbitEventParamsConfig extends NodeParamsConfig {
    /** @param enable/disable */
    enabled: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
    /** @param toggle on to allow pan */
    allowPan: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
    /** @param toggle on to allow rotate */
    allowRotate: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
    /** @param toggle on to allow zoom */
    allowZoom: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
    /** @param toggle on to have damping */
    tdamping: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
    /** @param damping value */
    damping: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>;
    /** @param toggle on to have the pan in screen space */
    screenSpacePanning: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
    /** @param rotation speed */
    rotateSpeed: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>;
    /** @param smallest distance the camera can go to the target */
    minDistance: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>;
    /** @param max distance the camera can go away the target */
    maxDistance: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>;
    /** @param toggle on to limit the azimuth (up-down) angle */
    limitAzimuthAngle: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
    /** @param azimuth angle range */
    azimuthAngleRange: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.VECTOR2>;
    /** @param polar (left-right) angle range */
    polarAngleRange: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.VECTOR2>;
    /** @param target position. This is updated automatically as the camera is controlled by user events */
    target: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.VECTOR3>;
    /** @param toggle on to enable keys */
    enableKeys: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>;
    /** @param key modes (pan or rotate) */
    keysMode: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.INTEGER>;
    /** @param keys pan speed */
    keysPanSpeed: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>;
    /** @param keys rotate speed vertical */
    keysRotateSpeedVertical: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>;
    /** @param keys rotate speed horizontal */
    keysRotateSpeedHorizontal: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>;
}
export declare class CameraOrbitControlsEventNode extends TypedCameraControlsEventNode<CameraOrbitEventParamsConfig> {
    params_config: CameraOrbitEventParamsConfig;
    static type(): CameraControlsNodeType;
    initializeNode(): void;
    private _controls_by_element_id;
    create_controls_instance(camera: Camera, element: HTMLElement): Promise<OrbitControls>;
    protected _bind_listeners_to_controls_instance(controls: OrbitControls): void;
    setup_controls(controls: OrbitControls): void;
    private _set_azimuth_angle;
    update_required(): boolean;
    private _target_array;
    private _on_controls_end;
    static PARAM_CALLBACK_update_target(node: CameraOrbitControlsEventNode): void;
    private _update_target;
    dispose_controls_for_html_element_id(html_element_id: string): void;
}
export {};
