import { API, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig, Service, Characteristic } from "homebridge"; import { PlejdHbAccessory } from "./PlejdHbAccessory.js"; import { PlejdHbSceneAccessory } from "./PlejdHbSceneAccessory.js"; import { PlejdHbButtonAccessory } from "./PlejdHbButtonAccessory.js"; import { UserInputConfig } from "./model/userInputConfig.js"; import { Device } from "./model/device.js"; import { Scene } from "./model/scene.js"; import { PlejdService } from "./plejdService.js"; import { Site } from "./model/plejdSite.js"; export declare class PlejdHbPlatform implements DynamicPlatformPlugin { readonly log: Logger; readonly config: PlatformConfig; readonly homebridgeApi: API; readonly Service: typeof Service; readonly Characteristic: typeof Characteristic; userInputConfig?: UserInputConfig; plejdService?: PlejdService; readonly accessories: PlatformAccessory[]; readonly plejdHbAccessories: PlejdHbAccessory[]; readonly plejdHbSceneAccessories: PlejdHbSceneAccessory[]; readonly plejdHbButtonAccessories: PlejdHbButtonAccessory[]; private buttonPressDetector?; private readonly transitionMs; private readonly motionResetMs; private readonly doublePressWindowMs; private readonly longPressThresholdMs; constructor(log: Logger, config: PlatformConfig, homebridgeApi: API); configurePlejd: () => Promise; configureDevices: (log: Logger, config: PlatformConfig, site?: Site) => void; /** * This function is invoked when homebridge restores cached accessories from disk at startup. * It should be used to setup event handlers for characteristics and update respective values. */ configureAccessory: (accessory: PlatformAccessory) => void; discoverDevices: () => void; discoverScenes: () => void; addNewScene: (scene: Scene) => void; addNewDevice: (device: Device) => void; onPlejdUpdates: (identifier: number, isOn: boolean, brightness?: number) => void; discoverButtons: () => void; private discoverButtonsExpanded; private discoverButtonsGrouped; onButtonEvent: (deviceAddress: number, buttonIndex: number, action: "press" | "release") => void; private onPressDetected; private generateId; }