import { FC, MutableRefObject } from 'react';
import type { ExpressionSpecification } from 'mapbox-gl';
import type { Feature, Polygon, FeatureCollection, Point } from 'geojson';
import type MapboxDraw from '@mapbox/mapbox-gl-draw';
import type { SelectionZone } from '../../../../../types/SelectionZone';
import type { PolygonCoord } from '../../../../../stores/filter-store/types';
import type { RadiusState } from '../../../../../stores/selection-tool-store/types';
import type { HoveredWellState, HoveredClusterState } from '../../hooks/useTooltip';
import { MapStyleValue } from '../../constants';
import { Coordinates } from '../../OffsetWellMap.types';
type PopupAnchor = 'center' | 'top' | 'bottom' | 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
type MapLayersProps = {
    wellsGeoJSON: FeatureCollection<Point>;
    highlightGeoJSON: FeatureCollection<Point>;
    activeHighlightGeoJSON: FeatureCollection<Point> | null;
    loadingTilesGeoJSON: FeatureCollection;
    hoveredWell: HoveredWellState | null;
    mapStyle: MapStyleValue;
    isSatellite: boolean;
    clusterColorExpression: ExpressionSpecification;
    isRadiusToolActive: boolean;
    radiusState: RadiusState;
    radiusDrawingPreviewCircle: Feature<Polygon> | null;
    isRadiusHoveringEdge: boolean;
    isRadiusDrawingDragging: boolean;
    showGhostZone: boolean;
    selectionZone?: SelectionZone | null;
    isTooZoomedOut: boolean;
    isLoadAllWells: boolean;
    isActiveWellIsSubjectWell: boolean;
    isLassoActive: boolean;
    isMapReady: boolean;
    polygonCoords: PolygonCoord[] | undefined;
    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;
    subjectWellCoords: Coordinates | null;
    subjectWell: {
        id?: number;
    } | null;
    handleSubjectWellMouseEnter: () => void;
    handleSubjectWellMouseLeave: () => void;
    hoveredCluster: HoveredClusterState | null;
    tooltipAnchor: PopupAnchor;
    tooltipOffset: number | [number, number];
    isViewOnly: boolean;
    isClickable: boolean;
};
export declare const MapLayers: FC<MapLayersProps>;
export {};
//# sourceMappingURL=MapLayers.d.ts.map