import { MeshNormalMaterial, Texture, TextureDataType, WebGLRenderTarget } from 'three';
import { GBufferRenderPass } from '../../postprocessing';
import { ThreeViewer } from '../../viewer';
import { PipelinePassPlugin } from '../base/PipelinePassPlugin';
export type NormalBufferPluginEventTypes = '';
export type NormalBufferPluginTarget = WebGLRenderTarget;
export type NormalBufferPluginPass = GBufferRenderPass<'normal', NormalBufferPluginTarget | undefined>;
/**
 * Normal Buffer Plugin
 *
 * Adds a pre-render pass to render the normal buffer to a render target that can be used for postprocessing.
 * @category Plugins
 */
export declare class NormalBufferPlugin extends PipelinePassPlugin<NormalBufferPluginPass, 'normal', NormalBufferPluginEventTypes> {
    readonly passId = "normal";
    static readonly PluginType = "NormalBufferPlugin";
    target?: NormalBufferPluginTarget;
    texture?: Texture;
    readonly material: MeshNormalMaterial;
    readonly bufferType: TextureDataType;
    protected _createTarget(recreate?: boolean): void;
    protected _disposeTarget(): void;
    protected _createPass(): GBufferRenderPass<"normal", WebGLRenderTarget | undefined>;
    constructor(bufferType?: TextureDataType, enabled?: boolean);
    onRemove(viewer: ThreeViewer): void;
}
//# sourceMappingURL=NormalBufferPlugin.d.ts.map