homebridge-unifi-protect
Version:
Homebridge UniFi Protect plugin providing complete HomeKit integration for the entire UniFi Protect ecosystem with full support for most features including HomeKit Secure Video, multiple controllers, blazing fast performance, and much more.
34 lines • 1.67 kB
TypeScript
import type { API, HAP } from "homebridge";
import type { ProtectDeviceConfig, ProtectNvrConfig, ProtectState } from "unifi-protect";
import type { HomebridgePluginLogging } from "homebridge-plugin-utils";
import type { ProtectAccessory } from "../types.ts";
import type { ProtectNvr } from "../nvr/nvr.ts";
import type { ProtectPlatform } from "../platform.ts";
interface ObservedSlice<T> {
readonly key: string;
readonly selector: (state: ProtectState) => T;
readonly title: string;
}
export declare abstract class ProtectBase {
readonly api: API;
protected readonly hap: HAP;
readonly log: HomebridgePluginLogging;
readonly nvr: ProtectNvr;
readonly platform: ProtectPlatform;
constructor(nvr: ProtectNvr);
protected setInfo(accessory: ProtectAccessory, device: ProtectDeviceConfig | ProtectNvrConfig): boolean;
get name(): string;
protected get logName(): string;
protected get observeSignal(): AbortSignal;
protected onObserverWake(_key: string): void;
protected get recordPresent(): boolean;
protected observeState<T>(slice: ObservedSlice<T>, handler: (value: T) => void): void;
protected get mqttId(): string;
protected publish(topic: string, message: string): void;
protected subscribeGet(topic: string, type: string, getValue: () => string): void;
protected subscribeSet(topic: string, type: string, setValue: (value: string, rawValue: string) => Promise<void> | void): void;
protected unsubscribe(topic: string): void;
protected runDeviceCommand(action: string, command: () => Promise<unknown>): Promise<boolean>;
}
export {};
//# sourceMappingURL=device-base.d.ts.map