homebridge-soundtouch-plugins
Version:
Homebridge SoundTouch plugins
44 lines • 2.77 kB
TypeScript
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