import { Component, Scene } from '@certe/atmos-core'; import type { Mat4Type } from '@certe/atmos-math'; /** Loose interface to avoid circular import with RenderSystem. */ export interface ScreenToWorldProvider { screenToWorldPoint(x: number, y: number, nearClip?: number): Promise; } export declare class Camera extends Component { fovY: number; near: number; far: number; isMainCamera: boolean; clearColor: Float32Array; skyMode: 'none' | 'procedural'; skyZenithColor: Float32Array; skyHorizonColor: Float32Array; skyGroundColor: Float32Array; skyGroundFalloff: number; skySunIntensity: number; /** Set by RenderSystem when it activates a camera. */ static _renderSystem: ScreenToWorldProvider | null; private readonly _viewMatrix; get viewMatrix(): Mat4Type; /** Compute view matrix as inverse of the camera's world transform. */ updateViewMatrix(): void; /** Extract world-space position from the worldMatrix translation column. */ getWorldPosition(out: Float32Array): Float32Array; /** * Convert screen pixel coordinates to a world-space point using GPU depth readback. * Returns null if the pixel is sky (depth >= 1.0) or closer than nearClip. */ screenToWorldPoint(x: number, y: number, nearClip?: number): Promise; /** Shortcut: get the main camera from the currently active scene. */ static get main(): Camera | null; /** Find the first enabled Camera with isMainCamera=true in the scene. */ static getMain(scene: Scene): Camera | null; } //# sourceMappingURL=camera.d.ts.map