import { Pass, type Resizable } from 'postprocessing'; import * as THREE from 'three'; import type { PerspectiveCamera } from 'three'; import type { GodraysPassParams, GodraysUpsampleQuality } from './index'; interface GodraysCompositorMaterialProps { godrays: THREE.Texture; color: THREE.Color; camera: THREE.PerspectiveCamera; gammaCorrection: boolean; upsampleQuality: GodraysUpsampleQuality; } export declare class GodraysCompositorMaterial extends THREE.ShaderMaterial implements Resizable { constructor({ godrays, color, camera, gammaCorrection, upsampleQuality, }: GodraysCompositorMaterialProps); updateUniforms(color: THREE.Color, gammaCorrection: boolean, near: number, far: number): void; setSize(width: number, height: number): void; setGodraysResolution(width: number, height: number): void; } export declare class GodraysCompositorPass extends Pass { sceneCamera: PerspectiveCamera; private depthCopyTarget; constructor(props: GodraysCompositorMaterialProps); updateUniforms(params: GodraysPassParams): void; updateDebugSteps(enabled: boolean): void; updateUpsampleQuality(quality: GodraysUpsampleQuality): void; private maybeInitDepthCopyTarget; private blitDepthTexture; render(renderer: THREE.WebGLRenderer, inputBuffer: THREE.WebGLRenderTarget, outputBuffer: THREE.WebGLRenderTarget | null, _deltaTime?: number | undefined, _stencilTest?: boolean | undefined): void; setDepthTexture(depthTexture: THREE.Texture, depthPacking?: THREE.DepthPackingStrategies | undefined): void; setSize(width: number, height: number): void; setGodraysResolution(width: number, height: number): void; } export {};