import * as React from 'react'; import OlMap from 'ol/Map'; import OlBaseLayer from 'ol/layer/Base'; import { BaseLayer, IBaseLayerProps } from './layer/BaseLayer'; import { ISnapshot } from '@gisosteam/aol/ISnapshot'; import { ISnapshotSource } from '@gisosteam/aol/source/IExtended'; import { SourceTypeEnum } from '@gisosteam/aol/source/types/sourceType'; export type layerElementStatus = null | 'react' | 'ext' | 'del'; export interface ILayerElement { /** * React Element. */ reactElement: Readonly; /** * Unique id. */ uid: string; /** * Updated props. */ updatedProps: any; /** * Status. */ status: Readonly; /** * Openlayers layer. */ olLayer?: OlBaseLayer; } export declare class LayersManager { private uid; private olMap; private refresh; constructor(uid: string, olMap: OlMap, refresh: () => void); /** * Get Openlayers map. */ getOlMap(): OlMap; /** * Get snapshot. */ getSnapshot: () => ISnapshot; /** * Reload layers. */ reload(): Promise; /** * Reload from snapshot. */ reloadFromSnapshot(snapshot: ISnapshot): Promise; /** * Get infoElements */ getLayerElements(filterFn?: (value: ILayerElement, index: number, array: ILayerElement[]) => boolean, thisFilterArg?: any): ILayerElement[]; getLayerElementFromSource(source: ISnapshotSource): ILayerElement; getLayerElementByUID(uid: string): ILayerElement; /** * Update layer props */ updateLayerProps(uid: string, props: any, refreshIfChanging?: boolean): void; /** * Set Openlayers layer */ setOlLayer(uid: string, olLayer: OlBaseLayer): void; /** * Get Openlayers layer */ getOlLayer(uid: string): OlBaseLayer; /** * Remove layer */ removeLayer(uid: string): void; /** * Create and add layer props */ createAndAddLayer(cl: React.ClassType, any>, props: IBaseLayerProps): void; /** * Create and add layer props */ createAndAddLayerFromSource(source: ISnapshotSource, props: IBaseLayerProps): ISnapshotSource; /** * Create and add layer props */ createAndAddLayerFromSourceDefinition(sourceType: SourceTypeEnum, sourceOptions: any, props: IBaseLayerProps): ISnapshotSource; /** * Update from children */ fromChildren(nextChildren: React.ReactNode): void; /** * Set layerElement */ private setLayerElement; }