/**
 @module viw-webgl-viewer/gizmos/sectionBox
*/
import { Viewer } from '../../viewer';
import * as THREE from 'three';
/**
 * Defines user interactions with the section box.
 */
export declare class BoxInputs {
    viewer: Viewer;
    cube: THREE.Object3D;
    sharedBox: THREE.Box3;
    faceNormal: THREE.Vector3;
    dragOrigin: THREE.Vector3;
    dragpPlane: THREE.Plane;
    mouseDown: boolean | undefined;
    raycaster: THREE.Raycaster;
    lastBox: THREE.Box3;
    unregisters: (() => void)[];
    onFaceEnter: ((normal: THREE.Vector3) => void) | undefined;
    onBoxStretch: ((box: THREE.Box3) => void) | undefined;
    onBoxConfirm: ((box: THREE.Box3) => void) | undefined;
    constructor(viewer: Viewer, cube: THREE.Object3D, box: THREE.Box3);
    private reg;
    register(): void;
    unregister(): void;
    onMouseMove(event: any): void;
    onMouseUp(event: any): void;
    onMouseClick(event: any): void;
    onDrag(event: any): void;
    stretch(normal: THREE.Vector3, amount: number): THREE.Box3;
    raycast(position: THREE.Vector2): THREE.Intersection<THREE.Object3D<THREE.Event>>[];
}
