/**
 * @module viw-webgl-viewer/gizmos
 */
import * as THREE from 'three';
import { Viewer } from '../viewer';
/**
 * Rectangle Gizmo used for rectangle selection.
 */
export declare class GizmoRectangle {
    private line;
    private viewer;
    private points;
    constructor(viewer: Viewer);
    /**
     * Removes the object from rendering and dispose resources from memory
     */
    dispose(): void;
    /**
     * Indicates whether the gizmo is visible.
     */
    get visible(): boolean;
    set visible(value: boolean);
    /**
     * Sets the two corner points defining the rectangle.
     * @param {THREE.Vector2} posA - The position of the first corner.
     * @param {THREE.Vector2} posB - The position of the second corner.
     */
    setCorners(posA: THREE.Vector2, posB: THREE.Vector2): void;
    private getIntersection;
    private updateRect;
    private getBoxSize;
    /**
     * Returns the bounding box of the selection.
     * The bounding box is the projection of the selection rectangle
     * onto the plane coplanar to the closest hit of 5 raycasts: one in each corner and one in the center.
     * X-----X
     * |  X  |
     * X-----X
     * @returns {THREE.Box3} The bounding box of the selection.
     */
    getBoundingBox(target?: THREE.Box3): THREE.Box3;
    /**
     * Performs a raycast from the camera through the five interest points and returns the closest hit position.
     * @returns {THREE.Vector3} The position of the closest hit.
     */
    getClosestHit(): THREE.Vector3;
    /**
     * Projects all points on a plane the coplanar to position.
     */
    private projectPoints;
}
