UNPKG

homebridge-soundtouch-plugins

Version:
44 lines 2.77 kB
import { API, Characteristic, DynamicPlatformPlugin, Logging, PlatformAccessory, Service, WithUUID } from 'homebridge'; import { Accessory } from 'hap-nodejs'; import { BaseDevice, BasePlatformConfig, HomebridgeContextProps, PlatformSettings } from '../types'; declare class HomebridgeContextProxy implements HomebridgeContextProps { readonly context: HomebridgeContextProps; constructor(context: HomebridgeContextProps); get log(): Logging; get api(): API; get Characteristic(): typeof Characteristic; get Service(): typeof Service; get Accessory(): typeof Accessory; } export declare class HomebridgeAccessoryWrapper<Device> extends HomebridgeContextProxy { readonly accessory: PlatformAccessory; readonly device: Device; constructor(context: HomebridgeContextProps, accessory: PlatformAccessory, device: Device); getDisplayName(): string; getService<T extends WithUUID<typeof Service>>(serviceType: T, displayName: string, subType: string): Service; removeService<T extends WithUUID<typeof Service>>(serviceType: T, subType: string): void; getServices<T extends WithUUID<typeof Service>>(serviceType: T, condition: (service: Service) => boolean): Service[]; } export declare abstract class HomebridgePlatform<Config extends BasePlatformConfig, Device extends BaseDevice, AccessoryWrapper extends HomebridgeAccessoryWrapper<Device>> extends HomebridgeContextProxy implements DynamicPlatformPlugin { protected readonly config: Config; protected readonly settings: PlatformSettings; protected readonly accessories: PlatformAccessory[]; protected accessoryWrappers: AccessoryWrapper[]; protected constructor(logger: Logging, config: Config, api: API); protected initPlatformConfig(config?: Config): Config; protected abstract getDefaultPlatformConfig(): Config | undefined; protected abstract initPlatformSettings(): PlatformSettings; protected abstract getAccessoryWrapperConstructorForDevice(device: Device): HomebridgeAccessoryWrapperConstructor<AccessoryWrapper, Device> | undefined; protected abstract searchDevices(): Promise<Device[]>; protected main(): void; protected shutdown(): void; protected searchAccessories(): Promise<AccessoryWrapper[]>; protected accessoryFromDevice(device: Device): AccessoryWrapper | undefined; configureAccessory(accessory: PlatformAccessory): void; protected clearUnreachableAccessories(): void; } export declare type HomebridgeAccessoryWrapperConstructor<AccessoryWrapper extends HomebridgeAccessoryWrapper<Device>, Device extends BaseDevice> = { new (context: HomebridgeContextProps, accessory: PlatformAccessory, device: Device): AccessoryWrapper; }; export {}; //# sourceMappingURL=class-helper.d.ts.map