import { ElementRef, OnInit, OnChanges, EventEmitter } from '@angular/core';
import { CfCoreComponent } from '../core/core.component';
import { GoogleMapsModel } from '../../models/google-maps/google-maps.model';
import { GoogleMapsStylingModel } from '../../models/google-maps/google-maps-styling.model';
import { TemplateService } from '../../services/template-service/template.service';
/**
 * <p>Google Map component based on <a href="https://angular-maps.com/" target="_blank">angular2-google-maps</a>. For correct work of component please provide your Google Maps Api key and set it in import section of the application module like this:</p>
 * <pre>
 *  AgmCoreModule.forRoot({ apiKey: 'YOUR_KEY' })
 * </pre>
 * <pre>
 * <code>
 * import { GoogleMapsModel } from 'cedrus-fusion'
 * import { GoogleMapsStylingModel } from 'cedrus-fusion'
 * <code><</code>cf-google-maps<code>></code><code><</code><code>/</code>cf-google-maps<code>></code>
 * </code>
 * </pre>
 */
export declare class CfGoogleMapsComponent extends CfCoreComponent implements OnInit, OnChanges {
    elementRef: ElementRef;
    /** @hidden
     * It is component inner property of type GoogleMapsModel.
     */
    cfGoogleMap: GoogleMapsModel;
    /**
   * It is component input property of type GoogleMapsModel.
   */
    properties: GoogleMapsModel;
    /**
     * It is component container styling property of type GoogleMapsStylingModel.
     */
    styling: GoogleMapsStylingModel;
    /**
     * It is event emitter for all events on map itself
     */
    onMapEvents: EventEmitter<any>;
    /**
     * It is event emitter for all events on map markers
     */
    onMarkerEvents: EventEmitter<any>;
    /**
     * It is event emitter for all events on map circles
     */
    onCircleEvents: EventEmitter<any>;
    /**
     * It is event emitter for all events on map polylines
     */
    onPolylineEvents: EventEmitter<any>;
    /**
     * It is event emitter for all events on map polygons
     */
    onPolygonEvents: EventEmitter<any>;
    /** @hidden */
    constructor(elementRef: ElementRef, /**@hidden */ templateService: TemplateService);
    /** @hidden
     * On component init cfGoogleMap and styling objects are generated to be rendered in template
     */
    ngOnInit(): void;
    /** @hidden */
    ngOnChanges(changes: any): void;
    /** @hidden
     * Function to creating event object for all maps events.
     * @param type  type of events group. Can be: map, marker, circle, polyline, polygone
     * @param name  it is name of event
     * @param $event  it is object with data of each specific map event
     * @param element  it is object of map element on which event was triggered
     * @param index  it is index of map element on which event was triggered. For example index of marker in map markers array.
     */
    makeMapEventObject(type: string, $event: any, name: string, element: any, index: number): void;
    /** @hidden
     * Function which is triggered on user iteraction on map itself
     * @param name  it is name of event
     * @param $event  it is object with data of each specific map event
     */
    cfMapEvents($event: any, name: string): void;
    /** @hidden
     * Function which is triggered on user iteraction on map markers
     * @param name  it is name of event
     * @param $event  it is object with data of each specific map marker event
     * @param element  it is object of map marker on which event was triggered
     * @param index  it is index of marker on which event was triggered
     */
    cfMarkerEvents($event: any, name: string, element: any, index: number): void;
    /** @hidden
     * Function which is triggered on user iteraction on map circles
     * @param name  it is name of event
     * @param $event  it is object with data of each specific map circle event
     * @param element  it is object of map circle on which event was triggered
     * @param index  it is index of circle on which event was triggered
     */
    cfCircleEvents($event: any, name: string, element: any, index: number): void;
    /** @hidden
     * Function which is triggered on user iteraction on map polylines
     * @param name  it is name of event
     * @param $event  it is object with data of each specific map polyline event
     * @param element  it is object of map polyline on which event was triggered
     * @param index  it is index of polyline on which event was triggered
     */
    cfPolylineEvents($event: any, name: string, element: any, index: number): void;
    /** @hidden
     * Function which is triggered on user iteraction on map polygons
     * @param name  it is name of event
     * @param $event  it is object with data of each specific map polygon event
     * @param element  it is object of map polygon on which event was triggered
     * @param index  it is index of polygon on which event was triggered
     */
    cfPolygonEvents($event: any, name: string, element: any, index: number): void;
}
