import { IDeviceUpdateProvider } from 'lavva.exalushome/build/js/Services/Updates/IDeviceUpdateProvider';
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 { UpdateInfo } from 'lavva.exalushome/build/js/Services/Updates/IUpdateProvider';
import { UpdateErrorCode, UpdateProgress, UpdateAction } from 'lavva.exalushome/build/js/Services/Updates/IUpdatesService';
export declare class UpdateProvider implements IDeviceUpdateProvider {
    static readonly ProviderName = "ExtaLifeUpdateProvider";
    private _apiVersion;
    private _extenstionVersion;
    private _protocolExtGuid;
    constructor(extInfo: ExtensionInfo);
    get ProtocolExtensionGuid(): string;
    get ProtocolGuid(): string;
    get AvailableExtensionVersion(): string;
    get AvailableApiVersion(): string;
    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>>;
}
