homebridge-homeconnect
Version:
A Homebridge plugin that connects Home Connect appliances to Apple HomeKit
53 lines • 3.63 kB
TypeScript
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