import { RefObject, MutableRefObject } from 'react';
import type { MapRef, MapMouseEvent } from '@vis.gl/react-mapbox';
import type { RadiusState, LassoState } from '../../../../stores/selection-tool-store/types';
import { Coordinates, SubjectWell } from '../OffsetWellMap.types';
import type { HoveredWellState } from './useTooltip';
type RadiusDrawingHandlers = {
    handleMapClick: (e: MapMouseEvent) => void;
    handleMouseMove: (e: MapMouseEvent) => void;
    handleMouseDown: (e: MapMouseEvent) => void;
};
type UseMapInteractionHandlersParams = {
    mapRef: RefObject<MapRef | null>;
    isViewOnly: boolean;
    isRadiusToolActive: boolean;
    radiusDrawingHandlers: RadiusDrawingHandlers;
    shouldSuppressClickRef: MutableRefObject<boolean>;
    handleChangeOffsetWell: (well?: {
        id: number;
    }, isSelected?: boolean) => void;
    showTooltip: (params: HoveredWellState) => void;
    showClusterTooltip: (params: {
        clusterId: number;
        coords: Coordinates;
        totalCount: number;
        selectedCount: number;
    }) => void;
    hideTooltip: () => void;
    hoveredWell: HoveredWellState | null;
    subjectWell: SubjectWell | null;
    subjectWellCoords: Coordinates | null;
    radiusState: RadiusState;
    isRadiusDrawingDragging: boolean;
    isRadiusHoveringEdge: boolean;
    isRadiusHoveringInside: boolean;
    lassoState: LassoState;
    isLassoActive: boolean;
    isDrawing: boolean;
    isEditingPolygon: boolean;
    isEditingVertices: boolean;
    isShiftHeld: boolean;
    boxStateIsActive: boolean;
};
export declare const useMapInteractionHandlers: (p: UseMapInteractionHandlersParams) => {
    isDragging: boolean;
    cursor: string | undefined;
    hintsMode: "radius" | "box" | "lasso";
    handleDragStart: () => void;
    handleDragEnd: () => void;
    handleMapClick: (event: MapMouseEvent) => void;
    handleMouseMove: (event: MapMouseEvent) => void;
    handleMouseLeave: () => void;
    handleMouseDown: (event: MapMouseEvent) => void;
    handleSubjectWellMouseEnter: () => void;
    handleSubjectWellMouseLeave: () => void;
};
export {};
//# sourceMappingURL=useMapInteractionHandlers.d.ts.map