import { IRenderTarget, RenderManager } from '../rendering';
import { IRenderManagerOptions, IScene } from '../core';
import { ExtendedRenderPass, ScreenPass, TViewerScreenShader } from '../postprocessing';
import { UiObjectConfig } from 'uiconfig.js';
import { MaterialExtension } from '../materials';
import { IRenderManagerEventMap } from '../core/IRenderer';
export interface ViewerRenderManagerOptions extends IRenderManagerOptions {
    rgbm?: boolean;
    msaa?: boolean | number;
    depthBuffer?: boolean;
    stencilBuffer?: boolean;
    zPrepass?: boolean;
    screenShader?: TViewerScreenShader;
    maxHDRIntensity?: number;
}
export interface ViewerRenderManagerEventMap extends IRenderManagerEventMap {
    gbufferUnpackExtensionChanged: {
        key: string;
        value: any;
        oldValue: any;
    };
}
export declare class ViewerRenderManager extends RenderManager<ViewerRenderManagerEventMap> {
    readonly rgbm: boolean;
    readonly msaa: boolean | number;
    readonly depthBuffer: boolean;
    readonly zPrepass: boolean;
    readonly maxHDRIntensity: number;
    readonly renderPass: ExtendedRenderPass;
    readonly screenPass: ScreenPass;
    uiConfig: UiObjectConfig;
    static DEFAULT_MSAA_SAMPLES: number;
    constructor({ rgbm, msaa, depthBuffer, stencilBuffer, ...options }: ViewerRenderManagerOptions);
    /**
     * Reference to the gbuffer target, if it exists. This can be set by plugins like {@link DepthBufferPlugin}, {@link GBufferPlugin}
     */
    gbufferTarget: IRenderTarget | undefined;
    /**
     * The extension that can be used to upload and unpack the values in gbuffer target(s), if it exists. This can be set by plugins like {@link DepthBufferPlugin}, {@link GBufferPlugin}
     * Note: this should not be changed after set by some plugin.
     */
    gbufferUnpackExtension: MaterialExtension | undefined;
    private _gbufferUnpackExtensionChanged;
    render(scene: IScene, renderToScreen?: boolean): void;
}
//# sourceMappingURL=../src/viewer/ViewerRenderManager.d.ts.map