import type { API, HAP, Logging, PlatformAccessory } from 'homebridge';
import type { ResideoPlatform } from '../platform.js';
import type { devicesConfig, location, resideoDevice, ResideoPlatformConfig, sensorAccessory, T9groups } from '../settings.js';
export declare abstract class deviceBase {
    protected readonly platform: ResideoPlatform;
    protected accessory: PlatformAccessory;
    protected location: location;
    protected device: resideoDevice & devicesConfig;
    sensorAccessory?: sensorAccessory | undefined;
    readonly group?: T9groups | undefined;
    readonly api: API;
    readonly log: Logging;
    readonly config: ResideoPlatformConfig;
    protected readonly hap: HAP;
    protected deviceLogging: string;
    protected deviceRefreshRate: number;
    protected deviceUpdateRate: number;
    protected devicePushRate: number;
    protected deviceFirmwareVersion: string;
    protected deviceMaxRetries: number;
    protected deviceDelayBetweenRetries: number;
    constructor(platform: ResideoPlatform, accessory: PlatformAccessory, location: location, device: resideoDevice & devicesConfig, sensorAccessory?: sensorAccessory | undefined, group?: T9groups | undefined);
    getDeviceLogSettings(device: resideoDevice & devicesConfig): Promise<void>;
    getDeviceRateSettings(device: resideoDevice & devicesConfig): Promise<void>;
    getDeviceConfigSettings(device: resideoDevice & devicesConfig): Promise<void>;
    getDeviceContext(accessory: PlatformAccessory, device: resideoDevice & devicesConfig, sensorAccessory?: sensorAccessory): Promise<void>;
    statusCode(statusCode: number, action: string): Promise<void>;
    resideoAPIError(e: any, action: 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>;
    enablingDeviceLogging(): Promise<boolean>;
}
//# sourceMappingURL=device.d.ts.map