import { EventEmitter } from '@angular/core';
import { IManagedObject, IOperation } from '@c8y/client';
import { BsModalService } from 'ngx-bootstrap/modal';
import { BehaviorSubject, Observable } from 'rxjs';
import { RepositoryService } from '../repository.service';
import { DeviceSoftware, DeviceSoftwareChange, SoftwareFilterCriteria } from './../repository.model';
export declare class InstalledSoftwareComponent {
    private repository;
    private bsModal;
    device: IManagedObject;
    softwareList: DeviceSoftware[];
    deviceSoftwareChanges: DeviceSoftwareChange[];
    deviceSoftwareChangesOperation: IOperation;
    deviceSoftwareChangesInProgress: boolean;
    deviceTypeQuery: object;
    changes: EventEmitter<DeviceSoftwareChange[]>;
    showSoftwareChanges: EventEmitter<void>;
    showFilter: boolean;
    textFilter$: BehaviorSubject<string>;
    softwareTypeFilter$: BehaviorSubject<string>;
    filterCriteria$: Observable<SoftwareFilterCriteria>;
    constructor(repository: RepositoryService, bsModal: BsModalService);
    installSoftware(): void;
    updateSoftware(softwareToRemove: any): void;
    removeSoftware(softwareToRemove: any): void;
    getInstallableSoftwareListWithVersions$(searchTerm$: BehaviorSubject<string>): Observable<IManagedObject[]>;
    getSingleSoftwareWithVersions$(software: DeviceSoftware): Observable<IManagedObject[]>;
    attachVersions(softwareList: IManagedObject[]): IManagedObject[];
    displaySoftwareSelectModal(initialStateOverrides: any): EventEmitter<import("./../repository.model").SelectedRepositoryBinary[]>;
    emitSoftwareInstall(items: DeviceSoftware[]): void;
    emitSoftwareRemoval(items: DeviceSoftware[]): void;
}
