import { RefObject, MutableRefObject } from 'react';
import type { MapRef, MapMouseEvent } from '@vis.gl/react-mapbox';
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 UseMapEventCallbacksParams = {
    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;
    subjectWell: SubjectWell | null;
    subjectWellCoords: Coordinates | null;
};
export declare const useMapEventCallbacks: ({ mapRef, isViewOnly, isRadiusToolActive, radiusDrawingHandlers, shouldSuppressClickRef, handleChangeOffsetWell, showTooltip, showClusterTooltip, hideTooltip, subjectWell, subjectWellCoords, }: UseMapEventCallbacksParams) => {
    isDragging: boolean;
    handleDragStart: () => void;
    handleDragEnd: () => void;
    handleMapClick: (event: MapMouseEvent) => void;
    handleMouseMove: (event: MapMouseEvent) => void;
    handleMouseLeave: () => void;
    handleMouseDown: (event: MapMouseEvent) => void;
    handleSubjectWellMouseEnter: () => void;
    handleSubjectWellMouseLeave: () => void;
};
export {};
//# sourceMappingURL=useMapEventCallbacks.d.ts.map