import { Autocomplete, Circle, DrawingManager, HeatmapLayer, InfoWindow, KmlLayer, MapLayer, Marker, Polygon, Polyline, Rectangle, StreetViewPanorama } from './components'; import { IGmapVuePluginOptions, IGoogleMapsApiObject } from './interfaces'; import { TGlobalGoogleObject, IGmvUtilities } from './types'; import { Emitter, EventType } from 'mitt'; import { FunctionPlugin } from 'vue'; /** * Vue augmentations */ declare module 'vue' { interface ComponentCustomProperties { $gmapDefaultResizeBus: Emitter>; $gmapApiPromiseLazy: () => Promise; $gmapOptions: IGmapVuePluginOptions; } interface GlobalComponents { GmvMap: typeof MapLayer; GmvMarker: typeof Marker; GmvInfoWindow: typeof InfoWindow; GmvKmlLayer: typeof KmlLayer; GmvAutocomplete: typeof Autocomplete; GmvStreetViewPanorama: typeof StreetViewPanorama; GmvHeatmapLayer: typeof HeatmapLayer; GmvCircle: typeof Circle; GmvPolygon: typeof Polygon; GmvPolyline: typeof Polyline; GmvRectangle: typeof Rectangle; GmvDrawingManager: typeof DrawingManager; } } declare global { var GoogleMapsApi: IGoogleMapsApiObject; var GoogleMapsCallback: () => void; interface Window { GoogleMapsApi: IGoogleMapsApiObject; GoogleMapsCallback: () => unknown; google?: TGlobalGoogleObject; [key: string | number | symbol]: unknown; } } /** * Export all utilities * * @constant * @type {Object} object containing all utilities * @property {Function} googleMapsApiInitializer - function to initialize the Google Maps API * @property {Function} pluginComponentBuilder - function to initialize the Google Maps API * @property {Function} getGoogleMapsAPI - function to get the original Google Maps API */ declare const utilities: IGmvUtilities; /** * GmapVuePlugin factory function * * @param {IGmapVuePluginOptions} [options] configuration object to initialize the GmapVue plugin */ declare const createGmapVuePlugin: (options: IGmapVuePluginOptions) => FunctionPlugin; export { createGmapVuePlugin, utilities };