import { Image as ImageLayer } from 'ol/layer.js'; import ImageWMS from 'ol/source/ImageWMS.js'; import { Map } from 'ol'; import LayerWms from '../../models/layers/layerwms.js'; import SelectionParam from '../../models/selectionparam.js'; import WfsFilter from '../wfs/wfsfilter.js'; import ServerOgc from '../../models/serverogc.js'; import IGirafeContext from '../context/icontext.js'; export default abstract class WmsClient { private readonly map; private readonly ogcServer; private readonly context; private readonly resolutionTolerance; private capabilityPromise; private capabilities; private get state(); private get audienceExcludedPaths(); private layers; private olayer?; private independentLayers; private basemapLayers; constructor(ogcServer: ServerOgc, map: Map, context: IGirafeContext); removeAllBasemapLayers(): void; addLayer(layerWms: LayerWms): void; private addLayerInternal; createImageWMSSource(layerList?: LayerWms[]): ImageWMS; abstract getOpenLayerLayerNames(layerList: LayerWms[]): string[]; addBasemapLayer(layerWms: LayerWms): void; removeLayer(layerWms: LayerWms): void; layerExists(layerWms: LayerWms): boolean; private layerInStandardLayers; private layerIsIndependentLayer; private layerIsBasemapLayer; getOLayer(layerWms: LayerWms): ImageLayer | null; changeOpacity(layerWms: LayerWms): void; changeFilter(layerWms: LayerWms): void; changeTimeRestriction(layerWms: LayerWms): void; prepareSwipe(layerWms: LayerWms): void; private manageLayerOptions; private makeLayerIndependent; private updateLayerFilter; abstract buildFilterQuery(layerWms: LayerWms): string; private updateTimeRestriction; selectFeatures(extent: number[]): void; /** * Selects features based on the specified query and prepares selection parameters. */ selectFeaturesByQuery(query: WfsFilter[]): void; getFeatureInfo(selectionParam: SelectionParam): Promise[]>; private getFeatureInfoUrl; private handleGetFeatureInfoResponse; refreshZIndexes(): void; getWmsCapabilities(): Promise>; } export declare class WmsClientQgis extends WmsClient { /** QGIS-server does not filter on a WMS layer made from multiple underlying WFS queryLayers * Solution: directly query the queryLayers */ getOpenLayerLayerNames(layerList: LayerWms[]): string[]; /** MapServer wants 1 filter per underlying WFS queryLayer, all included in parentheses * QGIS-server wants 1 filter per underlying WFS queryLayer, each in its own in parentheses * * MapServer: (......) * QGIS-server: (...)(...) */ buildFilterQuery(layerWms: LayerWms): string; } export declare class WmsClientMapServer extends WmsClient { getOpenLayerLayerNames(layerList: LayerWms[]): string[]; buildFilterQuery(layerWms: LayerWms): string; } export declare const WmsClientDefault: typeof WmsClientQgis; export declare const WmsClientGeoServer: typeof WmsClientMapServer;