homebridge-homeconnect
Version:
A Homebridge plugin that connects Home Connect appliances to Apple HomeKit
58 lines • 2.27 kB
TypeScript
import { Logger } from 'homebridge';
import { IHomebridgeUiFormHelper, PluginConfig, PluginFormSchema } from '@homebridge/plugin-ui-utils/ui.interface';
import { ClientIPC } from './client-ipc.js';
import { Config } from './config.js';
import { cloneTemplate } from './utils-dom.js';
export declare abstract class Form {
readonly log: Logger;
form?: IHomebridgeUiFormHelper;
constructor(log: Logger);
abstract getSchema(): Promise<PluginFormSchema>;
abstract getData(): Promise<PluginConfig>;
abstract putData(data: PluginConfig): Promise<void>;
createForm(): Promise<void>;
destroyForm(): void;
patchSchema(schema: PluginFormSchema): PluginFormSchema;
formFromTemplate(...args: Parameters<typeof cloneTemplate>): Record<string, string>[];
formFromHTML(element: Node): Record<string, string>[];
}
export declare class GlobalForm extends Form {
readonly ipc: ClientIPC;
readonly config: Config;
constructor(log: Logger, ipc: ClientIPC, config: Config);
getSchema(): Promise<PluginFormSchema>;
getData(): Promise<PluginConfig>;
putData(data: PluginConfig): Promise<void>;
}
export declare class ApplianceForm extends Form {
readonly ipc: ClientIPC;
readonly config: Config;
readonly haid: string;
constructor(log: Logger, ipc: ClientIPC, config: Config, haid: string);
getSchema(): Promise<PluginFormSchema>;
getData(): Promise<PluginConfig>;
putData(data: PluginConfig): Promise<void>;
}
export declare class TemplateForm extends Form {
readonly elementAsForm: Record<string, string>[];
constructor(log: Logger, ...args: Parameters<typeof cloneTemplate>);
getSchema(): Promise<PluginFormSchema>;
getData(): Promise<PluginConfig>;
putData(): Promise<void>;
}
export declare enum FormId {
Global = "global",
Placeholder = "placeholder",
Unavailable = "unavailable"
}
export declare class Forms {
readonly log: Logger;
readonly ipc: ClientIPC;
readonly config: Config;
currentForm?: Form;
constructor(log: Logger, ipc: ClientIPC, config: Config);
showForm(formId?: string): Promise<void>;
constructAndShowForm(formId: string): Promise<void>;
constructForm(formId: string): Form;
}
//# sourceMappingURL=forms.d.ts.map