import type { API, Characteristic, DynamicPlatformPlugin, Logging, PlatformAccessory, PlatformConfig, Service, WithUUID } from "homebridge"; import { Categories } from "homebridge"; import { createCharacteristics } from "./characteristics/createCharacteristics.js"; import type { TplinkSmarthomeConfig } from "./config.js"; export type TplinkSmarthomeAccessoryContext = { deviceId?: string; }; export declare class TplinkSmarthomePlatform implements DynamicPlatformPlugin { readonly log: Logging; readonly api: API; readonly Service: typeof Service; readonly Characteristic: typeof Characteristic; customCharacteristics: ReturnType; config: TplinkSmarthomeConfig; private readonly configuredAccessories; private readonly homekitDevicesById; private readonly categories; private readonly legacyClient; private readonly klapDiscovery; private shuttingDown; private emeterTimer; constructor(log: Logging, config: PlatformConfig, api: API); private setupLegacyDiscovery; private setupKlapDiscovery; private setupLifecycleHandlers; private refreshEmeter; private refreshEmeterForAccessories; /** * Return string representation of Service/Characteristic for logging * * @internal */ lsc(serviceOrCharacteristic: Service | Characteristic | { UUID: string; }, characteristic?: Characteristic | { UUID: string; }): string; private get deviceAccessoriesByHost(); private createHomekitDevice; getCategoryName(category: Categories): string | undefined; getServiceName(service: { UUID: string; }): string | undefined; getCharacteristicName(characteristic: WithUUID<{ name?: string; displayName?: string; }>): string | undefined; /** * Registers a Homebridge PlatformAccessory. * * Calls {@link external:homebridge.API#registerPlatformAccessories} */ registerPlatformAccessory(platformAccessory: PlatformAccessory): void; /** * Function invoked when homebridge tries to restore cached accessory */ configureAccessory(accessory: PlatformAccessory): void; /** * Adds a new or existing real device. */ private foundDevice; } //# sourceMappingURL=TplinkSmarthomePlatform.d.ts.map