UNPKG

homebridge-homeconnect

Version:

A Homebridge plugin that connects Home Connect appliances to Apple HomeKit

55 lines 1.93 kB
import { LogLevel, Logger, PlatformConfig } from 'homebridge'; import { HomebridgePluginUiServer } from '@homebridge/plugin-ui-utils'; import { FormSchema } from './schema.js'; import { ConfigPlugin } from '../config-types.js'; import { ClientIDStatus } from './server-clientid.js'; export interface ServerRequests { '/log': { request: LogLevel; response: string; }; '/clientid': { request: ConfigPlugin; response: ClientIDStatus; }; '/clientid/retry': { request: null; response: ClientIDStatus; }; '/config': { request: null; response: PlatformConfig; }; '/schema/global': { request: null; response: FormSchema; }; '/schema/appliance': { request: string; response: FormSchema; }; } export type ServerPath = keyof ServerRequests; export type ServerRequest<Path extends ServerPath> = ServerRequests[Path]['request']; export type ServerResponse<Path extends ServerPath> = ServerRequests[Path]['response']; export type ServerResponseAsync<Path extends ServerPath> = Promise<ServerResponse<Path>> | ServerResponse<Path>; export interface ServerEvents { ready: undefined; log: ServerLogMessage[]; status: ClientIDStatus; } export type ServerEvent = keyof ServerEvents; export type ServerEventData<Event extends ServerEvent> = ServerEvents[Event]; export interface ServerLogMessage { level: LogLevel; message: string; params: unknown[]; } export declare class ServerIPC { readonly log: Logger; readonly server: HomebridgePluginUiServer; constructor(log: Logger, server: HomebridgePluginUiServer); onRequest<Path extends ServerPath>(path: Path, fn: (data: ServerRequest<Path>) => ServerResponseAsync<Path>): void; pushEvent<Event extends keyof ServerEvents>(event: Event, data: ServerEventData<Event>): void; } //# sourceMappingURL=server-ipc.d.ts.map