import type { Vec3 } from '../math'; import * as THREE from 'three/webgpu'; export type FlyToControls = { target: THREE.Vector3; enabled: boolean; update: () => unknown; }; type FlyToHooks = { camera: () => THREE.Camera | undefined; controls: () => FlyToControls | undefined; duration_ms: () => number; invalidate: () => void; on_start?: () => void; on_change?: () => void; on_end?: () => void; }; export declare const DEFAULT_FLY_TO_DURATION_MS = 400; export declare const ease_in_out: (progress: number) => number; export declare function create_fly_to(hooks: FlyToHooks): { start: (dir: Vec3) => void; step: (delta_seconds: number) => void; release: () => void; readonly active: boolean; }; export {};