import { Vector2, Vector3, BoundingBox } from '../../types/Math';
import type { SectionController } from '../../sectioning';
export declare class SectionBoxDisplay {
    private sectionController;
    private planes;
    private planeIndex;
    private boxOutline;
    private min;
    private max;
    private moveStartMin;
    private moveStartMax;
    private arrows;
    private prevHoverPlane?;
    private _hidden;
    private gui;
    constructor(sectionController: SectionController);
    getCurrentBoundingBox(): BoundingBox;
    getCenter(): THREE.Vector3;
    getDimensions(): THREE.Vector3;
    private createSectionBoxPlanes;
    setSectionBoxDisplay(min: Vector3 | THREE.Vector3, max: Vector3 | THREE.Vector3): void;
    isSectionBoxHovered(): boolean;
    updateSectionHover(raycaster: THREE.Raycaster, insideSectionBox: boolean): boolean;
    onMouseDown(): void;
    clearSectionHover(): void;
    resizeSectionBox(xyDelta: Vector2, camDir: Vector3, distance: number): void;
    getCursorDirectionFromCameraToPlane(camera: THREE.Camera): string | null;
    private calculateArrowScale;
    private calculateArrowOffset;
    private updateSectionBoxMaterials;
    update(scene: THREE.Scene, camera: THREE.Camera): void;
    clearSectionScene(scene: THREE.Scene): void;
    addSectionToScene(scene: THREE.Scene): void;
    set hidden(hide: boolean);
    get hidden(): boolean;
}
