UNPKG

homebridge-homeconnect

Version:

A Homebridge plugin that connects Home Connect appliances to Apple HomeKit

58 lines 2.27 kB
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