import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
import * as i0 from '@angular/core';
import { Signal } from '@angular/core';
import { Subject, Observable } from 'rxjs';
import { CollectionEvent } from 'ol/Collection';
import { EventsKey } from 'ol/events';
import { Layer, Vector } from 'ol/layer';
import { Source, Cluster, Vector as Vector$1 } from 'ol/source';
import { HsUrlWmsService, HsAddDataOwsService } from 'hslayers-ng/services/add-data';
import { HsConfig } from 'hslayers-ng/config';
import { HsWmtsGetCapabilitiesService, HsWfsGetCapabilitiesService, HsWmsGetCapabilitiesService, HsDimensionTimeService } from 'hslayers-ng/services/get-capabilities';
import { HsEventBusService } from 'hslayers-ng/services/event-bus';
import { HsLanguageService } from 'hslayers-ng/services/language';
import { HsLayerDescriptor, HsWmsLayer, MetadataUrl, WMSGetCapabilitiesResponse, HsLayermanagerFolder, HsTerrainLayerDescriptor } from 'hslayers-ng/types';
import { HsLayoutService } from 'hslayers-ng/services/layout';
import { HsLogService } from 'hslayers-ng/services/log';
import { HsMapService } from 'hslayers-ng/services/map';
import { HsQueuesService } from 'hslayers-ng/services/queues';
import { HsToastService } from 'hslayers-ng/common/toast';
import * as ol_geom from 'ol/geom';
import { Feature } from 'ol';
import { HsStylerService } from 'hslayers-ng/services/styler';
declare class HsLayerSelectorService {
currentLayer: HsLayerDescriptor;
layerSelected: Subject;
constructor();
/**
* Multi-casts new HsLayerManagerService.currentLayer to observers listening to the layerSelected subject.
* @param hsLayer - Selected layer (HsLayerManagerService.currentLayer)
*/
select(hsLayer: HsLayerDescriptor): void;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵprov: i0.ɵɵInjectableDeclaration;
}
declare class HsLayerEditorVectorLayerService {
hsConfig: HsConfig;
hsMapService: HsMapService;
hsStylerService: HsStylerService;
layersClusteredFromStart: any[];
/**
* Convert layer to clustered state where its source gets nested in another
* VectorSource and first level sources features contain 'features' attribute
* with the original features in it as an array
* @param newValue - Cluster or not to cluster
* @param layer - OL Layer to cluster or de-cluster
* @param distance - Minimum distance in pixels between clusters
* @param generateStyle - Whether a default cluster style shall be generated for the layer
*/
cluster(newValue: boolean, layer: Layer, distance: number, generateStyle: boolean): Promise;
createClusteredSource(layer: Layer, distance: number): Cluster>;
updateFeatureTableLayers(layer: Vector>): void;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵprov: i0.ɵɵInjectableDeclaration;
}
declare class HsLayerManagerMetadataService {
hsWmtsGetCapabilitiesService: HsWmtsGetCapabilitiesService;
hsWfsGetCapabilitiesService: HsWfsGetCapabilitiesService;
hsWmsGetCapabilitiesService: HsWmsGetCapabilitiesService;
private hsArcgisGetCapabilitiesService;
hsDimensionTimeService: HsDimensionTimeService;
hsLog: HsLogService;
hsUrlWmsService: HsUrlWmsService;
private hsMapService;
private hsAddDataUrlService;
private hsCommonLaymanService;
private hsCommonLaymanLayerService;
/**
* Recursive callback which identifies object representing added layer in WMS getCapabilities structure.
* It is used as reference for sublayer structure, metadata
* @returns Wms layer definition
*/
identifyLayerObject(layerName: string, currentLayer: HsWmsLayer, serviceLayer?: boolean): HsWmsLayer;
getParsedLayers(layerObject: any): any;
/**
* Adds hasSublayers parameter if layer has sub-layers
* @param layerDescriptor - Selected layer
*/
fillMetadata(layerDescriptor: HsLayerDescriptor): Promise;
metadataArray(layer: HsLayerDescriptor): Array;
/**
* Determines if layer has metadata information available
* @param layer - Current layer
*/
hasMetadata(layer: HsLayerDescriptor): boolean;
/**
* Looks for maxScaleDenominator in property object
*/
searchForScaleDenominator(properties: any): number;
/**
* Sets or updates values in layer object
*/
setOrUpdate(layer: Layer, key: any, values: any): void;
private parseWmsCapsMultipleLayers;
private parseWmsCapsSingleLayer;
/**
* Parse capabilities for WMS layer
*/
parseWmsCaps(layerDescriptor: HsLayerDescriptor, layerName: string, caps: WMSGetCapabilitiesResponse): void;
private setExtentAndOriginalExtent;
/**
* Set layer extent using capabilities layer object
*/
private setWmsCapsExtent;
/**
* Helper used in to get usable extent from layers capabilities object
*/
private getCapsExtent;
private collectLegend;
parseAttribution(layer: Layer, caps: any): void;
/**
* Callback function, adds getCapabilities response metadata to layer object
* @param layerDescriptor - Selected layer
* @returns Promise
*/
queryMetadata(layerDescriptor: HsLayerDescriptor): Promise;
parseArcGisCaps(layerDescriptor: HsLayerDescriptor, resp: any): void;
identifyArcgisLayerObj(layerId: number, caps: {
mapName: string;
layers: {
id: number;
name: string;
parentLayerId?: number;
defaultVisibility?: boolean;
subLayerIds?: number[];
minScale?: number;
maxScale?: number;
type?: string;
geometryType?: string;
}[];
}): {
Title: string;
Name: number;
Layer?: {
Title: string;
Name: number;
}[];
};
private fillMetadataUrlsIfNotExist;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵprov: i0.ɵɵInjectableDeclaration;
}
declare class HsLayermanagerDataObject {
folders: Signal