import type { Plugin } from '@capacitor/core'; import type { CameraConfig, GoogleMapConfig, LatLngBounds, MapPadding, MapType, Marker, LatLng } from './definitions'; /** * An interface containing the options used when creating a map. */ export interface CreateMapArgs { /** * A unique identifier for the map instance. */ id: string; /** * The Google Maps SDK API Key. */ apiKey: string; /** * The initial configuration settings for the map. */ config: GoogleMapConfig; /** * The DOM element that the Google Map View will be mounted on which determines size and positioning. */ element: HTMLElement; /** * Destroy and re-create the map instance if a map with the supplied id already exists * @default false */ forceCreate?: boolean; } export interface DestroyMapArgs { id: string; } export interface RemoveMarkerArgs { id: string; markerId: string; } export interface RemoveMarkersArgs { id: string; markerIds: string[]; } export interface AddMarkerArgs { id: string; marker: Marker; } export interface CameraArgs { id: string; config: CameraConfig; } export interface MapTypeArgs { id: string; mapType: MapType; } export interface IndoorMapArgs { id: string; enabled: boolean; } export interface TrafficLayerArgs { id: string; enabled: boolean; } export interface AccElementsArgs { id: string; enabled: boolean; } export interface PaddingArgs { id: string; padding: MapPadding; } export interface CurrentLocArgs { id: string; enabled: boolean; } export interface AddMarkersArgs { id: string; markers: Marker[]; } export interface OnScrollArgs { id: string; mapBounds: { x: number; y: number; width: number; height: number; }; } export interface CircleOptions { radius: number; mapId: string; center: LatLng; fillColor: string; strokeColor: string; strokeWidth: number; } export interface CapacitorCustomGoogleMapsPlugin extends Plugin { create(options: CreateMapArgs): Promise; addCircle(args: CircleOptions): Promise; addMarker(args: AddMarkerArgs): Promise<{ id: string; }>; addMarkers(args: AddMarkersArgs): Promise<{ ids: string[]; }>; removeMarker(args: RemoveMarkerArgs): Promise; removeMarkers(args: RemoveMarkersArgs): Promise; enableClustering(args: { id: string; }): Promise; disableClustering(args: { id: string; }): Promise; destroy(args: DestroyMapArgs): Promise; setCamera(args: CameraArgs): Promise; setMapType(args: MapTypeArgs): Promise; enableIndoorMaps(args: IndoorMapArgs): Promise; enableTrafficLayer(args: TrafficLayerArgs): Promise; enableAccessibilityElements(args: AccElementsArgs): Promise; enableCurrentLocation(args: CurrentLocArgs): Promise; setMyLocationButtonEnabled(args: CurrentLocArgs): Promise; setPadding(args: PaddingArgs): Promise; onScroll(args: OnScrollArgs): Promise; dispatchMapEvent(args: { id: string; focus: boolean; }): Promise; getMapBounds(args: { id: string; }): Promise; checkMockLocation(args: { id: string; }): Promise<{ isMockLocation: boolean; }>; } declare const CapacitorCustomGoogleMaps: CapacitorCustomGoogleMapsPlugin; export { CapacitorCustomGoogleMaps };