import * as THREE from 'three'; import type { CameraController } from './camera-controller.js'; /** Options for {@link createFollowCamera}: required local-frame `offset`, look-ahead point, and position/rotation damping stiffness. */ export interface FollowCameraOptions { offset: THREE.Vector3; lookAhead?: THREE.Vector3; stiffness?: number; rotationStiffness?: number; } /** * Chase camera: keeps `offset` in the target's local frame and looks at a * `lookAhead` point ahead of it, both with framerate-independent exponential * damping. * * @param camera - Camera to move. * @param target - Object to chase; swap via the returned controller's `follow`. * @param options - Offset (required), look-ahead, and stiffness tuning. * @returns A `CameraController` locked to follow mode; call `update(ctx)` * every frame. * @throws Error when `offset` is missing. * @remarks Three scratch vectors per frame, zero allocation. */ export declare function createFollowCamera(camera: THREE.Camera, target: THREE.Object3D, { offset, lookAhead, stiffness, rotationStiffness, }: FollowCameraOptions): CameraController; //# sourceMappingURL=follow-camera.d.ts.map