import type { CameraConfig, Marker, MapPadding, MapType, MapListenerCallback, MapReadyCallbackData, CameraIdleCallbackData, CameraMoveStartedCallbackData, ClusterClickCallbackData, MapClickCallbackData, MarkerClickCallbackData, MyLocationButtonClickCallbackData, LatLngBounds, CircleOptions, RemoveMarkersArgs, RemoveMarkerArgs } from './definitions'; import type { CreateMapArgs } from './implementation'; export interface GoogleMapInterface { create(options: CreateMapArgs, callback?: MapListenerCallback): Promise; enableClustering(): Promise; disableClustering(): Promise; addCircle(options: CircleOptions): Promise; addMarker(marker: Marker): Promise; addMarkers(markers: Marker[]): Promise; removeMarker(args: RemoveMarkerArgs): Promise; removeMarkers(args: RemoveMarkersArgs): Promise; destroy(): Promise; setCamera(config: CameraConfig): Promise; setMapType(mapType: MapType): Promise; enableIndoorMaps(enabled: boolean): Promise; enableTrafficLayer(enabled: boolean): Promise; enableAccessibilityElements(enabled: boolean): Promise; enableCurrentLocation(enabled: boolean): Promise; setMyLocationButtonEnabled(enabled: boolean): Promise; checkMockLocation(args: { id: string; }): Promise; setPadding(padding: MapPadding): Promise; setOnBoundsChangedListener(callback?: MapListenerCallback): Promise; setOnCameraIdleListener(callback?: MapListenerCallback): Promise; setOnCameraMoveStartedListener(callback?: MapListenerCallback): Promise; setOnClusterClickListener(callback?: MapListenerCallback): Promise; setOnClusterInfoWindowClickListener(callback?: MapListenerCallback): Promise; setOnInfoWindowClickListener(callback?: MapListenerCallback): Promise; setOnMapClickListener(callback?: MapListenerCallback): Promise; setOnMarkerClickListener(callback?: MapListenerCallback): Promise; setOnMarkerDragStartListener(callback?: MapListenerCallback): Promise; setOnMarkerDragListener(callback?: MapListenerCallback): Promise; setOnMarkerDragEndListener(callback?: MapListenerCallback): Promise; setOnMyLocationButtonClickListener(callback?: MapListenerCallback): Promise; setOnMyLocationClickListener(callback?: MapListenerCallback): Promise; } export declare class GoogleMap { private id; private element; private onBoundsChangedListener?; private onCameraIdleListener?; private onCameraMoveStartedListener?; private onClusterClickListener?; private onClusterInfoWindowClickListener?; private onInfoWindowClickListener?; private onMapClickListener?; private onMarkerClickListener?; private onMarkerDragStartListener?; private onMarkerDragListener?; private onMarkerDragEndListener?; private onMyLocationButtonClickListener?; private onMyLocationClickListener?; private constructor(); /** * Creates a new instance of a Google Map * @param options * @param callback * @returns GoogleMap */ static create(options: CreateMapArgs, callback?: MapListenerCallback): Promise; private static getElementBounds; /** * Enable marker clustering * * @returns void */ enableClustering(): Promise; /** * Disable marker clustering * * @returns void */ disableClustering(): Promise; /** * Adds a marker to the map * * @param marker * @returns created marker id */ addMarker(marker: Marker): Promise; /** * Adds multiple markers to the map * * @param markers * @returns array of created marker IDs */ addMarkers(markers: Marker[]): Promise; /** * Adds circle * @param options * @returns void */ addCircle(options: CircleOptions): Promise; /** * Remove marker from the map * * @param id id of the marker to remove from the map * @returns */ removeMarker(id: string): Promise; /** * Remove markers from the map * * @param ids array of ids to remove from the map * @returns */ removeMarkers(ids: string[]): Promise; /** * Destroy the current instance of the map */ destroy(): Promise; /** * Update the map camera configuration * * @param config * @returns */ setCamera(config: CameraConfig): Promise; /** * Sets the type of map tiles that should be displayed. * * @param mapType * @returns */ setMapType(mapType: MapType): Promise; /** * Sets whether indoor maps are shown, where available. * * @param enabled * @returns */ enableIndoorMaps(enabled: boolean): Promise; /** * Controls whether the map is drawing traffic data, if available. * * @param enabled * @returns */ enableTrafficLayer(enabled: boolean): Promise; /** * Show accessibility elements for overlay objects, such as Marker and Polyline. * * Only available on iOS. * * @param enabled * @returns */ enableAccessibilityElements(enabled: boolean): Promise; /** * Set whether the My Location dot and accuracy circle is enabled. * * @param enabled * @returns */ enableCurrentLocation(enabled: boolean): Promise; /** * Set whether the My Button Location dot and accuracy circle is enabled. * * @param enabled * @returns */ setMyLocationButtonEnabled(enabled: boolean): Promise; /** * checkMockLocation * * @returns boolean */ checkMockLocation(args: { id: string; }): Promise<{ isMockLocation: boolean; }>; /** * Set padding on the 'visible' region of the view. * * @param padding * @returns */ setPadding(padding: MapPadding): Promise; /** * Get the map's current viewport latitude and longitude bounds. * * @returns {LatLngBounds} */ getMapBounds(): Promise; initScrolling(): void; disableScrolling(): void; handleScrollEvent: () => void; private updateMapBounds; /** * Set the event listener on the map for 'onCameraIdle' events. * * @param callback * @returns */ setOnCameraIdleListener(callback?: MapListenerCallback): Promise; /** * Set the event listener on the map for 'onBoundsChanged' events. * * @param callback * @returns */ setOnBoundsChangedListener(callback?: MapListenerCallback): Promise; /** * Set the event listener on the map for 'onCameraMoveStarted' events. * * @param callback * @returns */ setOnCameraMoveStartedListener(callback?: MapListenerCallback): Promise; /** * Set the event listener on the map for 'onClusterClick' events. * * @param callback * @returns */ setOnClusterClickListener(callback?: MapListenerCallback): Promise; /** * Set the event listener on the map for 'onClusterInfoWindowClick' events. * * @param callback * @returns */ setOnClusterInfoWindowClickListener(callback?: MapListenerCallback): Promise; /** * Set the event listener on the map for 'onInfoWindowClick' events. * * @param callback * @returns */ setOnInfoWindowClickListener(callback?: MapListenerCallback): Promise; /** * Set the event listener on the map for 'onMapClick' events. * * @param callback * @returns */ setOnMapClickListener(callback?: MapListenerCallback): Promise; /** * Set the event listener on the map for 'onMarkerClick' events. * * @param callback * @returns */ setOnMarkerClickListener(callback?: MapListenerCallback): Promise; /** * Set the event listener on the map for 'onMarkerDragStart' events. * * @param callback * @returns */ setOnMarkerDragStartListener(callback?: MapListenerCallback): Promise; /** * Set the event listener on the map for 'onMarkerDrag' events. * * @param callback * @returns */ setOnMarkerDragListener(callback?: MapListenerCallback): Promise; /** * Set the event listener on the map for 'onMarkerDragEnd' events. * * @param callback * @returns */ setOnMarkerDragEndListener(callback?: MapListenerCallback): Promise; /** * Set the event listener on the map for 'onMyLocationButtonClick' events. * * @param callback * @returns */ setOnMyLocationButtonClickListener(callback?: MapListenerCallback): Promise; /** * Set the event listener on the map for 'onMyLocationClick' events. * * @param callback * @returns */ setOnMyLocationClickListener(callback?: MapListenerCallback): Promise; /** * Remove all event listeners on the map. * * @param callback * @returns */ removeAllMapListeners(): Promise; private generateCallback; }