import * as THREE from 'three';
import { FullScreenQuad } from '../../tools/full-screen-quad';
/**
 * Pass基类
 * three.js 的 Pass 接口，用于 EffectComposer
 */
export interface Pass {
    enabled: boolean;
    needsSwap: boolean;
    clear: boolean;
    renderToScreen: boolean;
    setSize(width: number, height: number): void;
    render(renderer: THREE.WebGLRenderer, writeBuffer: THREE.WebGLRenderTarget, readBuffer: THREE.WebGLRenderTarget, deltaTime?: number, maskActive?: boolean): void;
}
/**
 * FivePass
 *
 * Five 引擎优化的 Pass 基类
 * 支持 G-Buffer 注入，避免重复渲染场景
 */
export declare class FivePass implements Pass {
    static FullScreenQuad: typeof FullScreenQuad;
    enabled: boolean;
    needsSwap: boolean;
    clear: boolean;
    renderToScreen: boolean;
    dependencies: ('depth' | 'normal' | 'color')[];
    /**
     * G-Buffer 纹理集合
     * 包含 depth、normal、color 等纹理
     * 由 EffectComposer 在 render 时注入
     */
    gbuffer: Map<'depth' | 'normal' | 'color', THREE.Texture>;
    constructor(dependencies?: ('depth' | 'normal' | 'color')[]);
    setSize(width: number, height: number): void;
    render(renderer: THREE.WebGLRenderer, writeBuffer: THREE.WebGLRenderTarget, readBuffer: THREE.WebGLRenderTarget, deltaTime?: number, maskActive?: boolean): void;
    dispose(): void;
}
