import * as i0 from '@angular/core';
import { OnChanges, OnInit, OnDestroy, TemplateRef, SimpleChanges, AfterViewInit } from '@angular/core';
import { IManagedObject, IEvent, EventService, IIdentified, InventoryService } from '@c8y/client';
import { AlertService, DynamicComponent, DynamicComponentAlertAggregator, DashboardChildComponent, WidgetsDashboardComponent, DynamicComponentService } from '@c8y/ngx-components';
import { WidgetConfigService, ContextDashboardComponent } from '@c8y/ngx-components/context-dashboard';
import { GlobalContextState, RefreshOption, WidgetControls, WidgetConfigMigrationService } from '@c8y/ngx-components/global-context';
import { ClusterMapConfig, PositionManagedObject, MapComponent, MapService, ClusterMapComponent } from '@c8y/ngx-components/map';
import { MapDefaultConfig } from '@c8y/options';
import { TranslateService } from '@ngx-translate/core';
import L from 'leaflet';
import { Observable } from 'rxjs';

declare class MapEventInfoComponent implements OnChanges {
    private eventService;
    asset: IManagedObject;
    loading: boolean;
    event: IEvent;
    constructor(eventService: EventService);
    ngOnChanges(): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<MapEventInfoComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MapEventInfoComponent, "c8y-map-event-info", never, { "asset": { "alias": "asset"; "required": false; }; }, {}, never, ["*"], true, never>;
}

interface MapWidgetConfig extends Partial<GlobalContextState> {
    device?: IIdentified;
    mapConfig: ClusterMapConfig;
    realtime?: boolean;
}

declare class MapWidgetConfigComponent implements OnInit, OnChanges, OnDestroy {
    private mapService;
    private alertService;
    private translateService;
    private defaultMapConfig;
    private widgetConfigService;
    config: MapWidgetConfig;
    formConfig: ClusterMapConfig;
    readonly device: i0.WritableSignal<IIdentified>;
    readonly assets: i0.WritableSignal<PositionManagedObject[]>;
    readonly canAutoCenter: i0.Signal<any>;
    readonly isPositionedDevice: i0.Signal<boolean>;
    refreshOption: RefreshOption;
    private destroyed$;
    private leaflet;
    private centerIcon;
    private readonly FIXED_POINT_DIGITS;
    previewMap: MapComponent;
    set previewMapSet(template: TemplateRef<any>);
    constructor(mapService: MapService, alertService: AlertService, translateService: TranslateService, defaultMapConfig: Observable<MapDefaultConfig>, widgetConfigService: WidgetConfigService);
    ngOnDestroy(): void;
    ngOnInit(): void;
    fitToBound(): Promise<void>;
    initForm(): Promise<void>;
    ngOnChanges(changes: SimpleChanges): Promise<void>;
    previewMapInit(leaflet: typeof L): void;
    onBeforeSave(): boolean;
    zoomLevelChanged(): void;
    changeCenter(): void;
    changeCenterOnEnterKey(event: KeyboardEvent): void;
    onPreviewZoomStart(): void;
    onPreviewZoomEnd(event: L.LeafletEvent): void;
    onPreviewMapMove(event: L.LeafletEvent): void;
    useOwnPosition(): void;
    centerToAsset(): void;
    fitToBounds(): Promise<void>;
    selectIcon(icon: string): void;
    private updateAsset;
    private addCenterIcon;
    static ɵfac: i0.ɵɵFactoryDeclaration<MapWidgetConfigComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MapWidgetConfigComponent, "c8y-map-widget-config", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
}

declare class MapWidgetComponent implements OnInit, OnDestroy, AfterViewInit, DynamicComponent {
    private dashboardContextComponent;
    private inventory;
    private mapService;
    private widgetsDashboardComponent;
    private dynamicComponentService;
    private widgetConfigMigrationService;
    mapConfig: ClusterMapConfig;
    rootNode: IIdentified;
    config: MapWidgetConfig;
    clusterMap: ClusterMapComponent;
    alerts: DynamicComponentAlertAggregator;
    assets: PositionManagedObject[];
    private TIMEOUT_ERROR_TEXT;
    private SERVER_ERROR_TEXT;
    private savedNode;
    private destroy$;
    private resizeObserver;
    controls: WidgetControls;
    constructor(dashboardChild: DashboardChildComponent, dashboardContextComponent: ContextDashboardComponent, inventory: InventoryService, mapService: MapService, widgetsDashboardComponent: WidgetsDashboardComponent, dynamicComponentService: DynamicComponentService, widgetConfigMigrationService: WidgetConfigMigrationService);
    ngOnInit(): Promise<void>;
    ngAfterViewInit(): void;
    startFollow(context: any): void;
    stopFollow(): void;
    ngOnDestroy(): void;
    fitToBounds(): Promise<void>;
    onGlobalContext(event: any): Promise<void>;
    private updateAssets;
    private listenToWidgetResizeEvent;
    private subscribeToErrorsOccurred;
    private updateMapConfigRealtime;
    private applyDeviceTypeTarget;
    static ɵfac: i0.ɵɵFactoryDeclaration<MapWidgetComponent, [null, { optional: true; }, null, null, { optional: true; }, null, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MapWidgetComponent, "c8y-map-widget", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
}

export { MapEventInfoComponent, MapWidgetComponent, MapWidgetConfigComponent };
export type { MapWidgetConfig };
//# sourceMappingURL=index.d.ts.map
