import { BehaviorSubject } from 'rxjs'; import { NgZone } from '@angular/core'; import { EventDataTransformService } from './transform/event-data-transform.service'; import { GeometryTransformService } from './transform/geometry-transform.service'; /** * Provides tools for low-level framework actions and access to other injectable services. */ export declare class GoogleMapsApiService { private zone; eventsData: EventDataTransformService; geometry: GeometryTransformService; private apiReadyPromise; private mapsApiReady; /** * Creates an instance of GoogleMapsApiService. * @param {EventDataTransformService} eventsData Facilitating tools for working with event data objects. Can also be injected directly into any component/service. * @param {GeometryTransformService} geometry Facilitating tools for working with and converting geometry objects. Can also be injected directly into any component/service. */ constructor(zone: NgZone, eventsData: EventDataTransformService, geometry: GeometryTransformService, apiReadyPromise: BehaviorSubject>); /** * A promise which resolves when Google Maps API has loaded and is ready for use. * This is mostly designed for internal works. See the `*bsSafe` directive on how to ensure that map components load when api is ready. * * @readonly * @type {Promise} */ get whenReady(): Promise; /** * Runs the specified function outside angular's zone to avoid unnecessary change detection runs. * * @template TResult The type of result the function returns. * @param {() => TResult} fn The function to run outside angular. * @returns {TResult} The result which is returned by the function after running outside angular. */ runOutsideAngular(fn: () => TResult): TResult; /** * Brings the execution of the specified function into angular's zone, allowing change detection runs. * * @template TResult The type of result the function returns. * @param {() => TResult} fn The function to run inside angular. * @returns {TResult} The result which is returned by the function after running inside angular. */ runInsideAngular(fn: () => TResult): TResult; /** * Waits for Google Maps API to load, then runs the specified function outside angular's zone to avoid unnecessary change detection runs. * * @template TResult The type of result the function returns. * @param {() => TResult} fn The function to run outside angular. * @returns {TResult} The result which is returned by the function after running outside angular. */ runOutsideAngularWhenReady(fn: () => TResult): Promise; /** * Waits for Google Maps API to load, brings the execution of the specified function into angular's zone, allowing change detection runs. * * @template TResult The type of result the function returns. * @param {() => TResult} fn The function to run inside angular. * @returns {TResult} The result which is returned by the function after running inside angular. */ runInsideAngularWhenReady(fn: () => TResult): Promise; }