import { IDeviceUpdateProviderService } from 'lavva.exalushome/build/js/Services/Updates/UpdateProviderServices/IDeviceUpdateProviderService';
import { ExtensionInfo } from 'lavva.exalushome/build/js/Services/Controller/ControllerExtensionsService';
import { Status } from 'lavva.exalushome/build/js/DataFrame';
import { IDevice } from 'lavva.exalushome/build/js/Services/Devices/IDevice';
import { ResponseResult } from 'lavva.exalushome/build/js/Services/FieldChangeResult';
import { ICustomUpdateActions } from 'lavva.exalushome/build/js/Services/Updates/CustomUpdateActions/ICustomUpdateActions';
import { ProviderType, UpdateInfo } from 'lavva.exalushome/build/js/Services/Updates/IUpdatesProvider';
import { UpdateErrorCode, UpdateProgress, UpdateAction, BulkUpdateResult } from 'lavva.exalushome/build/js/Services/Updates/IUpdatesService';
import { SoftwareRuntimeInfo } from 'lavva.exalushome/build/js/Services/Updates/UpdatesProvider';
export declare class PortosDevicesUpdatesProvider implements IDeviceUpdateProviderService {
    static readonly ProviderName = "PortosDeviceUpdateProvider";
    private _apiVersion;
    private _extenstionVersion;
    private _protocolExtGuid;
    private _runtimeInfo;
    constructor(extInfo: ExtensionInfo, runtimeInfo: SoftwareRuntimeInfo);
    get ExtensionGuid(): string;
    get ProtocolGuid(): string;
    get AvailableExtensionVersion(): string;
    get AvailableApiVersion(): string;
    get ProviderType(): ProviderType;
    GetUpdateProviderName(): string;
    GetAvailableUpdateAsync(device: IDevice): Promise<UpdateInfo | ResponseResult<UpdateErrorCode>>;
    InstallUpdateAsync<T extends ICustomUpdateActions>(update: UpdateInfo, updateProgress: UpdateProgress, updateAction?: UpdateAction<T> | undefined): Promise<ResponseResult<UpdateErrorCode> | Status.OK>;
    GetSoftwareVersionAsync(device: IDevice): Promise<string | ResponseResult<UpdateErrorCode>>;
    CheckUpdateBulkAsync(reloadCache?: boolean): Promise<UpdateInfo[] | ResponseResult<UpdateErrorCode>>;
    InstalUpdateBulkAsync<T extends ICustomUpdateActions>(deviceGuids: string[], updateProgress: UpdateProgress, updateAction?: UpdateAction<T>): Promise<BulkUpdateResult | ResponseResult<UpdateErrorCode>>;
}
