///
import { NgZone } from '@angular/core';
import { Observable } from 'rxjs';
import { MarkerClusterService } from '../abstract/abstract-marker-cluster';
import { H21MapMarkerClusterDirective } from '../../directives/h21-map-marker-cluster.directive';
import { Position } from '../../models/position.model';
import { CircleEvent } from '../../models/circle-event.model';
import { MarkerClusterFilter } from '../../models/marker-cluster-filter.model';
export declare class GoogleMarkerClusterService extends MarkerClusterService {
private _zone;
private _markerCluster;
private _layer;
constructor(_zone: NgZone);
addMarkerCluster(markerCluster?: H21MapMarkerClusterDirective): void;
createOverlay(markerCluster?: H21MapMarkerClusterDirective): void;
updateMarkerCluster(markerCluster: H21MapMarkerClusterDirective): void;
removeMarkerCluster(markerCluster?: H21MapMarkerClusterDirective): void;
removeMarkerClusters(): void;
removeFeature(markerCluster: H21MapMarkerClusterDirective): void;
createEvent(eventName: string, markerCluster: H21MapMarkerClusterDirective, isOverlay?: boolean): Observable;
createEventMouseOver(markerCluster: H21MapMarkerClusterDirective): Observable;
createEventMouseOut(markerCluster: H21MapMarkerClusterDirective): Observable;
createEventMouseClick(markerCluster: H21MapMarkerClusterDirective): Observable;
setModeCircle(CircleOptions: CircleEvent): void;
setFilter(filter: MarkerClusterFilter): void;
clearMarkerCluster(): void;
getBounds(): Observable;
updateStyle(id: number, position?: Position): void;
private _createDataLayer;
private _getArray;
private _overrideStyle;
private _createOverlay;
private _overlayStyle;
private _createOptions;
private _addMarkerCluster;
private _addDataStyles;
private _removeFeature;
private _removeOverlay;
private _createEventField;
private _redrawStyle;
private _clusterFitbounds;
}