/**
 * 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 { RenderTarget } from '../../mol-gl/webgl/render-target';
import { Renderer } from '../../mol-gl/renderer';
import { Scene } from '../../mol-gl/scene';
import { ParamDefinition as PD } from '../../mol-util/param-definition';
import { Camera } from '../camera';
import { Viewport } from '../camera/util';
import { Helper } from '../helper/helper';
export declare const ImageParams: {
    transparentBackground: PD.BooleanParam;
    multiSample: PD.Group<PD.Normalize<{
        mode: string;
        sampleLevel: number;
    }>>;
    postprocessing: PD.Group<PD.Normalize<{
        occlusion: PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{
            samples: any;
            radius: any;
            bias: any;
            blurKernelSize: any;
        }>, "on">;
        outline: PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{
            scale: any;
            threshold: any;
        }>, "on">;
        antialiasing: PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{
            edgeThreshold: any;
            maxSearchSteps: any;
        }>, "smaa"> | PD.NamedParams<PD.Normalize<{
            edgeThresholdMin: any;
            edgeThresholdMax: any;
            iterations: any;
            subpixelQuality: any;
        }>, "fxaa">;
    }>>;
    marking: PD.Group<PD.Normalize<{
        enabled: boolean;
        highlightEdgeColor: import("../../mol-util/color").Color;
        selectEdgeColor: import("../../mol-util/color").Color;
        edgeScale: number;
        ghostEdgeStrength: number;
        innerEdgeFactor: number;
    }>>;
    cameraHelper: PD.Group<PD.Normalize<{
        axes: PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{
            alpha: any;
            ignoreLight: any;
            colorX: any;
            colorY: any;
            colorZ: any;
            scale: any;
            doubleSided: any;
            flipSided: any;
            flatShaded: any;
            xrayShaded: any;
            quality: any;
        }>, "on">;
    }>>;
};
export declare type ImageProps = PD.Values<typeof ImageParams>;
export declare class ImagePass {
    private webgl;
    private renderer;
    private scene;
    private camera;
    private _width;
    private _height;
    private _camera;
    readonly props: ImageProps;
    private _colorTarget;
    get colorTarget(): RenderTarget;
    private readonly drawPass;
    private readonly multiSamplePass;
    private readonly multiSampleHelper;
    private readonly helper;
    get width(): number;
    get height(): number;
    constructor(webgl: WebGLContext, renderer: Renderer, scene: Scene, camera: Camera, helper: Helper, enableWboit: boolean, props: Partial<ImageProps>);
    setSize(width: number, height: number): void;
    setProps(props?: Partial<ImageProps>): void;
    render(): void;
    getImageData(width: number, height: number, viewport?: Viewport): ImageData;
}
