import type { Scene } from '@certe/atmos-core'; import type { Mat4Type } from '@certe/atmos-math'; /** * Single 2D perspective shadow map for spot lights. * Uses perspective projection matching the spot cone (FOV = outerAngle * 2). */ export declare class SpotShadowPass { private readonly _device; private readonly _pipeline; private readonly _lightVPBuffer; private readonly _lightVPBindGroup; private readonly _depthTexture; private readonly _sampler; readonly shadowMapView: GPUTextureView; readonly resolution: number; private readonly _view; private readonly _proj; private readonly _vp; private readonly _target; private readonly _up; get lightVPBuffer(): GPUBuffer; get shadowSampler(): GPUSampler; constructor(device: GPUDevice, objectBindGroupLayout: GPUBindGroupLayout, resolution?: number); /** * Render shadow map from the spot light's perspective. * @param lightPos World position of the spot light * @param lightDir Normalized world direction of the spot light * @param outerAngle Half-angle in radians * @param range Light range (used as far plane) */ execute(encoder: GPUCommandEncoder, scene: Scene, lightPos: Float32Array, lightDir: Float32Array, outerAngle: number, range: number, extraDraw?: (pass: GPURenderPassEncoder) => void): void; /** Return the computed view-projection matrix (valid after execute). */ getViewProjection(): Mat4Type; destroy(): void; } //# sourceMappingURL=spot-shadow-pass.d.ts.map