import { OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { IManagedObject, IOperation, InventoryService } from '@c8y/client';
import { ServiceRegistry } from '@c8y/ngx-components';
import { DeviceSoftware, DeviceSoftwareChange, RepositoryService } from '@c8y/ngx-components/repository/shared';
import { BehaviorSubject, Observable } from 'rxjs';
import { DeviceSoftwareService } from './device-software.service';
import * as i0 from "@angular/core";
export declare class SoftwareDeviceTabComponent implements OnInit {
    private route;
    private repository;
    private inventory;
    private deviceSoftwareService;
    private serviceRegistry;
    deviceId: string | number;
    device$: BehaviorSubject<IManagedObject>;
    typesQuery$: Observable<object>;
    list$: Observable<DeviceSoftware[]>;
    changes$: BehaviorSubject<DeviceSoftwareChange[]>;
    changesOperation$: BehaviorSubject<IOperation>;
    changesInProgress$: Observable<boolean>;
    reloading: boolean;
    showSoftwareChanges: boolean;
    constructor(route: ActivatedRoute, repository: RepositoryService, inventory: InventoryService, deviceSoftwareService: DeviceSoftwareService, serviceRegistry: ServiceRegistry);
    ngOnInit(): Promise<void>;
    addChanges(requestedChanges: DeviceSoftwareChange[]): void;
    dropChange(changeToBeDropped: DeviceSoftwareChange): void;
    areSameChanges(change1: DeviceSoftwareChange, change2: DeviceSoftwareChange): boolean;
    clearChanges(): void;
    loadDevice(): Promise<void>;
    applyChanges(): Promise<void>;
    private loadOperation;
    private trackOperation;
    private displayChangesFromOperation;
    private isInProgress;
    static ɵfac: i0.ɵɵFactoryDeclaration<SoftwareDeviceTabComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SoftwareDeviceTabComponent, "c8y-software-device-tab", never, {}, {}, never, never, false, never>;
}
//# sourceMappingURL=software-device-tab.component.d.ts.map