import { Object3D, ToneMapping, Vector4, WebGLRenderer } from 'three';
import { IMaterial } from '../../core';
import { AScreenPassExtensionPlugin } from './AScreenPassExtensionPlugin';
import { GBufferUpdaterContext } from '../pipeline/GBufferMaterial';
export declare const Uncharted2Tonemapping: ToneMapping;
/**
 * Tonemap Plugin
 *
 * Adds an extension to {@link ScreenPass} material
 * for applying tonemapping on the final buffer before rendering to screen.
 *
 * Also adds support for Uncharted2 tone-mapping.
 * @category Plugins
 */
export declare class TonemapPlugin extends AScreenPassExtensionPlugin {
    static readonly PluginType = "Tonemap";
    readonly extraUniforms: {
        readonly toneMappingContrast: {
            readonly value: 1;
        };
        readonly toneMappingSaturation: {
            readonly value: 1;
        };
    };
    readonly extraDefines: {
        readonly TONEMAP_BACKGROUND: () => "1" | "0";
    };
    enabled: boolean;
    toneMapping: ToneMapping;
    /**
     * Global toggle to apply tonemapping on the background.
     * The tonemapping is not applied if either this or {@link RootScene.backgroundTonemap} is false.
     */
    tonemapBackground: boolean;
    exposure: number;
    saturation: number;
    contrast: number;
    /**
     * The priority of the material extension when applied to the material in ScreenPass
     * set to very low priority, so applied at the end
     */
    priority: number;
    parsFragmentSnippet: () => string;
    protected _shaderPatch: string;
    private _rendererState;
    onObjectRender(_: Object3D, material: IMaterial, renderer: WebGLRenderer): void;
    onAfterRender(_: Object3D, _1: IMaterial, renderer: WebGLRenderer): void;
    fromJSON(data: any, meta?: any): this | null | Promise<this | null>;
    updateGBufferFlags(data: Vector4, c: GBufferUpdaterContext): void;
}
//# sourceMappingURL=../../src/plugins/postprocessing/TonemapPlugin.d.ts.map