import { mat4, vec3 } from 'gl-matrix'; import { CameraState as RendererCameraState } from './types/camera.js'; /** * @deprecated Use RendererCameraState for full state, or specific event payload type. */ export interface CameraState { position: vec3; angles: vec3; } export declare class Camera { private _position; private _angles; private _bobAngles; private _bobOffset; private _kickAngles; private _rollAngle; private _fov; private _aspect; private _near; private _far; private _viewMatrix; private _projectionMatrix; private _viewProjectionMatrix; private _dirty; onCameraMove?: (camera: CameraState) => void; constructor(width?: number, height?: number); get position(): vec3; set position(value: vec3); get angles(): vec3; set angles(value: vec3); get bobAngles(): vec3; set bobAngles(value: vec3); get kickAngles(): vec3; set kickAngles(value: vec3); get bobOffset(): vec3; set bobOffset(value: vec3); get rollAngle(): number; set rollAngle(value: number); get fov(): number; set fov(value: number); get aspect(): number; set aspect(value: number); /** * Export camera state in Quake-space coordinates. * For use with new renderer architecture. */ toState(): RendererCameraState; setPosition(x: number, y: number, z: number): void; setRotation(pitch: number, yaw: number, roll: number): void; setFov(fov: number): void; setAspectRatio(aspect: number): void; lookAt(target: vec3): void; private triggerMoveEvent; get viewMatrix(): mat4; get projectionMatrix(): mat4; get viewProjectionMatrix(): mat4; getViewmodelProjectionMatrix(fov: number): mat4; screenToWorldRay(screenX: number, screenY: number): { origin: vec3; direction: vec3; }; private updateMatrices; } //# sourceMappingURL=camera.d.ts.map