/// <reference types="googlemaps" />
import { IMtEvent } from "./imtevent";
import { IRouteOptions } from "./irouteoptions";
import { IMapToolkitOptions } from "./imaptkoptions";
import { IBubbleInfoOptions } from "./ibubbleoptions";
import { MtEventSource } from "./mteventsource";
import { MtMarker } from "./mtmarker";
export declare class MapToolkit extends MtEventSource<IMtEvent> {
    nativeMap: google.maps.Map;
    private _bubbleMarkup;
    private _markerSelected;
    private _markerGroupCollection;
    private _radioSearchPaint;
    private _infoBubbleOpened;
    private _routeDrawed;
    private _options;
    constructor(nativeMap: google.maps.Map, _options?: IMapToolkitOptions);
    option<T>(name: string, defValue?: any): T;
    getSelectedMarker(): MtMarker;
    addMarker(marker: MtMarker, group?: string): MapToolkit;
    addAllMarkers(markers: MtMarker[], group?: string): MapToolkit;
    setMarker(marker: MtMarker, group?: string): void;
    /**
     * Elimina los markers que no estan mostrandose y adiciona los nuevos.
     * @param markers
     * @param group
     */
    setAllMarkers(markers: MtMarker[], group?: string): MapToolkit;
    removeMarker(id: any, group?: string): MtMarker;
    removeAllMarkers(markers: MtMarker[], group: string): void;
    removeGroup(group: string): void;
    centerMapToMarkers(): void;
    centerMap(pos: google.maps.LatLng, zoom?: number): any;
    centerMap(pos: string, zoom?: number): any;
    centerAndZoomToMarkers(positions?: google.maps.LatLng[]): void;
    getZoom(): number;
    getCenter(): google.maps.LatLng;
    getBounds(): google.maps.LatLngBounds;
    paintCircle(radio: number, center: google.maps.LatLng, circleOpts: google.maps.CircleOptions, clickListener?: Function): google.maps.Circle;
    showInfoBubble(options: IBubbleInfoOptions): void;
    closeInfoBubble(): void;
    showRoute(start: google.maps.LatLng, end: google.maps.LatLng, options?: IRouteOptions): Promise<any>;
    clearRoute(): void;
    private _getInfoBubblePositionForMarkerPosition(zoom, pos);
    private _ubicarInfoBubble(zoom, marker);
}
