import type { SelectionZone } from '../../../../types/SelectionZone';
import { Well, SubjectWell } from '../OffsetWellMap.types';
type BatchSelectResult = {
    attempted: number;
    added: number;
};
type UseOffsetWellMapStateParams = {
    subjectWell: SubjectWell | null;
    wells: Well[];
    offsetWellIds: number[];
    handleChangeOffsetWell: (well?: {
        id: number;
    }, isSelected?: boolean) => void;
    onBatchSelectWells: (wells: {
        id: number;
    }[], onComplete?: (result: BatchSelectResult) => void) => void;
    activeWellId: number | null;
    isClickable: boolean;
    selectionZone?: SelectionZone | null;
    onSelectionZoneConfirm?: (zone: SelectionZone) => void;
    shouldRecenter?: boolean;
    onRecenterComplete?: () => void;
};
export declare const useOffsetWellMapState: (params: UseOffsetWellMapStateParams) => {
    showGhostZone: boolean;
    isActiveWellIsSubjectWell: boolean;
    loadingTilesGeoJSON: import("geojson").FeatureCollection<import("geojson").Geometry, import("geojson").GeoJsonProperties>;
    clusterColorExpression: import("mapbox-gl").ExpressionSpecification;
    wellsGeoJSON: import("./useWellMarkers").WellFeatureCollection;
    highlightGeoJSON: import("./useWellMarkers").WellFeatureCollection;
    activeHighlightGeoJSON: import("./useWellMarkers").WellFeatureCollection | null;
    hoveredWell: import("./useTooltip").HoveredWellState | null;
    hoveredCluster: import("./useTooltip").HoveredClusterState | null;
    showTooltip: (params: import("./useTooltip").HoveredWellState) => void;
    showClusterTooltip: (params: import("./useTooltip").HoveredClusterState) => void;
    hideTooltip: () => void;
    hintsRef: (element: HTMLElement | null) => void;
    tooltipAnchor: "center" | "bottom" | "left" | "right" | "top" | "top-left" | "top-right" | "bottom-right" | "bottom-left";
    tooltipOffset: number;
    isDragging: boolean;
    cursor: string | undefined;
    hintsMode: "radius" | "box" | "lasso";
    handleDragStart: () => void;
    handleDragEnd: () => void;
    handleMapClick: (event: import("mapbox-gl").MapMouseEvent) => void;
    handleMouseMove: (event: import("mapbox-gl").MapMouseEvent) => void;
    handleMouseLeave: () => void;
    handleMouseDown: (event: import("mapbox-gl").MapMouseEvent) => void;
    handleSubjectWellMouseEnter: () => void;
    handleSubjectWellMouseLeave: () => void;
    isRadiusToolActive: boolean;
    isLassoActive: boolean;
    isUserDrawing: boolean;
    hasValidPolygon: boolean;
    radiusState: import("../../../../stores/selection-tool-store").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: import("../../../../stores/selection-tool-store").LassoState;
    isDrawing: boolean;
    drawingPointCount: number;
    isEditingPolygon: boolean;
    isEditingVertices: boolean;
    drawRef: import("react").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: import("react").MutableRefObject<boolean>;
    handleLassoToggle: () => void;
    handleRadiusToggle: () => void;
    viewState: {
        longitude: number;
        latitude: number;
        zoom: number;
    };
    distance: string | null;
    canZoomIn: boolean;
    canZoomOut: boolean;
    isZoomReset: boolean;
    isTooZoomedOut: boolean;
    effectiveZoomedOut: boolean;
    handleMove: (evt: import("@vis.gl/react-mapbox").ViewStateChangeEvent) => void;
    handleMoveStart: () => void;
    handleMoveEnd: () => void;
    handleZoomInWithSync: () => void;
    handleZoomOutWithSync: () => void;
    handleResetZoom: () => void;
    tileSafeOnResize: () => void;
    isViewOnly: boolean;
    radius: number;
    selectionMode: import("../../../../stores/filter-store/types").SelectionMode;
    mapStyle: import("../../../../stores/view-store/createViewStore").MapStyleType;
    setMapStyle: (style: import("../../../../stores/view-store/createViewStore").MapStyleType) => void;
    isSatellite: boolean;
    mapRef: import("react").RefObject<import("@vis.gl/react-mapbox").MapRef>;
    isTileLoading: boolean;
    isLoadAllWells: boolean;
    isAllWellsLoading: boolean | null;
    isMapReady: boolean;
    toast: {
        message: string;
        variant: "success" | "error";
    } | null;
    showSelectionResult: (result: {
        attempted: number;
        added: number;
    }, action?: "added" | "selected") => void;
    handleMapLoad: () => void;
    subjectWellCoords: import("../OffsetWellMap.types").Coordinates | null;
    circleGeoJSON: import("geojson").Feature<import("geojson").Polygon, import("geojson").GeoJsonProperties> | null;
};
export {};
//# sourceMappingURL=useOffsetWellMapState.d.ts.map