import { EffectComposer } from 'three/addons/postprocessing/EffectComposer.js';
import { Pass } from 'three/addons/postprocessing/Pass.js';
import { RenderPass } from 'three/addons/postprocessing/RenderPass.js';
import type { ThreeRendererType } from '../display/types.js';
import { type IStageAdded, type IStageRemoved, type StageAddedProps, type StageRemovedProps } from '../events.js';
import type { IStage } from './IStage.js';
import type { StageType } from './IStageRenderer.js';
import { StageRenderer } from './StageRenderer.js';
export declare class PostProcessingRenderer extends StageRenderer implements IStageAdded, IStageRemoved {
    #private;
    name: string;
    protected passes: Pass[];
    passesNeedsUpdate: boolean;
    composer?: EffectComposer;
    stagePass: WeakMap<IStage, RenderPass>;
    passesByName: Map<string, Set<Pass>>;
    constructor();
    renderFrame(renderer: ThreeRendererType, now: number, deltaTime: number, frameNo: number, skipRenderCall?: boolean): void;
    protected onRenderOrderChanged(): void;
    getOrderedPasses(): Pass[];
    addPass(pass: Pass, name?: string): void;
    removePass(pass: Pass): void;
    getComposer(renderer: ThreeRendererType): EffectComposer;
    protected onResizeRenderer(width: number, height: number, pixelRatio: number): void;
    stageAdded({ stage }: StageAddedProps): void;
    private createRenderPass;
    stageRemoved({ stage }: StageRemovedProps): void;
    reorderPasses(passes: (Pass | StageType)[]): void;
    dispose(): void;
}
//# sourceMappingURL=PostProcessingRenderer.d.ts.map