/**
 * @module viw-webgl-viewer/rendering
 */
import * as THREE from 'three';
import { Scene } from '../../vim-loader/scene';
/**
 * Wrapper around the THREE scene that tracks bounding box and other information.
 */
export declare class RenderScene {
    scene: THREE.Scene;
    boxUpdated: boolean;
    private _scenes;
    private _boundingBox;
    private _memory;
    constructor();
    get estimatedMemory(): number;
    hasOutline(): boolean;
    /** Clears the scene updated flags */
    clearUpdateFlags(): void;
    /**
     * Returns the bounding box encompasing all rendererd objects.
     * @param target box in which to copy result, a new instance is created if undefined.
     */
    getBoundingBox(target?: THREE.Box3): THREE.Box3;
    /**
     * Add object to be rendered
     */
    add(target: Scene | THREE.Object3D): void;
    /**
     * Remove object from rendering
     */
    remove(target: Scene | THREE.Object3D): void;
    /**
     * Removes all rendered objects
     */
    clear(): void;
    private addScene;
    updateBox(box: THREE.Box3 | undefined): void;
    private removeScene;
}
