import type { API, CharacteristicValue, HAP, Logging, PlatformAccessory, Service } from 'homebridge'; import type { AugustPlatform } from '../Platform.HAP.js'; import type { AugustPlatformConfig, device, devicesConfig } from '../settings.js'; export declare abstract class deviceBase { protected readonly platform: AugustPlatform; protected accessory: PlatformAccessory; protected device: device & devicesConfig; readonly api: API; readonly log: Logging; readonly config: AugustPlatformConfig; protected readonly hap: HAP; protected deviceLogging: string; protected deviceRefreshRate: number; protected deviceUpdateRate: number; protected devicePushRate: number; protected deviceFirmwareVersion: string; constructor(platform: AugustPlatform, accessory: PlatformAccessory, device: device & devicesConfig); getDeviceLogSettings(device: devicesConfig): Promise; getDeviceRateSettings(device: devicesConfig): Promise; getDeviceConfigSettings(device: devicesConfig): Promise; getDeviceContext(accessory: PlatformAccessory, device: devicesConfig): Promise; /** * Updates the value of a HomeKit characteristic and logs the change. * * This function updates the specified characteristic of a given service with a new value. * It also logs the updated value and the context before and after the update for debugging purposes. * * @param Service - The HomeKit service that contains the characteristic to be updated. * @param ServiceName - The name of the service being updated. * @param Characteristic - The specific characteristic to be updated. * @param CharacteristicValue - The new value to set for the characteristic. If undefined, the function logs the value and returns without updating. * @param CharacteristicName - The name of the characteristic being updated, used for logging purposes. * @param Value - The value to compare against to determine the status. * @param StatusMatch - The status message to log if the characteristic value matches the provided value. * @param StatusDoesNotMatch - The status message to log if the chxaracteristic value does not match the provided value. * @return void */ updateCharacteristic(Service: Service, ServiceName: string, Characteristic: any, CharacteristicValue: CharacteristicValue, CharacteristicName: string, Value?: CharacteristicValue, StatusMatch?: string, StatusDoesNotMatch?: string): Promise; statusCode(action: string, error: { message: string; }): Promise; /** * Logging for Device */ infoLog(...log: any[]): Promise; successLog(...log: any[]): Promise; debugSuccessLog(...log: any[]): Promise; warnLog(...log: any[]): Promise; debugWarnLog(...log: any[]): Promise; errorLog(...log: any[]): Promise; debugErrorLog(...log: any[]): Promise; debugLog(...log: any[]): Promise; /** * ⚠️ True in a normal install, because 'debugMode' means "let Homebridge * decide" rather than "debug is on". Only ever gate 'log.debug' on this. * * Gating 'log.warn', 'log.error' or 'log.success' on it prints those lines to * everyone, since Homebridge shows those levels whatever its debug setting - * which is exactly what happened to three of the helpers above (#243). */ loggingIsDebug(): Promise; enablingDeviceLogging(): Promise; } //# sourceMappingURL=device.d.ts.map