import { ApplicationService, FetchClient, IManagedObject, IResultList, InventoryService } from '@c8y/client';
import { AppStateService, OptionsService } from '@c8y/ngx-components';
import { TranslateService } from '@ngx-translate/core';
import { ActilityDeviceProfile, ActilityDeviceRegistration, ConnectivityPlan } from './actility-device-registration.model';
import * as i0 from "@angular/core";
export declare enum ActilityErrorName {
    NoConnectivityPlansError = "NoConnectivityPlansError",
    NoFreeSlotsInConnectivityPlansError = "NoFreeSlotsInConnectivityPlansError",
    NoConnectivitySettingsError = "NoConnectivitySettingsError",
    ConnectivitySettingsError = "ConnectivitySettingsError",
    NoDeviceProfilesError = "NoDeviceProfilesError",
    DeviceProfilesFetchError = "DeviceProfilesFetchError",
    NoDeviceProtocolsError = "NoDeviceProtocolsError",
    DeviceProtocolsFetchError = "DeviceProtocolsFetchError",
    RegistrationError = "RegistrationError"
}
export declare class ActilityDeviceRegistrationService {
    private inventoryService;
    private client;
    private translateService;
    private applicationService;
    private optionsService;
    private appState;
    private baseUrl;
    private registrationUrl;
    private connectivityPlansUrl;
    private deviceProfilesUrl;
    private headers;
    constructor(inventoryService: InventoryService, client: FetchClient, translateService: TranslateService, applicationService: ApplicationService, optionsService: OptionsService, appState: AppStateService);
    getConnections(): Promise<{
        res: import("@c8y/client").IFetchResponse;
        data: any;
    }>;
    /**
     * Gets connectivity plans from LoRa platform.
     * @param connectionName The name of connection for which connectivity plans will be retrieved
     * @returns The result list with connectivity plans, or throws an error with exception.
     */
    getConnectivityPlans(connectionName: string): Promise<IResultList<ConnectivityPlan>>;
    /**
     * Gets the device profiles from LoRa platform.
     * @param connectionName The name of connection for which device profiles will be retrieved
     * @returns The result list with device profiles, or throws an error with exception.
     */
    getDeviceProfiles(connectionName: string): Promise<IResultList<ActilityDeviceProfile>>;
    /**
     * Gets the device protocols
     */
    getDeviceProtocols(filter?: object): Promise<IResultList<IManagedObject>>;
    /**
     * Creates device registration
     */
    register(registration: ActilityDeviceRegistration): Promise<{
        res: import("@c8y/client").IFetchResponse;
        data: any;
    }>;
    /**
     * checks if used connections is less then granted connections
     */
    private hasAvailableConnections;
    private throwNoConnectivitySettingsError;
    private throwConnectivitySettingsError;
    private throwNoConnectivityPlansError;
    private throwNoFreeSlotsInConnectivityPlansError;
    private throwDeviceProfilesFetchError;
    private throwNoDeviceProfilesError;
    private throwDeviceProtocolsFetchError;
    private throwNoDeviceProtocolsError;
    private throwRegistrationError;
    static ɵfac: i0.ɵɵFactoryDeclaration<ActilityDeviceRegistrationService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ActilityDeviceRegistrationService>;
}
//# sourceMappingURL=actility-device-registration.service.d.ts.map