import { CharacteristicValue, PlatformAccessory, Service } from 'homebridge'; import { SensorAccessory } from './sensor/sensor.js'; import { ConditionManager } from '../model/conditions.js'; import { AccessoryState, AccessoryType, CharacteristicKey, TimeUnits } from '../model/enums.js'; import { History, HistoryEntry, HistoryType } from '../model/history.js'; import { CharacteristicType, DummyConfig, ServiceType } from '../model/types.js'; import { Webhook } from '../model/webhook.js'; import { Log } from '../tools/log.js'; export type DummyAccessoryDependency = { Service: ServiceType; Characteristic: CharacteristicType; platformAccessory: PlatformAccessory; config: C; conditionManager: ConditionManager; log: Log; history: History; isGrouped: boolean; }; export type DummyAddonDependency = { Service: ServiceType; Characteristic: CharacteristicType; platformAccessory: PlatformAccessory; 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 { private readonly dependency; protected sensor?: SensorAccessory; static identifier(config: DummyConfig): string; readonly service: Service; private readonly _schedule?; private readonly _autoReset?; private readonly _notification?; private readonly _limiter?; private readonly _syncSchedule?; private readonly execAsync; constructor(dependency: DummyAccessoryDependency); protected abstract getAccessoryType(): AccessoryType; protected abstract trigger(): Promise; protected abstract reset(): Promise; get subtype(): string | undefined; teardown(): void; abstract get webhooks(): Webhook[]; protected get config(): C; protected get addonDependency(): DummyAddonDependency; get historyEnabled(): boolean; get identifier(): string; get name(): string; get platformAccessory(): PlatformAccessory; 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(): 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; }