lavva.exalushome
Version:
Library implementing communication and abstraction layers for ExalusHome system
51 lines (50 loc) • 1.94 kB
TypeScript
import { IDIService } from "../../IDIService";
import { HardwareInfo, SoftwareRuntimeInfo } from "./UpdatesProvider";
import { IUpdateProviderService } from "./UpdateProviderServices/IUpdateProviderService";
export interface IUpdatesProvider extends IDIService {
RegisterUpdatesProvider(service: IUpdateProviderService): void;
GetUpdatesProviderAsync<T extends IUpdateProviderService>(serviceName: string): Promise<T>;
GetUpdatesProvidersAsync<T extends IUpdateProviderService>(updateProviderType: ProviderType): Promise<T[]>;
GetUpdatesProvidersByProtocolAsync<T extends IUpdateProviderService>(protocolGuid: string, updateProviderType: ProviderType, apiVersion?: string): Promise<T[]>;
GetUpdatesProvidersByExtensionAsync<T extends IUpdateProviderService>(extensionGuid: string, updateProviderType: ProviderType, apiVersion?: string): Promise<T[]>;
GetSoftwareRuntimeInfoAsync(reloadCachedData?: boolean): Promise<SoftwareRuntimeInfo>;
GetHardwareInfoAsync(reloadCachedData?: boolean): Promise<HardwareInfo>;
}
export declare enum ProviderType {
Device = 0,
Controller = 1
}
export declare class Update {
UpdateGuid: string;
Channel: string;
Version: string;
CurrentVersion: string;
DownloadUri: string;
Download: string;
Name: string;
Description: string;
UpdateType: UpdateTypes;
ResourceGuid: string;
}
export declare class UpdateInfo {
UpdateDescription: Map<string, string>;
Update: Update;
UpdatedResourceName: string;
CurrentResourceVersion: string;
}
export declare enum UpdateTypes {
Unknown = 0,
Container = 1,
RadioFirmware = 2,
DeviceFirmware = 3,
Configuration = 4,
ContainerScript = 5,
ContainerSoftware = 6,
RuntimeSoftware = 7,
RuntimeScript = 8,
RuntimeFixingScript = 9
}
export declare class UpdatesProviderNotFound extends Error {
message: string;
constructor(message: string);
}