import { Camera, Vector3, EventDispatcher } from 'three';
import { CameraControls } from '../../nodes/event/_BaseCameraControls';
import { TypedViewer } from '../_Base';
export declare enum CameraControlsEvent {
    start = "start",
    end = "end"
}
export declare const CAMERA_CONTROLS_EVENTS: CameraControlsEvent[];
export declare class ViewerControlsController<C extends Camera> extends EventDispatcher<{
    change: any;
}> {
    private viewer;
    protected _active: boolean;
    private _updateControlsFunc;
    protected _controls: CameraControls | undefined;
    private _mounted;
    constructor(viewer: TypedViewer<C>);
    controls(): CameraControls | undefined;
    mount(): void;
    unmount(): void;
    private _disposeControls;
    update(delta: number): void;
    setActive(active: boolean): void;
    setTarget(target: Vector3): void;
    private _boundEventHandler;
}
