import { BehaviorSubject } from 'rxjs'; import { DrawableOverlay } from '../../abstraction/types/abstraction'; import { IGoogleMapsMarker } from '../../modules/marker/i-google-maps-marker'; import { IGoogleMapsPolygon } from '../../modules/polygon/i-google-maps-polygon'; import { IGoogleMapsPolyline } from '../../modules/polyline/i-google-maps-polyline'; import { IGoogleMapsCircle } from '../../modules/circle/i-google-maps-circle'; import { IGoogleMapsData } from '../../modules/data/i-google-maps-data'; import { OverlaysState } from './overlays-state'; /** * Tracks the overlays added to and removed from the map for easy access. */ export declare class OverlaysTracker { readonly markers: IGoogleMapsMarker[]; readonly polygons: IGoogleMapsPolygon[]; readonly polylines: IGoogleMapsPolyline[]; readonly circles: IGoogleMapsCircle[]; readonly dataLayers: IGoogleMapsData[]; /** * Emits an `OverlaysState` object every time an overlay is added or removed from the map. */ readonly changes: BehaviorSubject; private map; /** * Registers an added overlay. * * @param {DrawableOverlay} overlay The overlay that was added to the map. */ add(overlay: DrawableOverlay): void; /** * Registers a removed overlay. * * @param {DrawableOverlay} overlay The overlay that was removed from the map. */ remove(overlay: DrawableOverlay): void; private detectCollection; private state; private reportChanges; }