import { type Intersection } from "three";
import { type ViralViewerApi } from "../..";
export declare class ViralSectionBox {
    viralViewerApi: ViralViewerApi;
    constructor(viralViewerApi: ViralViewerApi);
    private _isGenerated;
    private _isActive;
    private _isVisible;
    /** Whether section box is active (clipping enabled) */
    get isActive(): boolean;
    /** Whether section box visuals are visible */
    get isVisible(): boolean;
    /** @deprecated Use isActive instead */
    get isEnabling(): boolean;
    private _initialCenter;
    private _initialHalfSize;
    private _center;
    private _halfSize;
    private _boxOutline;
    private _outlineGeometry;
    private _outlineMaterial;
    private _hitBoxMesh;
    private _facePlaneMesh;
    private _dragAnchor;
    private _selectedFaceIndex;
    private _clippingPlanes;
    private static readonly VISUAL_INSET;
    private _transformedEdges;
    /**
     * Activate section box - enables clipping and shows visuals
     */
    enable(): void;
    /**
     * Deactivate section box - disables clipping and hides visuals
     */
    disable(): void;
    /**
     * Show section box visuals (outline, hit box) while keeping clipping effect
     * Only works if section box is active
     */
    show(): void;
    /**
     * Hide section box visuals while keeping clipping effect active
     * Only works if section box is active
     */
    hide(): void;
    /**
     * Reset section box to initial bounding box (from model)
     * Keeps current active/visible state
     */
    reset(): void;
    /**
     * @deprecated Use reset() instead
     */
    refresh(): void;
    updateSectionBox(): void;
    getFaceIndexFromIntersection(intersection: Intersection): number;
    selectFace(faceIndex: number): void;
    onDragAnchorChanged(): void;
    dispose(): void;
    private _initFromBoundingBox;
    private _createVisuals;
    private _updateVisuals;
    private _updateClippingPlanes;
    private _getFaceCenter;
    private _positionFaceHighlight;
    /**
     * Add section box visual objects to edge pass exclusion list
     */
    private _addToEdgeExclusion;
    /**
     * Remove section box visual objects from edge pass exclusion list
     */
    private _removeFromEdgeExclusion;
}
