import { RenderMemory } from "../RenderMemory";
import { WebGLDisposable } from "./Disposable";
import { DepthBuffer, FrameBuffer } from "./FrameBuffer";
import { Target } from "./Target";
import { TextureHandle } from "./Texture";
/** @internal */
export declare enum EDLMode {
    Off = 0,
    On = 1,
    Full = 2
}
/** @internal */
export interface EDLDrawParams {
    inputTex: TextureHandle;
    curFbo: FrameBuffer;
    edlMode: EDLMode;
    edlFilter: boolean;
    useMsBuffers: boolean;
}
export declare class EyeDomeLighting implements RenderMemory.Consumer, WebGLDisposable {
    private _bundle?;
    private _width;
    private _height;
    private _depth?;
    private _edlFinalFbo?;
    private _edlFinalBufs?;
    private readonly _target;
    private getBundle;
    constructor(target: Target);
    init(width: number, height: number, depth: DepthBuffer): boolean;
    collectStatistics(stats: RenderMemory.Statistics): void;
    get isDisposed(): boolean;
    dispose(): void;
    reset(): void;
    /** calculate EyeDomeLighting at specified quality using screen space shaders
     * returns true if succeeds
     */
    draw(edlParams: EDLDrawParams): boolean;
}
//# sourceMappingURL=EDL.d.ts.map