import type { EffectComposer } from "postprocessing";
import { Context } from "../../engine/engine_setup.js";
import { PostProcessingEffect } from "./PostProcessingEffect.js";
/**
 * PostProcessingHandler is responsible for applying post processing effects to the scene. It is internally used by the {@link Volume} component
 */
export declare class PostProcessingHandler {
    private _composer;
    private _lastVolumeComponents?;
    private _effects;
    get isActive(): boolean;
    get composer(): EffectComposer | null;
    private _isActive;
    private readonly context;
    constructor(context: Context);
    apply(components: PostProcessingEffect[]): Promise<void>;
    unapply(): void;
    dispose(): void;
    private onApply;
    /** Build composer passes */
    private applyEffects;
    private _menuEntry;
    private _passIndices;
    private orderEffects;
}
