import { Feature } from 'ol';
import { Geometry, MultiPolygon } from 'ol/geom';
import { MapExternalProps, MapLayer } from '../../components/Map/types';
export interface MapInteractionsContextValues {
    isSelected: boolean;
    setIsSelected: React.Dispatch<React.SetStateAction<boolean>>;
    allowModify: boolean;
    setAllowModify: React.Dispatch<React.SetStateAction<boolean>>;
    isDrawing: boolean;
    setIsDrawing: React.Dispatch<React.SetStateAction<boolean>>;
    isEditing: boolean;
    setIsEditing: React.Dispatch<React.SetStateAction<boolean>>;
    selectedGeometry: null | {
        value: number;
        label: string;
    };
    setSelectedGeometry: React.Dispatch<React.SetStateAction<{
        value: number;
        label: string;
    } | null>>;
    drawnFeatures: MultiPolygon[];
    setDrawnFeatures: React.Dispatch<React.SetStateAction<MultiPolygon[]>>;
    overlappingFeature: Feature<Geometry>[];
    showLocationEnabled: boolean;
    setOverlappingFeatures: React.Dispatch<React.SetStateAction<Feature<Geometry>[]>>;
    mapLayers: MapLayer[];
    showInfoLayerEnabled: boolean;
    mapRepresentationIdToAssign: number | null;
    setMapRepresentationIdToAssign: React.Dispatch<React.SetStateAction<number | null>>;
    deselectAllFeatures: () => void;
    onSaveEditClicked: () => void;
    onDrawClicked: (accepted?: boolean, geometryChosen?: boolean) => void;
    onCancelDrawClicked: () => void;
    handleSendAllGeometries: () => void;
    onCancelEditClicked: () => void;
    onEditClicked: () => void;
    onDeleteGeometryClicked: () => void;
    onToggleShowInfoLayer: () => void;
    onAssignMapRepresentation: () => void;
    onToggleShowLocation: () => void;
    handleCollectGeometries: () => void;
    onSmartGemSync: () => void;
}
export interface MapInteractionsContextProps {
    children: React.ReactNode;
    mapLayers: MapLayer[];
    caseObjectId: number;
    setOuterDrawnGeometries: MapExternalProps['setOuterDrawnGeometries'];
}
