/**
* This file is part of the NocoBase (R) project.
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
* Authors: NocoBase Team.
*
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
* For more information, please refer to: https://www.nocobase.com/agreement.
*/
///
export type GoogleMapsDrawingMode = 'marker' | 'polyline' | 'polygon' | 'circle' | null;
export type GoogleMapsOverlay = google.maps.Marker | google.maps.Polyline | google.maps.Polygon | google.maps.Circle;
export interface GoogleMapsOverlayCompleteEvent {
type: Exclude;
overlay: GoogleMapsOverlay;
}
export interface GoogleMapsDrawingManager {
setDrawingMode: (mode: GoogleMapsDrawingMode) => void;
addListener: (eventName: 'overlaycomplete', listener: (event: GoogleMapsOverlayCompleteEvent) => void) => google.maps.MapsEventListener;
handleClick: (event: google.maps.MapMouseEvent) => void;
handleOverlayClick: (event: google.maps.MapMouseEvent, fallbackPosition?: google.maps.LatLng) => void;
handleDoubleClick: () => void;
completeDrawing: () => void;
unbindAll: () => void;
}
interface GoogleMapsDrawingManagerOptions {
drawingMode: GoogleMapsDrawingMode;
markerOptions: google.maps.MarkerOptions;
polygonOptions: google.maps.PolygonOptions;
polylineOptions: google.maps.PolylineOptions;
circleOptions: google.maps.CircleOptions;
map: google.maps.Map;
}
export declare const createGoogleMapsDrawingManager: (options: GoogleMapsDrawingManagerOptions) => GoogleMapsDrawingManager;
export {};