import * as i0 from '@angular/core';
import { OnInit, ViewContainerRef, OnDestroy, ModuleWithProviders } from '@angular/core';
import { InventoryService } from '@c8y/client';
import * as i2 from '@c8y/ngx-components';
import { ContextRouteService, AlertService, ActionBarFactory, ActionBarItem, ExtensionFactory, Tab, Permissions, OptionsService } from '@c8y/ngx-components';
import { MapDefaultConfig } from '@c8y/options';
import * as i3 from '@angular/router';
import { Router, ActivatedRoute } from '@angular/router';
import { Observable } from 'rxjs';
import * as i1 from '@c8y/ngx-components/map';
import { PositionManagedObject, MapConfig, MapComponent } from '@c8y/ngx-components/map';

declare class AddLocationComponent implements OnInit {
    private inventoryService;
    private contextRouteService;
    private defaultConfig$;
    private router;
    private alertService;
    private vcRef;
    templateCopy: any;
    constructor(inventoryService: InventoryService, contextRouteService: ContextRouteService, defaultConfig$: Observable<MapDefaultConfig>, router: Router, alertService: AlertService, vcRef: ViewContainerRef);
    ngOnInit(): void;
    onClick(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AddLocationComponent, [null, null, { optional: true; }, null, null, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AddLocationComponent, "c8y-add-location", never, {}, {}, never, never, true, never>;
}

declare class AddLocationFactory implements ActionBarFactory {
    private contextRouteService;
    private action;
    constructor(contextRouteService: ContextRouteService);
    get(activatedRoute?: ActivatedRoute): ActionBarItem;
    static ɵfac: i0.ɵɵFactoryDeclaration<AddLocationFactory, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AddLocationFactory>;
}

declare class LocationTabFactory implements ExtensionFactory<Tab> {
    private contextRouteService;
    constructor(contextRouteService: ContextRouteService);
    get(activatedRoute: ActivatedRoute): Tab[];
    static ɵfac: i0.ɵɵFactoryDeclaration<LocationTabFactory, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<LocationTabFactory>;
}

declare class LocationComponent implements OnInit, OnDestroy {
    private contextRouteService;
    private activatedRoute;
    private inventoryService;
    private permissions;
    private optionsService;
    private alertService;
    position: PositionManagedObject;
    originalPosition: PositionManagedObject;
    isEdit: boolean;
    canEdit: boolean;
    config: MapConfig;
    addressSearchTerm: string;
    hideAddressSearchFeature: boolean;
    private destroy$;
    private mapNominatimUrl;
    map: MapComponent;
    constructor(contextRouteService: ContextRouteService, activatedRoute: ActivatedRoute, inventoryService: InventoryService, permissions: Permissions, optionsService: OptionsService, alertService: AlertService);
    ngOnInit(): void;
    updateMap(): Promise<void>;
    toggleRealtime(): void;
    disableRealtime(): void;
    centerMap(): void;
    edit(): void;
    cancel(): void;
    save(): Promise<void>;
    positionChanged(position: PositionManagedObject): void;
    searchAddress(searchTerm: string): Promise<void>;
    updateMarkerPosition(): void;
    ngOnDestroy(): void;
    private enableMarkerDragging;
    static ɵfac: i0.ɵɵFactoryDeclaration<LocationComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LocationComponent, "c8y-location", never, {}, {}, never, never, true, never>;
}

interface LocationConfiguration {
    /**
     * If set to true, the user has the possibility to add a location to a device.
     */
    addLocation: boolean;
}

declare class LocationRouteModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<LocationRouteModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<LocationRouteModule, never, [typeof i1.MapModule, typeof i2.CoreModule, typeof i3.RouterModule, typeof LocationComponent], [typeof LocationComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<LocationRouteModule>;
}
declare class LocationTabModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<LocationTabModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<LocationTabModule, never, [typeof LocationRouteModule], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<LocationTabModule>;
}
/**
 * @deprecated has been splitted into `LocationTabModule` and `AddLocationModule`.
 */
declare class LocationModule {
    /**
     *
     * @deprecated use the `LocationTabModule` and optionally `AddLocationModule` instead.
     */
    static config(config?: LocationConfiguration): ModuleWithProviders<LocationModule>;
    static ɵfac: i0.ɵɵFactoryDeclaration<LocationModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<LocationModule, never, [typeof LocationTabModule], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<LocationModule>;
}
declare class AddLocationModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AddLocationModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AddLocationModule, never, [typeof i2.CoreModule, typeof LocationRouteModule, typeof AddLocationComponent], [typeof AddLocationComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AddLocationModule>;
}

export { AddLocationComponent, AddLocationFactory, AddLocationModule, LocationComponent, LocationModule, LocationRouteModule, LocationTabFactory, LocationTabModule };
//# sourceMappingURL=index.d.ts.map
