import { OnInit, OnDestroy, AfterViewInit, ElementRef } from '@angular/core';
import { MapStateService } from '@dlr-eoc/services-map-state';
import { Subscription, Subject } from 'rxjs';
import { MapCesiumService } from './map-cesium.service';
import { LayersService } from '@dlr-eoc/services-layers';
import { Viewer } from '@cesium/widgets';
import * as i0 from "@angular/core";
export interface ICesiumControls {
    timeline?: boolean;
    animation?: boolean;
    sceneModePicker?: boolean;
    homeButton?: boolean;
    baseLayerPicker?: boolean;
    geocoder?: boolean;
    navigationHelpButton?: boolean;
    navigationInstructionsInitiallyVisible?: boolean;
    fullscreenButton?: boolean;
    scene3DOnly?: boolean;
    infoBox?: boolean;
    selectionIndicator?: boolean;
    enablePopups?: boolean;
    ionAccessToken?: string;
    GoogleMapsApiKey?: string;
    globeColor?: string;
}
export declare class MapCesiumComponent implements OnInit, AfterViewInit, OnDestroy {
    private mapSvc;
    mapDivView: ElementRef;
    creditDivView: ElementRef;
    twoDlayersSvc: LayersService;
    threeDlayersSvc: LayersService;
    mapStateSvc: MapStateService;
    controls: ICesiumControls;
    timeInterval?: string[];
    startTime?: string | null;
    viewer: Viewer;
    subs: Subscription[];
    mapCreated: Subject<boolean>;
    initState: boolean;
    constructor(mapSvc: MapCesiumService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    private initMap;
    private subscribeToLayers;
    private subscribeToMapState;
    private setMapState;
    private calcMapStateFromCamera;
    private subscribeToMapEvents;
    private addUpdateBaseLayers;
    private add2DBaseLayers;
    private update2DBaseLayers;
    private addUpdateTerrainLayers;
    private addTerrainLayers;
    private addUpdate2DLayers;
    private addLayers;
    private updateLayers;
    private addUpdate3DLayers;
    private add3DLayers;
    private update3DLayers;
    closeCesiumPopup(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MapCesiumComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MapCesiumComponent, "ukis-map-cesium", never, { "twoDlayersSvc": { "alias": "twoDlayersSvc"; "required": false; }; "threeDlayersSvc": { "alias": "threeDlayersSvc"; "required": false; }; "mapStateSvc": { "alias": "mapState"; "required": false; }; "controls": { "alias": "controls"; "required": false; }; "timeInterval": { "alias": "timeInterval"; "required": false; }; "startTime": { "alias": "startTime"; "required": false; }; }, {}, never, never, true, never>;
}
