import { OrbitCamera } from '../camera/OrbitCamera'; export interface OrbitControllerOptions { rotateSpeed?: number; zoomSpeed?: number; panSpeed?: number; enableRotate?: boolean; enableZoom?: boolean; enablePan?: boolean; rotateButton?: number; panButton?: number; dampingFactor?: number; } export declare class OrbitController { private camera; private element; rotateSpeed: number; zoomSpeed: number; panSpeed: number; enableRotate: boolean; enableZoom: boolean; enablePan: boolean; rotateButton: number; panButton: number; dampingFactor: number; private isRotating; private isPanning; private lastX; private lastY; private pointers; private lastPinchDistance; private velocityTheta; private velocityPhi; private velocityRadius; private onChangeCallback?; private boundHandlers; constructor(camera: OrbitCamera, element: HTMLElement, options?: OrbitControllerOptions); /** * Attach event listeners to element. */ private attach; /** * Detach event listeners. */ detach(): void; /** * Set callback for camera changes. */ onChange(callback: () => void): void; private notifyChange; private onPointerDown; private onPointerMove; private onPointerUp; private onWheel; private getPinchDistance; /** * Update damping (call each frame for smooth deceleration). * Returns true if camera is still moving. */ update(): boolean; /** * Stop all momentum. */ stopMomentum(): void; /** * Clean up resources. */ destroy(): void; }