import { OnDestroy } from '@angular/core';
import { FetchClient, IFetchOptions, IResult, IResultList } from '@c8y/client';
import { Observable } from 'rxjs';
import { Lwm2mClientService } from './lwm2m-client.service';
import { AlertService } from '@c8y/ngx-components';
import { LWM2MEndpoint, ServerSettings, Entity, UrlConfig, ValidationType, SecurityModeDictionaryObj } from '@c8y/ngx-components/protocol-lwm2m/model';
import * as i0 from "@angular/core";
export declare class Lwm2mConfigurationService<T = Entity> extends Lwm2mClientService<T> implements OnDestroy {
    private alertService;
    deviceId: string;
    protected baseUrl: string;
    private readonly _destroy$;
    private readonly _listServers$;
    private readonly _servers$;
    private readonly _settings$;
    private readonly _certificates$;
    private readonly _securityModeDictRaw$;
    private readonly _securityModeByScope$;
    servers$: Observable<ServerSettings[]>;
    settings$: Observable<T>;
    certificates$: Observable<string[]>;
    securityModesByScope$: Observable<SecurityModeDictionaryObj[]>;
    securityModesRaw$: Observable<SecurityModeDictionaryObj[]>;
    constructor(client: FetchClient, alertService: AlertService);
    ngOnDestroy(): void;
    getSettingsFor(urlCfg: UrlConfig): void;
    listServers(): void;
    updateConfig(entity: T, endpoint: LWM2MEndpoint): void;
    onBeforeUpdate(entity: Entity): T;
    onBeforeCreate(entity: Entity): T;
    getDetailUrl(entity: Entity): string;
    validate(certificate: string, type: ValidationType): Observable<string>;
    getServerCertificates(): void;
    fetchServerCertificates$(): Observable<string[]>;
    getSecurityModes(): void;
    fetchSecurityModes$(): Observable<SecurityModeDictionaryObj[]>;
    getSecurityModeByScope(scope: 'useInBootstrapConnectivity' | 'useInServerConnectivity'): void;
    cleanUpBase64Data(fileReadAsDataURL: string): string;
    listServers$(): Observable<IResultList<ServerSettings>>;
    createServer$(server: ServerSettings): Observable<IResult<ServerSettings>>;
    deleteServer$(server: ServerSettings): Observable<IResult<null>>;
    update$(entity: Entity): Observable<IResult<T>>;
    detail$(urlCfg: UrlConfig): Observable<IResult<T>>;
    fetch$(url: string, init?: IFetchOptions): Observable<import("@c8y/client").IFetchResponse>;
    private deleteFieldsInRequest;
    static ɵfac: i0.ɵɵFactoryDeclaration<Lwm2mConfigurationService<any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<Lwm2mConfigurationService<any>>;
}
//# sourceMappingURL=lwm2m-configuration.service.d.ts.map