/** * 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 {};