import { MutableRefObject } from 'react';
import type { MapRef } from '@vis.gl/react-mapbox';
import type MapboxDraw from '@mapbox/mapbox-gl-draw';
type EventHandlers = {
    create: ((e: unknown) => void) | null;
    update: ((e: unknown) => void) | null;
    delete: (() => void) | null;
    modeChange: ((e: {
        mode: string;
    }) => void) | null;
    selectionChange: ((e: {
        features: GeoJSON.Feature[];
    }) => void) | null;
};
type DrawEventCallbacks = {
    onDrawCreate: (e: {
        features: GeoJSON.Feature[];
    }) => void;
    onDrawUpdate: (e: {
        features: GeoJSON.Feature[];
    }) => void;
    onDrawDelete: () => void;
    onModeChange: (e: {
        mode: string;
    }) => void;
    onSelectionChange: (e: {
        features: GeoJSON.Feature[];
    }) => void;
};
type UseDrawEventHandlersReturn = {
    handlersRef: MutableRefObject<EventHandlers>;
    onAdd: (params: {
        map: MapRef;
    }) => void;
    onRemove: (params: {
        map: MapRef;
    }) => void;
};
export declare const useDrawEventHandlers: (callbacks: DrawEventCallbacks, drawRef: MutableRefObject<MapboxDraw | null>) => UseDrawEventHandlersReturn;
export {};
//# sourceMappingURL=useDrawEventHandlers.d.ts.map