import { Pass } from 'three/examples/jsm/postprocessing/EffectComposer'; import * as THREE from 'three'; import { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass'; /** * Interface for a render pass in a 3D scene. It defines the base structure for custom render passes, * with properties and methods that control rendering behavior. * * @abstract * @class IRenderPass */ export declare abstract class IRenderPass { clear?: boolean; clearDepth?: boolean; camera?: THREE.Camera; mainCamera?: THREE.Camera; /** * Constructs a new IRenderPass instance. * * @param {THREE.Scene} scene - The scene to which the render pass is applied. * @param {THREE.Camera} camera - The camera used for rendering. */ constructor(scene: THREE.Scene, camera: THREE.Camera); } /** * Abstract base class for an effect pipeline. It defines the structure and required methods for managing * and rendering custom effect pipelines in a 3D scene. * * @abstract * @class EffectPipeline */ export declare abstract class EffectPipeline { renderer: THREE.Renderer; constructor(renderer: THREE.Renderer); abstract render(): void; abstract registerPass(pass: unknown, priority: number): void; abstract unregisterPass(pass: unknown): void; abstract setSize(width: number, height: number): any; /** * Creates a new render pass for the effect pipeline. * * @abstract * @param {THREE.Scene} scene - The scene for the render pass. * @param {THREE.Camera} camera - The camera for the render pass. * @return {IRenderPass} The created render pass. */ abstract createRenderPass(scene: THREE.Scene, camera: THREE.Camera): IRenderPass; } /** * Default implementation of the EffectPipeline, utilizing Three.js's EffectComposer to manage and render passes. * * @class DefaultEffectPipeline * @extends {EffectPipeline} */ export declare class DefaultEffectPipeline extends EffectPipeline { private effectComposer; private _passes; /** * Creates a new render pass for the default effect pipeline. * * @param {THREE.Scene} scene - The scene for the render pass. * @param {THREE.Camera} camera - The camera for the render pass. * @return {IRenderPass} The created render pass. */ createRenderPass(scene: THREE.Scene, camera: THREE.Camera): IRenderPass; constructor(renderer: THREE.Renderer); setSize(width: number, height: number): void; render(): void; registerPass(pass: RenderPass, priority: number): void; unregisterPass(pass: Pass): void; }