import type { SkinnedMesh } from "three"; import { PerspectiveCamera } from "three"; import type { FovPolicy } from "./fovPolicies/FovPolicy"; /** * PerspectiveCamera whose vertical FOV is derived from a {@link FovPolicy} and the current aspect * ratio. The policy is applied on every `updateProjectionMatrix()` call, so the standard resize * flow (`camera.aspect = w / h; camera.updateProjectionMatrix()`) is all that is needed. */ export declare class EnhancedPerspectiveCamera extends PerspectiveCamera { private fovPolicyInternal; constructor(fovPolicy: FovPolicy, aspect?: number, near?: number, far?: number); get fovPolicy(): FovPolicy; /** Replacing the policy re-applies it immediately. */ set fovPolicy(value: FovPolicy); /** @override */ updateProjectionMatrix(): void; /** * Orients the camera toward the mesh's vertex centroid (mean of the skinned vertices in world * space). Calls `skeleton.update()` internally before sampling vertices. */ lookAtMeshCenterOfMass(skinnedMesh: SkinnedMesh): void; clone(): this; }