/// <reference types="heremaps" />
import { LazyMapsApiLoader } from '../loaders/lazy-maps-api-loader';
import { MarkerOptions } from '../interface/marker-options';
import { LatLng, GeoPoint } from '../interface/lat-lng';
import { IControlOptions } from '../interface/control-options.interface';
import { BubbleOptions } from '../interface/bubble-options';
/**
 * Service responsible to execute arbitrary functions in specific google map context
 */
export declare class HereMapsManager {
    private loader;
    private _maps;
    private _browserLocationPromise;
    private _defaultLayers;
    private _loadPromise;
    constructor(loader: LazyMapsApiLoader);
    onApiLoad(): Promise<H.service.Platform>;
    createMarker(options: MarkerOptions): Promise<H.map.Marker>;
    createBubble(options: BubbleOptions): Promise<H.ui.InfoBubble>;
    getDirections(origin: GeoPoint, destination: GeoPoint, intermediatePoints?: GeoPoint[]): Promise<H.service.ServiceResult>;
    createMap(el: HTMLElement, options?: H.Map.Options, controls?: IControlOptions): Promise<{
        map: H.Map;
        ui: H.ui.UI;
        platform: H.service.Platform;
    }>;
    getMap(name: string): Promise<H.Map | undefined>;
    addMap(name: string, map: H.Map): void;
    removeMap(name: string): boolean;
    getBrowserLocation(): Promise<Coordinates | {
        longitude: number;
        latitude: number;
    }>;
    calculateMapBounds(points?: Array<LatLng | Coordinates | H.map.AbstractMarker>): Promise<H.geo.Rect>;
    private generateWaypointParam(coordinates, end?);
}
