import React, { CSSProperties, ReactElement } from 'react'; import { BoundsViewport, AnimationFunction } from './Types'; import { BoundsDriftMarkerProps } from './BoundsDriftMarker'; import 'leaflet/dist/leaflet.css'; import '../../dist/css/map_styles.css'; import { MouseMode } from './MouseTools'; import { PlotRef } from '../types/plots'; export declare type Viewport = { center: [number, number]; zoom: number; }; export declare const baseLayers: { Street: { url: string; attribution: string; maxZoom: number; }; Terrain: { url: string; attribution: string; maxZoom: number; }; Satellite: { url: string; attribution: string; noWrap: boolean; maxZoom: number; }; OSM: { url: string; attribution: string; }; }; export declare type BaseLayerChoice = keyof typeof baseLayers; /** * Renders a Leaflet map with semantic zooming markers * * * @param props */ export interface MapVEuMapProps { /** Center lat/long and zoom level */ viewport: Viewport; /** update handler */ onViewportChanged: (viewport: Viewport) => void; /** Height and width of plot element */ height: CSSProperties['height']; width: CSSProperties['width']; /** CSS styles for the map container other than height and width, * which have their own dedicated props */ style?: Omit; /** callback for when viewport has changed, giving access to the bounding box */ onBoundsChanged: (bvp: BoundsViewport) => void; markers: ReactElement[]; recenterMarkers?: boolean; sidebarOnClose?: (value: React.SetStateAction) => void; animation: { method: string; duration: number; animationFunction: AnimationFunction; } | null; /** Should a geohash-based grid be shown? * Optional. See also zoomLevelToGeohashLevel **/ showGrid?: boolean; /** A function to map from Leaflet zoom level to Geohash level * * Optional, but required for grid functionality if showGrid is true **/ zoomLevelToGeohashLevel?: (leafletZoomLevel: number) => number; /** What's the minimum leaflet zoom level allowed? Default = 1 */ minZoom?: number; /** * Should the mouse-mode (regular/magnifying glass) icons be shown and active? **/ showMouseToolbar?: boolean; /** mouseMode control */ mouseMode?: MouseMode; /** a function for changing mouseMode */ onMouseModeChange?: (value: MouseMode) => void; /** * The name of the tile layer to use. If omitted, defaults to Street. */ baseLayer?: BaseLayerChoice; /** Callback for when the base layer has changed */ onBaseLayerChanged?: (newBaseLayer: BaseLayerChoice) => void; /** Show layers control, default true */ showLayerSelector?: boolean; /** Show attribution, default true */ showAttribution?: boolean; /** Show zoom control, default true */ showZoomControl?: boolean; /** Whether to zoom and pan map to center on markers */ flyToMarkers?: boolean; /** How long (in ms) after rendering to wait before flying to markers */ flyToMarkersDelay?: number; /** Whether to show a loading spinner */ showSpinner?: boolean; /** Whether to show the "No data" overlay */ showNoDataOverlay?: boolean; /** Whether to show the Scale in the map */ showScale?: boolean; /** Whether to allow any interactive control of map location (default: true) */ interactive?: boolean; /** is map scroll and zoom allowed? default true; will be overridden by `interactive: false` */ scrollingEnabled?: boolean; } declare const _default: React.ForwardRefExoticComponent>; export default _default; //# sourceMappingURL=MapVEuMap.d.ts.map