import { RefObject, MutableRefObject } from 'react';
import MapboxDraw from '@mapbox/mapbox-gl-draw';
import type { MapRef } from '@vis.gl/react-mapbox';
import type { PolygonCoord } from '../../../../stores/filter-store/types';
import type { OffsetWell } from '../../../../OffsetWellPickerV5.types';
import type { LassoState } from '../../../../stores/selection-tool-store/types';
type UseLassoSelectionParams = {
    mapRef: RefObject<MapRef | null>;
    isActive: boolean;
    isMapReady: boolean;
    hasInitialPolygon: boolean;
    onPolygonChange: (coords: PolygonCoord[] | undefined) => void;
    wellsLayerId: string;
    wells?: OffsetWell[];
    onWellsSelected?: (wellIds: number[]) => void;
    onDeactivate?: () => void;
    subjectWellId?: number | null;
};
type UseLassoSelectionReturn = {
    lassoState: LassoState;
    isDrawing: boolean;
    drawingPointCount: number;
    isEditingPolygon: boolean;
    isEditingVertices: boolean;
    isActivelyEditing: boolean;
    wellsInPolygonCount: number;
    drawRef: MutableRefObject<MapboxDraw | 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;
    discardDrawing: () => void;
    completeDrawing: () => void;
    deletePolygon: () => void;
    confirm: () => void;
    cancel: () => void;
};
export declare const useLassoSelection: ({ mapRef, isActive, isMapReady, hasInitialPolygon, onPolygonChange, wellsLayerId, wells, onWellsSelected, onDeactivate, subjectWellId, }: UseLassoSelectionParams) => UseLassoSelectionReturn;
export {};
//# sourceMappingURL=useLassoSelection.d.ts.map