import { Cartesian3, Color, Viewer } from "cesium";
export declare const GIZMO_STYLE: {
    RING_RADIUS: number;
    ARROW_WIDTH: number;
    ARROW_WIDTH_HOVER: number;
    RING_WIDTH: number;
    RING_WIDTH_HOVER: number;
    SCALE_FACTOR_ARROW: number;
    SCALE_FACTOR_PLANE: number;
    COLOR_PLANE: Color;
    COLOR_PLANE_OUTLINE: Color;
    COLOR_ARROW_X: Color;
    COLOR_ARROW_Y: Color;
    COLOR_ARROW_Z: Color;
    COLOR_RING_X: Color;
    COLOR_RING_Y: Color;
    COLOR_RING_Z: Color;
    COLOR_ARROW_X_HOVER: Color;
    COLOR_ARROW_Y_HOVER: Color;
    COLOR_ARROW_Z_HOVER: Color;
    COLOR_RING_X_HOVER: Color;
    COLOR_RING_Y_HOVER: Color;
    COLOR_RING_Z_HOVER: Color;
};
export declare const GIZMO_IDS: {
    PLANE: string;
    PLANE_OUTLINE: string;
    ARROW_X: string;
    ARROW_Y: string;
    ARROW_Z: string;
    RING_X: string;
    RING_Y: string;
    RING_Z: string;
};
export declare const GIZMO_MATH: {
    EARTH_RADIUS_OFFSET: number;
    RING_SEGMENTS: number;
    DENOMINATOR_TOLERANCE: number;
    NORMAL_TOLERANCE: number;
    SCREEN_DRAG_SCALE: number;
};
export declare class ClippingPlaneCesium {
    private _viewer;
    private _handler;
    private _planePrimitive;
    private _planeOutlinePrimitive;
    private _arrowXPrimitive;
    private _arrowXHoverPrimitive;
    private _arrowYPrimitive;
    private _arrowYHoverPrimitive;
    private _arrowZPrimitive;
    private _arrowZHoverPrimitive;
    private _ringXPrimitive;
    private _ringXHoverPrimitive;
    private _ringYPrimitive;
    private _ringYHoverPrimitive;
    private _ringZPrimitive;
    private _ringZHoverPrimitive;
    private _removeListener;
    private _isActive;
    private _activeDragAxis;
    private _hoveredAxis;
    private _dragNormal;
    private _dragStartBasePosition;
    private _dragStartNormal;
    private _dragStartRotation;
    private _dragStartPlanePosition;
    private _basePosition;
    private _normal;
    private _planeRotation;
    private _isDragging;
    private _dragStartMousePosition;
    private _dragStartHeight;
    private _dragStartS;
    private _dragStartAngle2D;
    private _currentHeight;
    private _planePosition;
    private _primitiveInverseMatrices;
    private _mode;
    private _isGizmoVisible;
    private _isInteractionPaused;
    private _savedBasePosition;
    private _savedPlanePosition;
    private _savedPlaneRotation;
    private _savedNormal;
    private _savedCurrentHeight;
    private _savedMode;
    private _justRestoredState;
    private _isClippingActive;
    private _containerId;
    private _statusStackItem;
    onPositionPlaced?: () => void;
    constructor(input: {
        viewer: Viewer;
        containerId: string;
    });
    setInteractionPaused: (paused: boolean) => void;
    private _saveGizmoState;
    /**
     * Restores the gizmo state from saved values.
     */
    private _restoreGizmoState;
    private _getRotatedLocalAxes;
    private _getLocalRingPoints;
    private _removeGizmoPrimitives;
    private _createPolylineGizmo;
    private _updateGizmoModelMatrix;
    /**
     * Recreates gizmo visuals and reinitializes clipping using current state
     * (without recalculating rotation/normal - used when restoring saved state)
     */
    private _recreateGizmoVisualsAndClipping;
    /**
     * Finds all primitives in the scene that can be clipped (Model or Cesium3DTileset),
     * including nested ones.
     */
    private _findAllClippablePrimitives;
    /**
     * Initializes or toggles the clipping plane interaction.
     */
    createClipping: () => void;
    private _setupMouseHandlers;
    /**
     * Applies a horizontal clipping plane at the specified world position
     * and clips all models and 3D Tilesets in the scene.
     */
    applyClippingPlane: (position: Cartesian3) => void;
    private _initClippingForPrimitive;
    private _syncClippablePrimitives;
    /**
     * Clears all clipping planes and removes visual representations from the scene.
     */
    deactivate: () => void;
    setMode: (mode: "up" | "east" | "north") => void;
    getMode: () => "up" | "east" | "north";
    showHideGizmo: (show: boolean) => void;
    getGizmoVisibility: () => boolean;
    resetClipping: () => void;
}
