/**
 * Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
 *
 * @author Alexander Rose <alexander.rose@weirdbyte.de>
 */
import { WebGLContext } from '../../mol-gl/webgl/context';
import { ParamDefinition as PD } from '../../mol-util/param-definition';
import { RenderTarget } from '../../mol-gl/webgl/render-target';
import { Camera } from '../../mol-canvas3d/camera';
import { PostprocessingProps } from './postprocessing';
import { DrawPass } from './draw';
import { Renderer } from '../../mol-gl/renderer';
import { Scene } from '../../mol-gl/scene';
import { Helper } from '../helper/helper';
import { StereoCamera } from '../camera/stereo';
import { MarkingProps } from './marking';
export declare const MultiSampleParams: {
    mode: PD.Select<string>;
    sampleLevel: PD.Numeric;
};
export declare type MultiSampleProps = PD.Values<typeof MultiSampleParams>;
declare type Props = {
    multiSample: MultiSampleProps;
    postprocessing: PostprocessingProps;
    marking: MarkingProps;
};
export declare class MultiSamplePass {
    private webgl;
    private drawPass;
    static isEnabled(props: MultiSampleProps): boolean;
    colorTarget: RenderTarget;
    private composeTarget;
    private holdTarget;
    private compose;
    constructor(webgl: WebGLContext, drawPass: DrawPass);
    syncSize(): void;
    render(sampleIndex: number, renderer: Renderer, camera: Camera | StereoCamera, scene: Scene, helper: Helper, toDrawingBuffer: boolean, transparentBackground: boolean, props: Props): number;
    private bindOutputTarget;
    private renderMultiSample;
    private renderTemporalMultiSample;
}
export declare class MultiSampleHelper {
    private multiSamplePass;
    private sampleIndex;
    update(changed: boolean, props: MultiSampleProps): boolean;
    render(renderer: Renderer, camera: Camera | StereoCamera, scene: Scene, helper: Helper, toDrawingBuffer: boolean, transparentBackground: boolean, props: Props): void;
    constructor(multiSamplePass: MultiSamplePass);
}
export {};
