/// <reference types="heremaps" />
import { OnInit, OnDestroy, AfterContentInit, ElementRef, QueryList, EventEmitter } from '@angular/core';
import { HereMapsManager } from '../services/maps-manager';
import { BaseMapComponent } from './base-map-component';
import { GeoPoint } from '../interface/lat-lng';
/**
 * Component that should render and initialize map instance.
 * Use it to define point in html document where map should be rendered
 */
export declare class MapComponent implements OnDestroy, OnInit, AfterContentInit {
    private _name;
    private _elem;
    private _mapsManager;
    static counters: number;
    mapComponents: QueryList<BaseMapComponent<H.map.Object>>;
    readonly ui: Promise<H.ui.UI>;
    /**
     * Should map auto resize bounds to current set of markers
     */
    autoFitMarkers: boolean;
    /**
     * Color used for the background of the Map div.
     * This color will be visible when tiles have not yet loaded as the user pans.
     * Note: This option can only be set when the map is initialized.
     */
    backgroundColor: string;
    /**
     * The initial Map center. Required.
     */
    center: GeoPoint;
    /**
     * Enables/disables zoom and center on double click. Enabled by default.
     */
    enableDoubleClickZoom: boolean;
    /**
     * If false, prevents the map from being dragged.
     * Dragging is enabled by default.
     */
    draggable: boolean;
    /**
     * If false, prevents the map from being controlled by the keyboard.
     * Keyboard shortcuts are enabled by default.
     */
    keyboardShortcuts: boolean;
    /**
     * If false, disables scrollwheel zooming on the map.
     * The scrollwheel is enabled by default.
     */
    scrollwheel: boolean;
    /**
     * Map zoom level.
     */
    zoom: number;
    /**
     * The minimum zoom level which will be displayed on the map.
     */
    minZoom: number;
    /**
     * The maximum zoom level which will be displayed on the map.
     */
    maxZoom: number;
    /**
     * Enables/disables all default UI.
     */
    disableDefaultUI: boolean;
    /**
     * Enabled/Disabled state of the Map type control.
     */
    mapTypeControl: boolean;
    /**
     * Enabled/Disabled state of the Rotate control.
     */
    rotateControl: boolean;
    /**
     * Enabled/Disabled state of the Scale control.
     */
    scaleControl: boolean;
    /**
     * Enabled/Disabled state of the Street View Pegman control.
     */
    streetViewControl: boolean;
    animateZoom: boolean;
    /**
     * Enabled/Disabled state of the Zoom control
     */
    zoomControl: boolean;
    /**
     * Notifies subscribers that map is updated
     */
    update: EventEmitter<H.Map>;
    /**
     * Fires when user interacts with map by clicking on it
     */
    clickMap: EventEmitter<H.mapevents.Event>;
    protected _uiResolver: (ui: H.ui.UI) => void;
    private _id;
    private _map;
    private _mapResolver;
    private _mapBackgroundColor;
    private _mapComponentsSubscriptions;
    private _center;
    constructor(_name: string, _elem: ElementRef, _mapsManager: HereMapsManager);
    /**
     * When resolved, returns Heremap instance
     */
    getMap(): Promise<H.Map>;
    ngOnInit(): void;
    ngOnDestroy(): void;
    ngAfterContentInit(): void;
    toString(): string;
    /**
     * Fits map to given bounds
     * @param bounds
     */
    fitBounds(bounds: H.geo.Rect): void;
    private attachComponentsToMap();
    private getOptions();
    private getControlOptions();
    private resetMapBounds(bounds);
    private attachEvents(map);
    private latLngCenter();
}
