import { Camera, Group, LineBasicMaterial, Object3DEventMap, MeshBasicMaterial, Object3D } from 'three';
export interface PivotControlsEventMap {
    change: {};
    objectChange: {};
    mouseDown: {
        mode: string;
    };
    mouseUp: {
        mode: string;
    };
    'dragging-changed': {
        value: boolean;
    };
}
/**
 * PivotControls - A gizmo that shows all transform handles simultaneously
 * (translation arrows, plane sliders, rotation arcs, scaling spheres).
 * Follows the same architecture as TransformControls — single class,
 * mesh-based geometry, ObjectConstructors for material injection.
 */
export declare class PivotControls extends Group<PivotControlsEventMap & Object3DEventMap> {
    static ObjectConstructors: {
        MeshBasicMaterial: typeof MeshBasicMaterial;
        LineBasicMaterial: typeof LineBasicMaterial;
    };
    camera: Camera;
    domElement: HTMLCanvasElement;
    object: Object3D | undefined;
    enabled: boolean;
    autoTransform: boolean;
    /** Scale multiplier for the gizmo, same as TransformControls 'size'. Applied per-frame. */
    gizmoScale: number;
    activeAxes: [boolean, boolean, boolean];
    disableAxes: boolean;
    disableSliders: boolean;
    disableRotations: boolean;
    disableScaling: boolean;
    translationLimits?: ([number, number] | undefined)[];
    rotationLimits?: ([number, number] | undefined)[];
    scaleLimits?: ([number, number] | undefined)[];
    axisColors: [number, number, number];
    hoveredColor: number;
    handleOpacity: number;
    /** Coordinate space for transformations. 'world' or 'local'. */
    space: 'world' | 'local';
    /** Snap values when shift is held. Set to null to disable snapping for that transform. */
    translationSnap: number | null;
    rotationSnap: number | null;
    scaleSnap: number | null;
    /** Whether gizmo materials use depth testing. false = always visible through objects. */
    depthTest: boolean;
    /** When true, gizmo maintains constant screen size regardless of camera distance (default). */
    fixed: boolean;
    /** When true, alt/option+drag on a scale sphere applies uniform scale. */
    uniformScaleEnabled: boolean;
    /** Show value annotations during drag. */
    annotations: boolean;
    private _gizmoGroup;
    private _handles;
    private _raycaster;
    private _activeHandle;
    private _dragging;
    private _hoveredHandle;
    private _translation;
    private _uniformScaling;
    private _annotationEl;
    private _onPointerDown;
    private _onPointerMove;
    private _onPointerUp;
    constructor(camera: Camera, domElement: HTMLCanvasElement);
    private _onKeyDown;
    private _handleKeyDown;
    private _ensureAnnotationEl;
    private _showAnnotation;
    private _hideAnnotation;
    private _updateAnnotation;
    private _buildHandles;
    updateHandleVisibility(): void;
    attach(object: Object3D): this;
    detach(): this;
    updateGizmoScale(): void;
    rebuild(): void;
    dispose(): void;
    private _getNDC;
    private _getAllPickers;
    private _findHandle;
    private _handlePointerDown;
    private _handlePointerMove;
    private _handlePointerUp;
    private _endDrag;
    private _onDragStart;
    private _onDragMove;
    private _onDragEnd;
    private _applyTransform;
    private _getMode;
}
//# sourceMappingURL=../../src/three/controls/PivotControls.d.ts.map