import { CharacteristicValue, EndpointType, MatterAccessory, MatterAPI, Service } from 'homebridge'; import { SensorAccessory } from './sensor/sensor.js'; import { ConditionManager } from '../model/conditions.js'; import { AccessoryState, Protocol, TimeUnits } from '../model/enums.js'; import { CharacteristicKey, HomeKitType } from '../model/homekit.js'; import { History, HistoryEntry, HistoryType } from '../model/history.js'; import { MatterClusterKey, MatterType, MatterValue, MatterValueKey } from '../model/matter.js'; import { CharacteristicType, DummyConfig, HomeKitAccessory, ServiceType } from '../model/types.js'; import { Webhook } from '../model/webhook.js'; import { Log } from '../tools/log.js'; type HomeKit = { Service: ServiceType; Characteristic: CharacteristicType; accessory: HomeKitAccessory; }; export type GetHomeKit = () => HomeKit | undefined; export type GetMatter = () => MatterAPI | undefined; export type DummyAccessoryDependency = { protocol: Protocol; getHomeKit: GetHomeKit; getMatter: GetMatter; config: C; conditionManager: ConditionManager; log: Log; history?: History; isGrouped: boolean; }; export type DummyAddonDependency = { identifier: string; caller: string; log: Log; historyEnabled: boolean; disableLogging: boolean; }; export type OnRecordHistory = (type: HistoryType, entry: HistoryEntry, updateLastActivation: boolean) => void; export declare abstract class DummyAccessory implements MatterAccessory { private readonly dependency; private _UUID?; readonly manufacturer = "HomebridgeDummy"; readonly model: string; readonly serialNumber: string; readonly softwareVersion: string; protected sensor?: SensorAccessory; static identifier(config: DummyConfig): string; private readonly _service?; private readonly _schedule?; private readonly _autoReset?; private readonly _notification?; private readonly _limiter?; private readonly _syncSchedule?; private readonly execAsync; constructor(dependency: DummyAccessoryDependency); protected abstract getHomeKitType(): HomeKitType; get service(): Service; protected getMatterType(): MatterType | undefined; get UUID(): string; get deviceType(): EndpointType; get clusters(): MatterAccessory['clusters'] | undefined; get handlers(): MatterAccessory['handlers'] | undefined; get parts(): MatterAccessory['parts'] | undefined; get context(): Record; toMatterAccessory(): MatterAccessory; protected abstract trigger(): Promise; protected abstract reset(): Promise; get subtype(): string | undefined; teardown(): void; protected ifHomeKit(perform: () => (void)): void; protected bifurcate(homekit?: () => (void), matter?: () => (void)): void | undefined; protected get homekit(): HomeKit; private get matter(); protected updateMatter(clusterKey: MatterClusterKey, valueKey: MatterValueKey, value: MatterValue): void; abstract get webhooks(): Webhook[]; protected get config(): C; protected get addonDependency(): DummyAddonDependency; get historyEnabled(): boolean; get identifier(): string; get displayName(): string; get homekitAccessory(): HomeKitAccessory; protected get log(): Log; protected get Characteristic(): CharacteristicType; protected get isStateful(): boolean; getProperty(key: CharacteristicKey): CharacteristicValue | undefined; setProperty(key: CharacteristicKey, value: CharacteristicValue): void; protected setAutoResetTimeout(rawTime: number, units: TimeUnits): void; protected onTriggered(stateChanged?: boolean): void; protected onTimerStarted(_delay: number): void; protected onReset(stateChanged?: boolean): void; protected executeCommand(command: string): Promise; private onSync; private isExecException; protected onStateChange(state: AccessoryState): Promise; protected recordHistory(type: HistoryType, entry: HistoryEntry, updateLastActivation?: boolean): void; logIfDesired(message: string, ...parameters: (string | number)[]): void; } export {};