import { Object3D, Vector3, Vector3Tuple, Ray } from 'three'; export declare const FirstPersonCharacterCameraBehavior: CharacterCameraBehaviorOptions; export type CharacterCameraBehaviorOptions = { /** * @default true */ collision?: { /** * @default 0.2 */ offset?: number; } | boolean; /** * @default [0,1.3,0] */ characterBaseOffset?: Vector3 | Vector3Tuple; /** * @default true */ rotation?: { /** * @default -Math.PI/2 */ minPitch?: number; /** * @default Math.PI/2 */ maxPitch?: number; /** * @default -Infinity */ minYaw?: number; /** * @default +Infinity */ maxYaw?: number; /** * @default 1.0 */ speed?: number; } | boolean; /** * @default true */ zoom?: { /** * @default 1.0 */ speed?: number; /** * @default 1 */ minDistance?: number; /** * @default 7 */ maxDistance?: number; } | boolean; } | boolean; export declare class CharacterCameraBehavior { rotationPitch: number; rotationYaw: number; zoomDistance: number; private collisionFreeZoomDistance; private firstUpdate; private readonly abortController; private readonly yawReader; private readonly pitchReader; private readonly zoomReader; private setRotationFromDelta; private setDistanceFromDelta; private computeCharacterBaseOffset; private clampDistance; private clampYaw; private clampPitch; /** * @param delta in seconds */ update(camera: Object3D, target: Object3D, deltaTime: number, raycast?: (ray: Ray, far: number) => number | undefined, options?: CharacterCameraBehaviorOptions): void; dispose(): void; }