import { RefObject, MutableRefObject } from 'react';
import type { MapRef } from '@vis.gl/react-mapbox';
import type { OffsetWell } from '../../../../OffsetWellPickerV5.types';
import type { SelectionZone } from '../../../../types/SelectionZone';
import type { RadiusState, LassoState } from '../../../../stores/selection-tool-store/types';
type BatchSelectResult = {
    attempted: number;
    added: number;
};
type UseSelectionToolOrchestrationParams = {
    mapRef: RefObject<MapRef | null>;
    isMapReady: boolean;
    wells: OffsetWell[];
    offsetWellIds: number[];
    subjectWellId: number | null;
    isViewOnly: boolean;
    onBatchSelectWells: (wells: {
        id: number;
    }[], onComplete?: (result: BatchSelectResult) => void, options?: {
        override?: boolean;
    }) => void;
    onSelectionZoneConfirm?: (zone: SelectionZone) => void;
    showSelectionResult: (result: BatchSelectResult, action?: 'added' | 'selected') => void;
};
export declare const useSelectionToolOrchestration: ({ mapRef, isMapReady, wells, offsetWellIds, subjectWellId, isViewOnly, onBatchSelectWells, onSelectionZoneConfirm, showSelectionResult, }: UseSelectionToolOrchestrationParams) => {
    isRadiusToolActive: boolean;
    isLassoActive: boolean;
    isUserDrawing: boolean;
    hasValidPolygon: boolean;
    radiusState: RadiusState;
    drawingRadiusMiles: number | null;
    setDrawingRadiusMiles: (radiusMiles: number) => void;
    radiusDrawingPreviewCircle: import("geojson").Feature<import("geojson").Polygon, import("geojson").GeoJsonProperties> | null;
    isRadiusHoveringEdge: boolean;
    isRadiusHoveringInside: boolean;
    isRadiusDrawingDragging: boolean;
    radiusDrawingHandlers: {
        handleMapClick: (e: import("mapbox-gl").MapMouseEvent) => void;
        handleMouseMove: (e: import("mapbox-gl").MapMouseEvent) => void;
        handleMouseDown: (e: import("mapbox-gl").MapMouseEvent) => void;
        handleMouseUp: () => void;
    };
    cancelRadius: () => void;
    showRadiusInput: boolean;
    lassoState: LassoState;
    isDrawing: boolean;
    drawingPointCount: number;
    isEditingPolygon: boolean;
    isEditingVertices: boolean;
    drawRef: MutableRefObject<import("@mapbox/mapbox-gl-draw") | null>;
    handleDrawCreate: (e: {
        features: GeoJSON.Feature[];
    }) => void;
    handleDrawUpdate: (e: {
        features: GeoJSON.Feature[];
    }) => void;
    handleDrawDelete: () => void;
    handleModeChange: (e: {
        mode: string;
    }) => void;
    handleSelectionChange: (e: {
        features: GeoJSON.Feature[];
    }) => void;
    polygonCoords: import("../../../../stores/filter-store/types").PolygonCoord[] | undefined;
    boxState: {
        isActive: boolean;
        startPoint: {
            x: number;
            y: number;
        } | null;
        endPoint: {
            x: number;
            y: number;
        } | null;
    };
    wellsInBoxCount: number;
    isShiftHeld: boolean;
    shouldSuppressClickRef: MutableRefObject<boolean>;
    handleLassoToggle: () => void;
    handleRadiusToggle: () => void;
};
export {};
//# sourceMappingURL=useSelectionToolOrchestration.d.ts.map