import { ActivatedRoute } from '@angular/router';
import { IManagedObject, InventoryService, IOperation } from '@c8y/client';
import { GainsightService } from '@c8y/ngx-components';
import { DeviceFirmware, FilterCriteria, RepositoryService } from '@c8y/ngx-components/repository/shared';
import { BsModalService } from 'ngx-bootstrap/modal';
import { BehaviorSubject, Observable } from 'rxjs';
import * as i0 from "@angular/core";
export declare class FirmwareDeviceTabComponent {
    private route;
    private repository;
    private inventory;
    private bsModal;
    private gainsightService;
    PRODUCT_EXPERIENCE: {
        readonly SOFTWARE: {
            readonly EVENTS: {
                readonly REPOSITORY: "softwareRepository";
                readonly DEVICE_TAB: "deviceSoftware";
            };
            readonly COMPONENTS: {
                readonly ADD_SOFTWARE_MODAL: "add-software-modal";
                readonly DEVICE_SOFTWARE_CHANGES: "device-software-changes";
                readonly DEVICE_SOFTWARE_LIST: "device-software-list";
            };
            readonly ACTIONS: {
                readonly APPLY_SOFTWARE_CHANGES: "applySoftwareChanges";
                readonly CLEAR_SOFTWARE_CHANGES: "clearSoftwareChanges";
                readonly OPEN_INSTALL_SOFTWARE: "openInstallSoftwareModal";
                readonly OPEN_UPDATE_SOFTWARE: "openUpdateSoftwareModal";
                readonly DELETE_SOFTWARE: "deleteSoftware";
            };
            readonly RESULTS: {
                readonly ADD_SOFTWARE: "addSoftware";
                readonly ADD_SOFTWARE_VERSION: "addSoftwareVersion";
                readonly EDIT_SOFTWARE: "editSoftware";
            };
        };
        readonly FIRMWARE: {
            readonly EVENTS: {
                readonly REPOSITORY: "firmwareRepository";
                readonly DEVICE_TAB: "deviceFirmware";
            };
            readonly COMPONENTS: {
                readonly ADD_FIRMWARE_MODAL: "add-firmware-modal";
                readonly ADD_FIRMWAR_PATCH_MODAL: "add-firmware-patch-modal";
                readonly FIRMWARE_DEVICE_TAB: "firmware-device-tab";
                readonly DEVICE_FIRMWARE_LIST: "device-firmware-list";
            };
            readonly ACTIONS: {
                readonly OPEN_INSTALL_FIRMWARE_DIALOG: "openInstallFirmwareDialog";
                readonly OPEN_REPLACE_FIRMWARE_DIALOG: "openReplaceFirmwareDialog";
                readonly OPEN_INSTALL_FIRMWARE_PATCH_DIALOG: "openInstallFirmwarePatchDialog";
            };
            readonly RESULTS: {
                readonly ADD_FIRMWARE: "addFirmware";
                readonly ADD_FIRMWARE_VERSION: "addFirmwareVersion";
                readonly ADD_FIRMWARE_PATCH: "addFirmwarePatch";
                readonly EDIT_FIRMWARE: "editFirmware";
                readonly CREATE_FIRMWARE_UPDATE_OPERATION: "createFirmwareUpdateOperation";
            };
        };
        readonly SHARED: {
            readonly COMPONENTS: {
                readonly REPOSITORY_SELECT_MODAL: "repository-select-modal";
                readonly SELECT_CONFIGURATION_MODAL: "select-configuration-modal";
            };
        };
    };
    isEmpty: any;
    reloading: boolean;
    device$: BehaviorSubject<IManagedObject>;
    deviceFirmwareFragment$: Observable<DeviceFirmware>;
    firmwareBinary$: Observable<IManagedObject>;
    repositoryEntry$: Observable<IManagedObject>;
    patches$: Observable<IManagedObject[]>;
    supportsFirmwareOperations$: Observable<boolean>;
    changesOperation$: BehaviorSubject<IOperation>;
    changesInProgress$: Observable<boolean>;
    constructor(route: ActivatedRoute, repository: RepositoryService, inventory: InventoryService, bsModal: BsModalService, gainsightService: GainsightService);
    ngOnInit(): Promise<void>;
    installFirmware(): void;
    getRepositoryEntriesWithVersions$(searchTerm$: BehaviorSubject<FilterCriteria>): Observable<IManagedObject[]>;
    getAndAssignRepositoryBinaries(mos: IManagedObject[]): IManagedObject[];
    addPatch(): void;
    getRepositoryEntryWithPatches$(): Observable<{
        versions: IManagedObject[];
        creationTime: string;
        id: string;
        lastUpdated: string;
        owner: string;
        self: string;
        additionParents: import("@c8y/client").IManagedObjectReferences;
        assetParents: import("@c8y/client").IManagedObjectReferences;
        childAdditions: import("@c8y/client").IManagedObjectReferences;
        childAssets: import("@c8y/client").IManagedObjectReferences;
        childDevices: import("@c8y/client").IManagedObjectReferences;
        deviceParents: import("@c8y/client").IManagedObjectReferences;
    }[]>;
    loadDevice(): Promise<void>;
    private handleOperation;
    private loadOperation;
    private trackOperation;
    private isInProgress;
    static ɵfac: i0.ɵɵFactoryDeclaration<FirmwareDeviceTabComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FirmwareDeviceTabComponent, "c8y-firmware-device-tab", never, {}, {}, never, never, false, never>;
}
//# sourceMappingURL=firmware-device-tab.component.d.ts.map