import { IResultList } from '@c8y/client';
import { ServiceRegistry } from '@c8y/ngx-components';
import { DeviceSoftware, FilterCriteria } from '@c8y/ngx-components/repository/shared';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
export declare class DeviceSoftwareService {
    private serviceRegistry;
    /**
     * Indicates whether device software data is currently being loaded.
     */
    get loading$(): Observable<boolean>;
    private reloadSubject$;
    private loadingSubject$;
    constructor(serviceRegistry: ServiceRegistry);
    /**
     * Trigger device software data reload.
     */
    reload(): void;
    /**
     * Retrieves the software list that is installed on a given device.
     *
     * @param deviceId ID of the device to retrieve software data for
     * @param filterCriteria Criteria that software items are filtered by.
     * @param legacySoftwareList If provided no data will be fetched from backend. The provided software list
     * will be filtered by the specified filter criteria.
     *
     * @returns The software items installed on the specified device filtered by the specified criteria.
     */
    getSoftwareList(deviceId: any, filterCriteria: FilterCriteria, legacySoftwareList?: DeviceSoftware[]): Observable<IResultList<DeviceSoftware>>;
    private getAdvancedSoftwareList;
    private getLegacySoftwareList;
    static ɵfac: i0.ɵɵFactoryDeclaration<DeviceSoftwareService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DeviceSoftwareService>;
}
//# sourceMappingURL=device-software.service.d.ts.map