import { Observable, Subject } from 'rxjs'; import { MapService } from './abstract-map'; import { H21MapMarkerClusterDirective } from '../../directives/h21-map-marker-cluster.directive'; import { CircleEvent } from '../../models/circle-event.model'; import { Position } from '../../models/position.model'; import { MarkerClusterFilter } from '../../models/marker-cluster-filter.model'; import { ChangesMap } from '../../enums/changes-map.enum'; import { Bounds } from '../../models/bounds-map.model'; export declare abstract class MarkerClusterService { map: MapService; addListener: Subject; markerClusterClick: Subject; loading: Subject; modeCircle: Subject; changeFilter: Subject; isMarkerCluster: Subject; ready$: Subject; redraw$: Subject; changeTrackMap$: Subject; resizeBounds$: Subject; clearMarkerCluster$: Subject; countLoadMarkers$: Subject; initMap(map: MapService): void; abstract addMarkerCluster(layer?: H21MapMarkerClusterDirective, geoJson?: any): void; abstract removeMarkerClusters(): void; abstract removeMarkerCluster(layer: H21MapMarkerClusterDirective): void; abstract removeFeature(layer: H21MapMarkerClusterDirective): void; abstract createEvent(eventName: string, layer: H21MapMarkerClusterDirective): Observable; abstract createEventMouseOver(layer: H21MapMarkerClusterDirective): Observable; abstract createEventMouseOut(layer: H21MapMarkerClusterDirective): Observable; abstract createEventMouseClick(layer: H21MapMarkerClusterDirective): Observable; abstract updateMarkerCluster(layer: H21MapMarkerClusterDirective): void; abstract setModeCircle(CircleOptions: CircleEvent): void; abstract setFilter(filter: MarkerClusterFilter): void; abstract updateStyle(featureId: number, position?: Position): void; abstract getBounds(): Observable; abstract clearMarkerCluster(): void; redraw(): void; setChangeMap(mode: ChangesMap): void; resizeBounds(bounds?: Bounds): void; getCountLoadMarkers(layer: H21MapMarkerClusterDirective): void; }