import type { ImageryLayer, Scene } from 'cesium'; import type Collection from 'ol/Collection.js'; import type Map from 'ol/Map.js'; import type View from 'ol/View.js'; import type { EventsKey } from 'ol/events.js'; import type BaseLayer from 'ol/layer/Base.js'; import LayerGroup from 'ol/layer/Group.js'; import type { LayerWithParents } from './core.js'; import type VectorLayerCounterpart from './core/VectorLayerCounterpart.js'; export default abstract class AbstractSynchronizer { protected map: Map; protected view: View; protected scene: Scene; protected olLayers: Collection; mapLayerGroup: LayerGroup; /** * Map of OpenLayers layer ids (from getUid) to the Cesium ImageryLayers. * Null value means, that we are unable to create equivalent layers. */ protected layerMap: Record>; /** * Map of listen keys for OpenLayers layer layers ids (from getUid). */ protected olLayerListenKeys: Record>; /** * Map of listen keys for OpenLayers layer groups ids (from getUid). */ private olGroupListenKeys_; protected constructor(map: Map, scene: Scene); /** * Destroy all and perform complete synchronization of the layers. */ synchronize(): void; /** * Order counterparts using the same algorithm as the Openlayers renderer: * z-index then original sequence order. */ protected orderLayers(): void; /** * Add a layer hierarchy. * @param root */ private addLayers_; /** * Add Cesium objects. * @param cesiumObjects * @param layerId * @param layer */ private addCesiumObjects_; /** * Remove and destroy a single layer. * @param {ol.layer.Layer} layer * @return {boolean} counterpart destroyed */ private removeAndDestroySingleLayer_; /** * Unlisten a single layer group. * @param group */ private unlistenSingleGroup_; /** * Remove layer hierarchy. * @param root */ private removeLayer_; /** * Register listeners for single layer group change. * @param group */ private listenForGroupChanges_; /** * Destroys all the created Cesium objects. */ destroyAll(): void; /** * Adds a single Cesium object to the collection. */ protected abstract addCesiumObject(object: T): void; protected abstract destroyCesiumObject(object: T): void; /** * Remove single Cesium object from the collection. */ protected abstract removeSingleCesiumObject(object: T, destroy: boolean): void; protected abstract removeAllCesiumObjects(destroy: boolean): void; protected abstract createSingleLayerCounterparts(olLayerWithParents: LayerWithParents): Array; } //# sourceMappingURL=AbstractSynchronizer.d.ts.map