import { IPass } from './Pass';
import { ShaderPass } from 'three/examples/jsm/postprocessing/ShaderPass.js';
import { IWebGLRenderer, ShaderMaterial2 } from '../core';
import { Shader, ShaderMaterialParameters, WebGLMultipleRenderTargets, WebGLRenderTarget } from 'three';
import { IShaderPropertiesUpdater } from '../materials';
export declare class ExtendedShaderPass extends ShaderPass implements IPass {
    static readonly DEFAULT_TEX_ID = "tDiffuse";
    material: ShaderMaterial2;
    overrideReadBuffer: {
        texture?: WebGLRenderTarget['texture'];
    } | null;
    readonly isExtendedShaderPass = true;
    enabled: boolean;
    constructor(shader: ShaderMaterial2 | ShaderMaterialParameters, ...textureID: string[]);
    render(renderer: IWebGLRenderer, writeBuffer?: WebGLMultipleRenderTargets | WebGLRenderTarget | null, readBuffer?: WebGLMultipleRenderTargets | WebGLRenderTarget, deltaTime?: number, maskActive?: boolean): void;
    /**
     * to be called from beforeRender or onObjectRender or similar.
     * @param updater
     */
    updateShaderProperties(updater?: (IShaderPropertiesUpdater | undefined) | (IShaderPropertiesUpdater | undefined)[]): void;
    onDirty: (() => void)[];
    dispose(): void;
    setDirty(): void;
    /**
     * @deprecated renamed to {@link isExtendedShaderPass}
     */
    get isShaderPass2(): boolean;
}
/**
 * @deprecated renamed to {@link ExtendedShaderPass}
 */
export declare class ShaderPass2 extends ExtendedShaderPass {
    constructor(shader: Shader | ShaderMaterial2, ...textureID: string[]);
}
//# sourceMappingURL=ExtendedShaderPass.d.ts.map