import { Layer, CustomLayer, TGeoExtent, TFiltertypesUncap, TFiltertypes } from '@dlr-eoc/services-layers';
import { ICesiumControls } from './map-cesium.component';
import { Color, DataSource, ImageryLayer, JulianDate } from '@cesium/engine';
import { Viewer } from '@cesium/widgets';
import { IMapCenter } from '@dlr-eoc/services-map-state';
import * as i0 from "@angular/core";
declare type Tgroupfiltertype = TFiltertypesUncap | TFiltertypes;
export declare class MapCesiumService {
    viewer: Viewer;
    private baseLayerImageryGroup;
    private standardLayerImageryGroup;
    private overlayLayerImageryGroup;
    private baseLayerDataSourceGroup;
    private standardLayerDataSourceGroup;
    private overlayLayerDataSourceGroup;
    private dataSourceOpacity;
    private terrainLayerGroup;
    private tilesetLayerGroup;
    EPSG: string;
    cesiumCurrentTime: JulianDate;
    private cesiumTimeInterval;
    private viewerOptions;
    defaultGlobeColor: Color;
    constructor();
    setControls(newControls: ICesiumControls): void;
    createMap(target: HTMLElement): {
        viewer: Viewer;
    };
    setZoom(zoom: number, notifier?: 'map' | 'user'): void;
    getZoom(): number;
    setCenter(center: IMapCenter): void;
    getCenter(): IMapCenter;
    setExtent(extent: TGeoExtent, geographic?: boolean, fitOptions?: any): void;
    getCurrentExtent(geographic?: boolean): TGeoExtent;
    /**
      *  Set initial oblique view, see https://cesium.com/learn/cesiumjs/ref-doc/Camera.html
      *  subtract 90°, to get the same behavior as in openlayers
      *  options of viewer.camera.flyTo`
      *
      * https://github.com/CesiumGS/cesium/blob/99d6fffe20d9cf19f2d70de97777dc00a435bc5e/packages/engine/Source/Scene/Camera.js#L1457
      * https://github.com/CesiumGS/cesium/blob/99d6fffe20d9cf19f2d70de97777dc00a435bc5e/packages/engine/Source/Scene/Camera.js#L3540-L3541
      */
    setViewAngle(viewAngle: number, options?: any): void;
    /**
     * @param options of viewer.camera.flyTo
     */
    setNadirViewAngle(options?: any): void;
    getViewAngle(): number;
    /**
      *  subtract rotation degree from 360° to get the same behavior as in openlayers
      *  options of viewer.camera.flyTo`
      *
      * https://github.com/CesiumGS/cesium/blob/99d6fffe20d9cf19f2d70de97777dc00a435bc5e/packages/engine/Source/Scene/Camera.js#L3424
      * https://github.com/CesiumGS/cesium/blob/99d6fffe20d9cf19f2d70de97777dc00a435bc5e/packages/engine/Source/Scene/Camera.js#L1456
      */
    setRotation(rotation: number, options?: any): void;
    getRotation(): number;
    getAll2DLayersSize(filtertype: Tgroupfiltertype): number;
    get2DImageryLayersSize(filtertype: Tgroupfiltertype): number;
    getDataSourceLayersSize(filtertype: Tgroupfiltertype): number;
    getVisible2DLayersSize(filtertype: Tgroupfiltertype): number;
    get3DLayersSize(filtertype: Tgroupfiltertype): number;
    getVisible3DLayersSize(filtertype: Tgroupfiltertype): number;
    set2DUkisLayers(layers: Array<Layer>, filtertype: Tgroupfiltertype): void;
    set3DUkisLayers(layers: Array<Layer>, filtertype: Tgroupfiltertype): void;
    private create_2D_layer;
    private create_3D_layer;
    private create_xyz_layer;
    private create_wms_layer;
    private create_wmts_layer;
    private create_tms_layer;
    private create_dataSource_layer;
    private create_geojson_layer;
    private create_kml_layer;
    getLayerById(id: string, filtertype: Tgroupfiltertype): ImageryLayer | DataSource | undefined;
    removeAll2DLayers(): void;
    remove2DLayers(filtertype: Tgroupfiltertype): void;
    remove2DLayer(layerId: string[], filtertype: Tgroupfiltertype): void;
    removeAll3DLayers(): void;
    remove3DLayers(filtertype: Tgroupfiltertype): void;
    remove3DLayer(layerId: string[], filtertype: Tgroupfiltertype): void;
    update2DLayerOpacity(layers: Layer[], filtertype: Tgroupfiltertype): void;
    update2DLayerVisibility(layers: Layer[], filtertype: Tgroupfiltertype): void;
    update2DLayerZIndex(layers: Layer[], filtertype: Tgroupfiltertype): void;
    updateDataSourceZIndex(layers: Layer[], filtertype: Tgroupfiltertype): void;
    setTerrain(terrainLayer: CustomLayer): void;
    setDefaultTerrain(): void;
    removeTerrain(): void;
    private create_3Dtileset_layer;
    private dataCallback;
    update3DLayerVisibility(layers: Layer[], filtertype: Tgroupfiltertype): void;
    update3DLayerOpacity(layers: Layer[], filtertype: Tgroupfiltertype): void;
    initTime(startTime: string): void;
    updateTime(newTime: string): void;
    setTimeInterval(times: string[]): void;
    addIonAccessToken(token: string): void;
    addGoogleMapsApiKey(key: string): void;
    destroyLayerGrpoups(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MapCesiumService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<MapCesiumService>;
}
export {};
