UNPKG

homebridge-homeconnect

Version:

A Homebridge plugin that connects Home Connect appliances to Apple HomeKit

53 lines 3.63 kB
import { Logger } from 'homebridge'; import { LocalStorage } from 'node-persist'; import { ConfigPlugin } from '../config-types.js'; import { HomeAppliance } from '../api-types.js'; import { CommandKey, CommandKV, EventKV, OptionKey, OptionKV, ProgramDefinitionKV, ProgramKV, ProgramsKV, SettingKey, SettingKV, SettingValue, StatusKey, StatusKV, OptionValue } from '../api-value.js'; import { ProgramKey } from '../api-value-types.js'; import { HomeConnectAPI } from '../api.js'; import { MockAppliance } from './mock-appliance.js'; import { AuthorisationStatus } from '../api-ua-auth.js'; type MethodKey<Key extends keyof MockAppliance = keyof MockAppliance> = Key extends Key ? (MockAppliance[Key] extends (...args: any[]) => unknown ? Key : never) : never; type MethodParams<Key extends MethodKey = MethodKey> = Parameters<MockAppliance[Key]>; type MethodReturn<Key extends MethodKey = MethodKey> = ReturnType<MockAppliance[Key]>; export declare class MockAPI implements HomeConnectAPI { readonly log: Logger; readonly config: ConfigPlugin; readonly persist: LocalStorage; appliances: Map<string, MockAppliance>; constructor(log: Logger, config: ConfigPlugin, persist: LocalStorage); addMock(constructor: new (...args: ConstructorParameters<typeof MockAppliance>) => MockAppliance): void; delay(): Promise<void>; request<Method extends MethodKey>(method: Method, haid: string, ...args: MethodParams<Method>): Promise<MethodReturn<Method>>; hasScope(_scope: string): boolean; getAuthorisationStatus(): Promise<AuthorisationStatus>; retryAuthorisation(): void; getAppliances(): Promise<HomeAppliance[]>; getAppliance(...args: [string]): Promise<HomeAppliance>; getPrograms(...args: [string]): Promise<ProgramsKV>; getAvailablePrograms(...args: [string]): Promise<ProgramsKV>; getAvailableProgram<Key extends ProgramKey>(...args: [string, Key]): Promise<ProgramDefinitionKV<Key>>; getActiveProgram(...args: [string]): Promise<ProgramKV>; setActiveProgram(...args: [string, ProgramKey, OptionKV[]]): Promise<void>; stopActiveProgram(...args: [string]): Promise<void>; getActiveProgramOptions(...args: [string]): Promise<OptionKV[]>; setActiveProgramOptions(...args: [string, OptionKV[]]): Promise<void>; getActiveProgramOption<Key extends OptionKey>(...args: [string, Key]): Promise<OptionKV<Key>>; setActiveProgramOption<Key extends OptionKey>(...args: [string, Key, OptionValue<Key>]): Promise<void>; getSelectedProgram(...args: [string]): Promise<ProgramKV>; setSelectedProgram(...args: [string, ProgramKey, OptionKV[]]): Promise<void>; getSelectedProgramOptions(...args: [string]): Promise<OptionKV[]>; setSelectedProgramOptions(...args: [string, OptionKV[]]): Promise<void>; getSelectedProgramOption<Key extends OptionKey>(...args: [string, Key]): Promise<OptionKV<Key>>; setSelectedProgramOption<Key extends OptionKey>(...args: [string, Key, OptionValue<Key>]): Promise<void>; getStatus(...args: [string]): Promise<StatusKV[]>; getStatusSpecific<Key extends StatusKey>(...args: [string, Key]): Promise<StatusKV<Key>>; getSettings(...args: [string]): Promise<SettingKV[]>; getSetting<Key extends SettingKey>(...args: [string, Key]): Promise<SettingKV<Key>>; setSetting<Key extends SettingKey>(...args: [string, Key, SettingValue<Key>]): Promise<void>; getCommands(...args: [string]): Promise<CommandKV[]>; setCommand(...args: [string, CommandKey]): Promise<void>; getEvents(haid?: string): AsyncGenerator<EventKV, void, void>; } export {}; //# sourceMappingURL=index.d.ts.map