import * as MarkerClustererModule from '@googlemaps/markerclusterer'; import { MarkerClustererOptions } from '@googlemaps/markerclusterer'; import * as react from 'react'; import { HTMLAttributes, ReactNode, PropsWithChildren, ReactElement } from 'react'; import * as react_jsx_runtime from 'react/jsx-runtime'; interface ControlProps extends HTMLAttributes { position?: google.maps.ControlPosition; } declare function Control({ position, children, ...props }: ControlProps): react.ReactPortal; type EventType = 'dragstart' | 'drag' | 'dragend'; interface OverlayMarker extends google.maps.OverlayView { map: google.maps.Map; container: HTMLDivElement; position: google.maps.LatLngLiteral; draggable: boolean; preventDragOnClickable: boolean; eventMap: Map void>; addDragEventListener(key: EventType, fn: (position: google.maps.LatLngLiteral) => void): () => void; updatePosition(position: google.maps.LatLngLiteral): void; setDraggable(draggable: boolean): any; setPreventDragOnClickable(preventDragOnClickable: boolean): any; } interface CustomMarkerEvent { onDragStart?: (position: google.maps.LatLngLiteral) => void; onDrag?: (position: google.maps.LatLngLiteral) => void; onDragEnd?: (position: google.maps.LatLngLiteral) => void; } interface CustomMarkerProps extends CustomMarkerEvent { children?: ReactNode; lat: number; lng: number; draggable?: boolean; preventDragOnClickable?: boolean; } declare const CustomMarker: react.ForwardRefExoticComponent>; interface MapEvent { onBoundsChanged?: (map: google.maps.Map) => void; onCenterChanged?: (map: google.maps.Map) => void; onClick?: (map: google.maps.Map, event: google.maps.MapMouseEvent | google.maps.IconMouseEvent) => void; onContextmenu?: (map: google.maps.Map, event: google.maps.MapMouseEvent) => void; onDblclick?: (map: google.maps.Map, event: google.maps.MapMouseEvent) => void; onDrag?: (map: google.maps.Map) => void; onDragEnd?: (map: google.maps.Map) => void; onDragStart?: (map: google.maps.Map) => void; onHeadingChanged?: (map: google.maps.Map) => void; onIdle?: (map: google.maps.Map) => void; onIsFractionalZoomEnabledChanged?: (map: google.maps.Map) => void; onMapCapabilitiesChanged?: (map: google.maps.Map) => void; onMapTypeIdChanged?: (map: google.maps.Map) => void; onMouseMove?: (map: google.maps.Map, event: google.maps.MapMouseEvent) => void; onMouseOut?: (map: google.maps.Map, event: google.maps.MapMouseEvent) => void; onMouseOver?: (map: google.maps.Map, event: google.maps.MapMouseEvent) => void; onProjectionChanged?: (map: google.maps.Map) => void; onRenderingTypeChanged?: (map: google.maps.Map) => void; onTilesLoaded?: (map: google.maps.Map) => void; onTiltChanged?: (map: google.maps.Map) => void; onZoomChanged?: (map: google.maps.Map) => void; } interface GoogleMapProps extends PropsWithChildren { initialZoom?: google.maps.MapOptions['zoom']; initialCenter?: google.maps.MapOptions['center']; zoom?: google.maps.MapOptions['zoom']; center?: google.maps.MapOptions['center']; mapOptions?: google.maps.MapOptions; onLoad?: (map: google.maps.Map) => void; style?: HTMLAttributes['style']; className?: HTMLAttributes['className']; containerProps?: HTMLAttributes; } declare const GoogleMap: react.ForwardRefExoticComponent>; type LibraryName = 'core' | 'maps' | 'places' | 'geocoding' | 'routes' | 'marker' | 'geometry' | 'elevation' | 'streetView' | 'journeySharing' | 'drawing' | 'visualization'; interface LibraryMap { core: google.maps.CoreLibrary; maps: google.maps.MapsLibrary; places: google.maps.PlacesLibrary; geocoding: google.maps.GeocodingLibrary; routes: google.maps.RoutesLibrary; marker: google.maps.MarkerLibrary; geometry: google.maps.GeometryLibrary; elevation: google.maps.ElevationLibrary; streetView: google.maps.StreetViewLibrary; journeySharing: google.maps.JourneySharingLibrary; drawing: google.maps.DrawingLibrary; visualization: google.maps.VisualizationLibrary; } interface ApiLoadConfig { /** * API key * https://developers.google.com/maps/documentation/javascript/get-api-key */ apiKey: string; /** * Maps JavaScript API version * default type: "weekly" * https://developers.google.com/maps/documentation/javascript/versions#release-channels-and-version-numbers */ v?: 'weekly' | 'quarterly' | 'beta' | 'alpha' | `${number}.${number}`; /** * additional Maps JavaScript API libraries to load. it is not generally recommended, but is available for developers who wish to finely tune the caching behavior on their website. * https://developers.google.com/maps/documentation/javascript/libraries#libraries-for-bootstrap-url-legacy */ libraries?: LibraryName | LibraryName[]; /** * The language to use. * https://developers.google.com/maps/faq#languagesupport */ language?: string; /** * The region code to use. * https://developers.google.com/maps/documentation/javascript/localization#Region */ region?: string; authReferrerPolicy?: string; } interface GoogleMapApiLoaderProps extends PropsWithChildren { suspense?: boolean; onSuccess?: (core: google.maps.CoreLibrary) => void; onFailure?: (reason: unknown) => void; } declare function GoogleMapApiLoader({ children, suspense, onSuccess, onFailure, ...apiLoadConfig }: GoogleMapApiLoaderProps): react_jsx_runtime.JSX.Element; interface InfoWindowEvent { onCloseClick?: (infoWindow: google.maps.InfoWindow) => void; onContentChanged?: (infoWindow: google.maps.InfoWindow) => void; onDomReady?: (infoWindow: google.maps.InfoWindow) => void; onPositionChanged?: (infoWindow: google.maps.InfoWindow) => void; onVisible?: (infoWindow: google.maps.InfoWindow) => void; onZIndexChanged?: (infoWindow: google.maps.InfoWindow) => void; } interface InfoWindowProps extends Omit, InfoWindowEvent { children?: ReactElement; open?: boolean; shouldFocus?: boolean; content?: ReactElement | string | Element | Text | null; } declare const InfoWindow: react.ForwardRefExoticComponent>; interface MarkerEvent { onAnimationChanged?: (marker: google.maps.Marker) => void; onClick?: (marker: google.maps.Marker, event: google.maps.MapMouseEvent) => void; onClickableChanged?: (marker: google.maps.Marker) => void; onContextMenu?: (marker: google.maps.Marker, event: google.maps.MapMouseEvent) => void; onCursorChanged?: (marker: google.maps.Marker) => void; onDblClick?: (marker: google.maps.Marker, event: google.maps.MapMouseEvent) => void; onDrag?: (marker: google.maps.Marker, event: google.maps.MapMouseEvent) => void; onDragEnd?: (marker: google.maps.Marker, event: google.maps.MapMouseEvent) => void; onDraggableChanged?: (marker: google.maps.Marker) => void; onDragStart?: (marker: google.maps.Marker, event: google.maps.MapMouseEvent) => void; onFlatChanged?: (marker: google.maps.Marker) => void; onIconChanged?: (marker: google.maps.Marker) => void; onMouseDown?: (marker: google.maps.Marker, event: google.maps.MapMouseEvent) => void; onMouseOut?: (marker: google.maps.Marker, event: google.maps.MapMouseEvent) => void; onMouseOver?: (marker: google.maps.Marker, event: google.maps.MapMouseEvent) => void; onMouseUp?: (marker: google.maps.Marker, event: google.maps.MapMouseEvent) => void; onPositionChanged?: (marker: google.maps.Marker) => void; onShapeChanged?: (marker: google.maps.Marker) => void; onTitleChanged?: (marker: google.maps.Marker) => void; onVisibleChanged?: (marker: google.maps.Marker) => void; onZindexChanged?: (marker: google.maps.Marker) => void; } interface MarkerProps extends Omit, MarkerEvent { lat: number; lng: number; draggable?: boolean; } declare const Marker: react.ForwardRefExoticComponent>; interface PolylineEvent { onClick?: (polyline: google.maps.Polyline, event: google.maps.PolyMouseEvent) => void; onContextmenu?: (polyline: google.maps.Polyline, event: google.maps.PolyMouseEvent) => void; onDblClick?: (polyline: google.maps.Polyline, event: google.maps.PolyMouseEvent) => void; onDrag?: (polyline: google.maps.Polyline, event: google.maps.MapMouseEvent) => void; onDragEnd?: (polyline: google.maps.Polyline, event: google.maps.MapMouseEvent) => void; onDragStart?: (polyline: google.maps.Polyline, event: google.maps.MapMouseEvent) => void; onMouseDown?: (polyline: google.maps.Polyline, event: google.maps.PolyMouseEvent) => void; onMouseMove?: (polyline: google.maps.Polyline, event: google.maps.PolyMouseEvent) => void; onMouseOut?: (polyline: google.maps.Polyline, event: google.maps.PolyMouseEvent) => void; onMouseOver?: (polyline: google.maps.Polyline, event: google.maps.PolyMouseEvent) => void; onMouseUp?: (polyline: google.maps.Polyline, event: google.maps.PolyMouseEvent) => void; } interface PolylineProps extends Partial>, PolylineEvent { } declare const Polyline: react.ForwardRefExoticComponent>; interface PolygonEvent { onClick?: (polygon: google.maps.Polygon, event: google.maps.PolyMouseEvent) => void; onContextmenu?: (polygon: google.maps.Polygon, event: google.maps.PolyMouseEvent) => void; onDblClick?: (polygon: google.maps.Polygon, event: google.maps.PolyMouseEvent) => void; onDrag?: (polygon: google.maps.Polygon, event: google.maps.MapMouseEvent) => void; onDragEnd?: (polygon: google.maps.Polygon, event: google.maps.MapMouseEvent) => void; onDragStart?: (polygon: google.maps.Polygon, event: google.maps.MapMouseEvent) => void; onMouseDown?: (polygon: google.maps.Polygon, event: google.maps.PolyMouseEvent) => void; onMouseMove?: (polygon: google.maps.Polygon, event: google.maps.PolyMouseEvent) => void; onMouseOut?: (polygon: google.maps.Polygon, event: google.maps.PolyMouseEvent) => void; onMouseOver?: (polygon: google.maps.Polygon, event: google.maps.PolyMouseEvent) => void; onMouseUp?: (polygon: google.maps.Polygon, event: google.maps.PolyMouseEvent) => void; } interface PolygonProps extends Partial>, PolygonEvent { } declare const Polygon: react.ForwardRefExoticComponent>; interface RectangleEvent { onBoundsChanged?: (rectangle: google.maps.Rectangle) => void; onClick?: (rectangle: google.maps.Rectangle, event: google.maps.PolyMouseEvent) => void; onContextmenu?: (rectangle: google.maps.Rectangle, event: google.maps.PolyMouseEvent) => void; onDblClick?: (rectangle: google.maps.Rectangle, event: google.maps.PolyMouseEvent) => void; onDrag?: (rectangle: google.maps.Rectangle, event: google.maps.MapMouseEvent) => void; onDragEnd?: (rectangle: google.maps.Rectangle, event: google.maps.MapMouseEvent) => void; onDragStart?: (rectangle: google.maps.Rectangle, event: google.maps.MapMouseEvent) => void; onMouseDown?: (rectangle: google.maps.Rectangle, event: google.maps.PolyMouseEvent) => void; onMouseMove?: (rectangle: google.maps.Rectangle, event: google.maps.PolyMouseEvent) => void; onMouseOut?: (rectangle: google.maps.Rectangle, event: google.maps.PolyMouseEvent) => void; onMouseOver?: (rectangle: google.maps.Rectangle, event: google.maps.PolyMouseEvent) => void; onMouseUp?: (rectangle: google.maps.Rectangle, event: google.maps.PolyMouseEvent) => void; } interface RectangleProps extends Partial>, RectangleEvent { } declare const Rectangle: react.ForwardRefExoticComponent>; interface CircleEvent { onCenterChanged?: (circle: google.maps.Circle) => void; onClick?: (circle: google.maps.Circle, event: google.maps.PolyMouseEvent) => void; onDblClick?: (circle: google.maps.Circle, event: google.maps.PolyMouseEvent) => void; onDrag?: (circle: google.maps.Circle, event: google.maps.MapMouseEvent) => void; onDragEnd?: (circle: google.maps.Circle, event: google.maps.MapMouseEvent) => void; onDragStart?: (circle: google.maps.Circle, event: google.maps.MapMouseEvent) => void; onMouseDown?: (circle: google.maps.Circle, event: google.maps.PolyMouseEvent) => void; onMouseMove?: (circle: google.maps.Circle, event: google.maps.PolyMouseEvent) => void; onMouseOut?: (circle: google.maps.Circle, event: google.maps.PolyMouseEvent) => void; onMouseOver?: (circle: google.maps.Circle, event: google.maps.PolyMouseEvent) => void; onMouseUp?: (circle: google.maps.Circle, event: google.maps.PolyMouseEvent) => void; onRadiusChanged?: (circle: google.maps.Circle, event: google.maps.PolyMouseEvent) => void; } interface CircleProps extends Partial>, CircleEvent { } declare const Circle: react.ForwardRefExoticComponent>; interface HeatmapLayerProps extends Omit { children?: ReactNode; hidden?: boolean; } declare const HeatmapLayer: react.ForwardRefExoticComponent>; interface MarkerClustererProps extends Omit { children?: ReactNode; } declare const MarkerClusterer: react.ForwardRefExoticComponent>; interface AdvancedMarkerEvent { onClick?: (marker: google.maps.marker.AdvancedMarkerElement, event: google.maps.MapMouseEvent) => void; onDrag?: (marker: google.maps.marker.AdvancedMarkerElement, event: google.maps.MapMouseEvent) => void; onDragEnd?: (marker: google.maps.marker.AdvancedMarkerElement, event: google.maps.MapMouseEvent) => void; onDragStart?: (marker: google.maps.marker.AdvancedMarkerElement, event: google.maps.MapMouseEvent) => void; onGmpClick?: (marker: google.maps.marker.AdvancedMarkerElement, evnet: google.maps.marker.AdvancedMarkerClickEvent) => void; } interface AdvancedMarkerProps extends Omit, AdvancedMarkerEvent { lat: number; lng: number; children?: Exclude>; hidden?: boolean; } declare const AdvancedMarker: react.ForwardRefExoticComponent>; interface PinElementProps extends google.maps.marker.PinElementOptions { children?: Exclude>; } declare const PinElement: react.ForwardRefExoticComponent>; declare const useMapContext: () => google.maps.Map; declare const useImportLibrary: (libName: Name) => Lib | null; declare enum LoadingStatus { LOADING = "LOADING", FAILURE = "FAILURE", SUCCESS = "SUCCESS" } declare const useApiLoadingStatus: () => LoadingStatus; declare const appendLibImportScript: ({ apiKey, v, libraries, language, region, authReferrerPolicy }: ApiLoadConfig) => void; declare const _default: { Control: typeof Control; Marker: react.ForwardRefExoticComponent>; Polyline: react.ForwardRefExoticComponent>; Polygon: react.ForwardRefExoticComponent>; Rectangle: react.ForwardRefExoticComponent>; Circle: react.ForwardRefExoticComponent>; HeatmapLayer: react.ForwardRefExoticComponent>; MarkerClusterer: react.ForwardRefExoticComponent>; AdvancedMarker: react.ForwardRefExoticComponent>; PinElement: react.ForwardRefExoticComponent>; CustomMarker: react.ForwardRefExoticComponent>; InfoWindow: react.ForwardRefExoticComponent>; GoogleMap: react.ForwardRefExoticComponent>; GoogleMapApiLoader: typeof GoogleMapApiLoader; useMapContext: () => google.maps.Map; useImportLibrary: (libName: Name) => Lib | null; LoadingStatus: typeof LoadingStatus; useApiLoadingStatus: () => LoadingStatus; appendLibImportScript: ({ apiKey, v, libraries, language, region, authReferrerPolicy }: ApiLoadConfig) => void; }; export { AdvancedMarker, AdvancedMarkerProps, ApiLoadConfig, Circle, CircleProps, Control, ControlProps, CustomMarker, CustomMarkerProps, GoogleMap, GoogleMapApiLoader, GoogleMapApiLoaderProps, GoogleMapProps, HeatmapLayer, HeatmapLayerProps, InfoWindow, InfoWindowEvent, InfoWindowProps, LibraryMap, LibraryName, LoadingStatus, MapEvent, Marker, MarkerClusterer, MarkerClustererProps, MarkerEvent, MarkerProps, OverlayMarker, PinElement, PinElementProps, Polygon, PolygonProps, Polyline, PolylineProps, Rectangle, RectangleProps, appendLibImportScript, _default as default, useApiLoadingStatus, useImportLibrary, useMapContext };