/**
 * @module viw-webgl-viewer/rendering
 */
import * as THREE from 'three';
import { Viewport } from '../viewport';
import { RenderScene } from './renderScene';
import { ViewerMaterials } from '../../loader/materials/viewerMaterials';
import { Camera } from '../camera/camera';
/**
 * Composer for managing the rendering pipeline including anti-aliasing and outline effects.
 * Handles the orchestration of multiple render passes including:
 * - Main scene rendering
 * - Selection outline rendering
 * - FXAA anti-aliasing
 * - Final composition and screen output
 */
export declare class RenderingComposer {
    private _renderer;
    private _scene;
    private _materials;
    private _camera;
    private _size;
    private _composer;
    private _renderPass;
    private _selectionRenderPass;
    private _transferPass;
    private _outlineFxaaPass;
    private _outlines;
    private _clock;
    private _outlinePass;
    private _mergePass;
    private _outlineTarget;
    private _sceneTarget;
    /**
     * Creates a new RenderingComposer instance
     * @param renderer - The WebGL renderer instance
     * @param scene - The scene to be rendered
     * @param viewport - The viewport containing size information
     * @param materials - Materials used for rendering including outline and mask materials
     * @param camera - The camera used for rendering
     */
    constructor(renderer: THREE.WebGLRenderer, scene: RenderScene, viewport: Viewport, materials: ViewerMaterials, camera: Camera);
    /**
     * Initializes the main scene rendering pipeline
     * Creates render targets and sets up the main render pass
     * @private
     */
    private initSceneRenderingPipeline;
    /**
     * Initializes the outline rendering pipeline
     * Sets up render targets and passes for selection, outline, FXAA, and final composition
     * @private
     */
    private initOutlinePipeline;
    /**
     * @returns Whether outline rendering is enabled
     */
    get outlines(): boolean;
    /**
     * Enables or disables outline rendering
     */
    set outlines(value: boolean);
    /**
     * @returns The current camera
     */
    get camera(): THREE.PerspectiveCamera | THREE.OrthographicCamera;
    /**
     * Updates the camera across all render passes
     */
    set camera(value: THREE.PerspectiveCamera | THREE.OrthographicCamera);
    /**
     * Updates the size of all render targets and passes
     * @param width - New width in pixels
     * @param height - New height in pixels
     */
    setSize(width: number, height: number): void;
    /**
     * @returns The current MSAA sample count
     */
    get samples(): number;
    /**
     * Sets the MSAA sample count for the scene render target
     */
    set samples(value: number);
    /**
     * Executes the complete rendering pipeline
     * First renders the main scene, then processes outlines if enabled
     */
    render(): void;
    /**
     * Cleans up all resources used by the composer
     * Should be called when the composer is no longer needed
     */
    dispose(): void;
}
