homebridge-homeconnect
Version:
A Homebridge plugin that connects Home Connect appliances to Apple HomeKit
60 lines • 2.19 kB
TypeScript
import { Logger, PlatformConfig } from 'homebridge';
import NodePersist from 'node-persist';
import { HomeAppliance } from '../api-types.js';
export interface SchemaProgram {
key: string;
name: string;
}
export type SchemaProgramOptionType = 'number' | 'integer' | 'boolean' | 'string';
export type SchemaProgramOptionValue = number | boolean | string;
export interface SchemaEnumValue {
key: SchemaProgramOptionValue;
name: string;
}
export interface SchemaProgramOption {
key: string;
name: string;
type: SchemaProgramOptionType;
suffix?: string;
default?: SchemaProgramOptionValue;
minimum?: number;
maximum?: number;
multipleOf?: number;
values?: SchemaEnumValue[];
}
export interface SchemaProgramWithOptions extends SchemaProgram {
options?: SchemaProgramOption[];
}
export interface SchemaOptionalFeature {
group: string;
name: string;
service: string;
enableByDefault: boolean;
}
export interface SchemaAppliance extends HomeAppliance {
hasControl?: boolean;
programs: SchemaProgramWithOptions[];
features: SchemaOptionalFeature[];
}
export declare class ConfigSchemaData {
readonly log: Logger;
readonly persist: NodePersist.LocalStorage;
config?: PlatformConfig;
appliances: Map<string, SchemaAppliance>;
loadPromise?: Promise<void>;
savePromise?: Promise<void>;
busyPromise?: Promise<void>;
constructor(log: Logger, persist: NodePersist.LocalStorage);
setConfig(config: PlatformConfig): Promise<void>;
setAppliances(newAppliances: HomeAppliance[]): Promise<void>;
setHasControl(haId: string, control: boolean): Promise<void>;
setOptionalFeatures(haId: string, features: SchemaOptionalFeature[]): Promise<void>;
setPrograms(haId: string, newPrograms: SchemaProgram[]): Promise<void>;
setProgramOptions(haId: string, programKey: string, options: SchemaProgramOption[]): Promise<void>;
applyUpdate(update: () => void): Promise<void>;
load(reload?: boolean): Promise<void>;
exclusive(operation: () => Promise<void>): Promise<void>;
tryGet(): Promise<void>;
trySet(): Promise<void>;
}
//# sourceMappingURL=schema-data.d.ts.map