import { RefObject, MutableRefObject } from 'react';
import type { MapRef } from '@vis.gl/react-mapbox';
import type { OffsetWell } from '../../../../OffsetWellPickerV5.types';
type Point = {
    x: number;
    y: number;
};
type BoxSelectionState = {
    isActive: boolean;
    startPoint: Point | null;
    endPoint: Point | null;
};
type BatchSelectResult = {
    attempted: number;
    added: number;
};
type UseBoxSelectionParams = {
    mapRef: RefObject<MapRef | null>;
    isEnabled: boolean;
    wells: OffsetWell[];
    offsetWellIds: number[];
    subjectWellId: number | null;
    onBatchSelectWells: (wells: {
        id: number;
    }[], onComplete?: (result: BatchSelectResult) => void) => void;
    onSelectionComplete?: (result: BatchSelectResult) => void;
};
type UseBoxSelectionReturn = {
    boxState: BoxSelectionState;
    wellsInBoxCount: number;
    isShiftHeld: boolean;
    shouldSuppressClickRef: MutableRefObject<boolean>;
};
export declare const useBoxSelection: ({ mapRef, isEnabled, wells, offsetWellIds, subjectWellId, onBatchSelectWells, onSelectionComplete, }: UseBoxSelectionParams) => UseBoxSelectionReturn;
export {};
//# sourceMappingURL=useBoxSelection.d.ts.map