import { RefObject } from 'react';
import type { MapRef, MapMouseEvent } from '@vis.gl/react-mapbox';
import type { Feature, Polygon } from 'geojson';
import type { RadiusState } from '../../../../stores/selection-tool-store/types';
import type { OffsetWell } from '../../../../OffsetWellPickerV5.types';
type UseRadiusDrawingParams = {
    mapRef: RefObject<MapRef | null>;
    isActive: boolean;
    wells: OffsetWell[];
    onWellsSelected?: (wellIds: number[]) => void;
    subjectWellId?: number | null;
};
type UseRadiusDrawingReturn = {
    radiusState: RadiusState;
    radiusMiles: number | null;
    setRadiusMiles: (radiusMiles: number) => void;
    wellsInRadiusCount: number;
    previewCircle: Feature<Polygon> | null;
    isHoveringEdge: boolean;
    isHoveringInside: boolean;
    isDragging: boolean;
    handlers: {
        handleMapClick: (e: MapMouseEvent) => void;
        handleMouseMove: (e: MapMouseEvent) => void;
        handleMouseDown: (e: MapMouseEvent) => void;
        handleMouseUp: () => void;
    };
    confirm: () => void;
    cancel: () => void;
};
export declare const clampRadius: (value: number) => number;
export declare const useRadiusDrawing: ({ mapRef, isActive, wells, onWellsSelected, subjectWellId, }: UseRadiusDrawingParams) => UseRadiusDrawingReturn;
export {};
//# sourceMappingURL=useRadiusDrawing.d.ts.map