import type { API, CharacteristicValue, HAP, Logging, PlatformAccessory, Service } from 'homebridge';
import type { AirPlatform } from '../platform.js';
import type { AirPlatformConfig, devicesConfig } from '../settings.js';
export declare abstract class deviceBase {
    protected readonly platform: AirPlatform;
    protected accessory: PlatformAccessory;
    protected device: devicesConfig;
    readonly api: API;
    readonly log: Logging;
    readonly config: AirPlatformConfig;
    protected readonly hap: HAP;
    protected deviceLogging: string;
    protected deviceRefreshRate: number;
    protected deviceUpdateRate: number;
    protected devicePushRate: number;
    protected deviceFirmwareVersion: string;
    constructor(platform: AirPlatform, accessory: PlatformAccessory, device: devicesConfig);
    getDeviceLogSettings(device: devicesConfig): Promise<void>;
    getDeviceRateSettings(device: devicesConfig): Promise<void>;
    getDeviceConfigSettings(device: devicesConfig): Promise<void>;
    getDeviceContext(accessory: PlatformAccessory, device: devicesConfig): Promise<void>;
    /**
     * Update the characteristic value and log the change.
     *
     * @param Service Service
     * @param Characteristic Characteristic
     * @param CharacteristicValue CharacteristicValue | undefined
     * @param CharacteristicName string
     * @return: void
     *
     */
    updateCharacteristic(Service: Service, Characteristic: any, CharacteristicValue: CharacteristicValue | undefined, CharacteristicName: string): Promise<void>;
    /**
     * Logging for Device
     */
    infoLog(...log: any[]): Promise<void>;
    successLog(...log: any[]): Promise<void>;
    debugSuccessLog(...log: any[]): Promise<void>;
    warnLog(...log: any[]): Promise<void>;
    debugWarnLog(...log: any[]): Promise<void>;
    errorLog(...log: any[]): Promise<void>;
    debugErrorLog(...log: any[]): Promise<void>;
    debugLog(...log: any[]): Promise<void>;
    loggingIsDebug(): Promise<boolean>;
    enablingDeviceLogging(): Promise<boolean>;
}
//# sourceMappingURL=device.d.ts.map