/**
 * Copyright (c) 2019-2025 mol* contributors, licensed under MIT, See LICENSE file for more info.
 *
 * @author Alexander Rose <alexander.rose@weirdbyte.de>
 * @author Áron Samuel Kovács <aron.kovacs@mail.muni.cz>
 * @author Gianluca Tomasello <giagitom@gmail.com>
 */
import { WebGLContext } from '../../mol-gl/webgl/context.js';
import { RenderTarget } from '../../mol-gl/webgl/render-target.js';
import { Renderer } from '../../mol-gl/renderer.js';
import { Scene } from '../../mol-gl/scene.js';
import { Texture } from '../../mol-gl/webgl/texture.js';
import { Camera } from '../camera.js';
import { Helper } from '../helper/helper.js';
import { StereoCamera } from '../camera/stereo.js';
import { WboitPass } from './wboit.js';
import { DpoitPass } from './dpoit.js';
import { AntialiasingPass, PostprocessingPass, PostprocessingProps } from './postprocessing.js';
import { MarkingPass, MarkingProps } from './marking.js';
import { AssetManager } from '../../mol-util/assets.js';
import { DofPass } from './dof.js';
import { BloomPass } from './bloom.js';
type Props = {
    postprocessing: PostprocessingProps;
    marking: MarkingProps;
    transparentBackground: boolean;
    dpoitIterations: number;
};
type RenderContext = {
    renderer: Renderer;
    camera: Camera | StereoCamera;
    scene: Scene;
    helper: Helper;
};
type TransparencyMode = 'wboit' | 'dpoit' | 'blended';
export declare class DrawPass {
    private webgl;
    private readonly drawTarget;
    readonly colorTarget: RenderTarget;
    readonly transparentColorTarget: RenderTarget;
    readonly depthTextureTransparent: Texture;
    readonly depthTextureOpaque: Texture;
    readonly packedDepth: boolean;
    readonly depthTargetTransparent: RenderTarget;
    private depthTargetOpaque;
    private copyFboTarget;
    private copyFboPostprocessing;
    readonly wboit: WboitPass;
    readonly dpoit: DpoitPass;
    readonly marking: MarkingPass;
    readonly postprocessing: PostprocessingPass;
    readonly antialiasing: AntialiasingPass;
    readonly bloom: BloomPass;
    readonly dof: DofPass;
    private transparencyMode;
    setTransparency(transparency: 'wboit' | 'dpoit' | 'blended'): void;
    get transparency(): TransparencyMode;
    constructor(webgl: WebGLContext, assetManager: AssetManager, width: number, height: number, transparency: 'wboit' | 'dpoit' | 'blended');
    getByteCount(): number;
    reset(): void;
    setSize(width: number, height: number): void;
    private _renderDpoit;
    private _renderWboit;
    private _renderBlended;
    private _render;
    render(ctx: RenderContext, props: Props, toDrawingBuffer: boolean): void;
    getColorTarget(postprocessingProps: PostprocessingProps): RenderTarget;
}
export {};
