import { OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { IManagedObject, InventoryService } from '@c8y/client';
import { AlertService, ProductExperienceEvent, ProductExperienceEventSource } from '@c8y/ngx-components';
import { FilterCriteria, RepositoryService, RepositoryType } from '@c8y/ngx-components/repository/shared';
import { BsModalService } from 'ngx-bootstrap/modal';
import { BehaviorSubject, Observable } from 'rxjs';
import { DeviceProfile } from './device-profile.model';
import * as i0 from "@angular/core";
export declare class DeviceProfileComponent implements OnInit, ProductExperienceEventSource {
    private route;
    private alertService;
    private inventoryService;
    private bsModal;
    private repositoryService;
    DEVICE_TYPE_POPOVER: "The device profile will be available for assignments on devices of the specified type. Otherwise, it will be available for all device types.";
    DEVICE_TYPE_DISABLED_POPOVER: "Device type cannot be changed on profiles with already defined firmware, software or configuration since they may not be applicable to devices of the new device type.";
    PRODUCT_EXPERIENCE: {
        readonly EVENTS: {
            readonly REPOSITORY: "deviceProfileRepository";
            readonly DEVICE_TAB: "deviceProfileTab";
        };
        readonly COMPONENTS: {
            readonly DEVICE_PROFILE_LIST: "device-profile-list";
            readonly ADD_DEVICE_PROFILE: "add-device-profile";
            readonly DEVICE_PROFILE: "device-profile";
            readonly DEVICE_TAB_PROFILE: "device-tab-profile";
        };
        readonly ACTIONS: {
            readonly CANCEL: "cancel";
            readonly CREATE: "create";
            readonly REMOVE: "remove";
            readonly ADD: "add";
            readonly SAVE: "save";
            readonly ASSIGN_DEVICE_PROFILE: "assignDeviceProfile";
        };
        readonly RESULTS: {
            readonly ADD_SOFTWARE: "addSoftware";
        };
        readonly FRAGMENTS: {
            readonly FIRMWARE: "firmware";
            readonly SOFTWARE: "software";
            readonly CONFGIURATION: "configuration";
        };
    };
    deviceProfile: DeviceProfile;
    profileName: string;
    productExperienceEvent: ProductExperienceEvent;
    private queriesUtil;
    constructor(route: ActivatedRoute, alertService: AlertService, inventoryService: InventoryService, bsModal: BsModalService, repositoryService: RepositoryService);
    ngOnInit(): Promise<void>;
    addFirmware(): void;
    getRepositoryEntriesWithVersions$(searchTerm$: BehaviorSubject<FilterCriteria>, repoType: RepositoryType): Observable<IManagedObject[]>;
    getAndAssignRepositoryBinaries(mos: IManagedObject[]): IManagedObject[];
    addConfiguration(): void;
    addSoftware(): void;
    get isDeviceProfileEmpty(): boolean;
    removeItem(removedItem: any, category: any): void;
    removeFirmware(): void;
    updateDeviceProfile(partialDeviceProfile: any): Promise<void>;
    private getDeviceProfile;
    private getDeviceTypeQuery;
    static ɵfac: i0.ɵɵFactoryDeclaration<DeviceProfileComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DeviceProfileComponent, "c8y-device-profile", never, {}, {}, never, never, false, never>;
}
//# sourceMappingURL=device-profile.component.d.ts.map