///
import { NgZone } from '@angular/core';
import { Observable } from 'rxjs';
import { MapsAPILoader } from './maps-api-loader/maps-api-loader';
/**
* Wrapper class that handles the communication with the Google Maps Javascript
* API v3
*/
export declare class GoogleMapsAPIWrapper {
private _loader;
private _zone;
private _map;
private _mapResolver;
constructor(_loader: MapsAPILoader, _zone: NgZone);
createMap(el: HTMLElement, mapOptions: google.maps.MapOptions): Promise;
setMapOptions(options: google.maps.MapOptions): void;
/**
* Creates a google map marker with the map context
*/
createMarker(options?: google.maps.MarkerOptions, addToMap?: boolean): Promise;
createInfoWindow(options?: google.maps.InfoWindowOptions): Promise;
/**
* Creates a google.map.Circle for the current map.
*/
createCircle(options: google.maps.CircleOptions): Promise;
/**
* Creates a google.map.Rectangle for the current map.
*/
createRectangle(options: google.maps.RectangleOptions): Promise;
createPolyline(options: google.maps.PolylineOptions): Promise;
createPolygon(options: google.maps.PolygonOptions): Promise;
/**
* Creates a new google.map.Data layer for the current map
*/
createDataLayer(options?: google.maps.Data.DataOptions): Promise;
/**
* Creates a TransitLayer instance for a map
* @returns a new transit layer object
*/
createTransitLayer(): Promise;
/**
* Creates a BicyclingLayer instance for a map
* @returns a new bicycling layer object
*/
createBicyclingLayer(): Promise;
/**
* Determines if given coordinates are insite a Polygon path.
*/
containsLocation(latLng: google.maps.LatLng, polygon: google.maps.Polygon): Promise;
subscribeToMapEvent(eventName: N): Observable;
clearInstanceListeners(): void;
setCenter(latLng: google.maps.LatLngLiteral): Promise;
getZoom(): Promise;
getBounds(): Promise;
getMapTypeId(): Promise;
setZoom(zoom: number): Promise;
getCenter(): Promise;
panTo(latLng: google.maps.LatLng | google.maps.LatLngLiteral): Promise;
panBy(x: number, y: number): Promise;
fitBounds(latLng: google.maps.LatLngBounds | google.maps.LatLngBoundsLiteral, padding?: number | google.maps.Padding): Promise;
panToBounds(latLng: google.maps.LatLngBounds | google.maps.LatLngBoundsLiteral, padding?: number | google.maps.Padding): Promise;
/**
* Returns the native Google Maps Map instance. Be careful when using this instance directly.
*/
getNativeMap(): Promise;
/**
* Triggers the given event name on the map instance.
*/
triggerMapEvent(eventName: string): Promise;
}