import * as THREE from 'three';
export declare class TrackballControls extends THREE.EventDispatcher {
    camera: THREE.PerspectiveCamera | THREE.OrthographicCamera;
    domElement: HTMLElement;
    window: Window;
    enabled: boolean;
    screen: any;
    rotateSpeed: number;
    zoomSpeed: number;
    panSpeed: number;
    noRotate: boolean;
    noZoom: boolean;
    noPan: boolean;
    staticMoving: boolean;
    dynamicDampingFactor: number;
    minDistance: number;
    maxDistance: number;
    keys: number[];
    mouseButtons: any;
    target: THREE.Vector3;
    private _state;
    private _keyState;
    private _eye;
    private _movePrev;
    private _moveCurr;
    private _lastAxis;
    private _lastAngle;
    private _zoomStart;
    private _zoomEnd;
    private _touchZoomDistanceStart;
    private _touchZoomDistanceEnd;
    private _panStart;
    private _panEnd;
    private target0;
    private position0;
    private up0;
    private zoom0;
    private keydown;
    private keyup;
    private mousedown;
    private mouseup;
    private mousemove;
    private mousewheel;
    private touchstart;
    private touchmove;
    private touchend;
    private contextmenu;
    constructor(camera: THREE.PerspectiveCamera | THREE.OrthographicCamera, domElement: HTMLElement, domWindow?: Window);
    dispose(): void;
    handleResize(): void;
    getMouseOnScreen: (pageX: number, pageY: number) => THREE.Vector2;
    getMouseOnCircle: (pageX: number, pageY: number) => THREE.Vector2;
    rotateCamera: () => void;
    zoomCamera: () => void;
    panCamera: () => void;
    checkDistances(): void;
    update(): void;
    reset(): void;
}
