import type { API, HAP, Logging, PlatformAccessory } from 'homebridge';
import type { RainBirdService } from 'rainbird';
import type { RainbirdPlatform } from '../platform.js';
import type { devicesConfig, RainbirdPlatformConfig } from '../settings.js';
export declare abstract class DeviceBase {
    protected readonly platform: RainbirdPlatform;
    protected accessory: PlatformAccessory;
    protected device: devicesConfig;
    protected rainbird: RainBirdService;
    readonly api: API;
    readonly log: Logging;
    readonly config: RainbirdPlatformConfig;
    protected readonly hap: HAP;
    protected deviceLogging: string;
    protected deviceRefreshRate: number;
    protected deviceUpdateRate: number;
    protected devicePushRate: number;
    protected deviceFirmwareVersion: string;
    constructor(platform: RainbirdPlatform, accessory: PlatformAccessory, device: devicesConfig, rainbird: RainBirdService);
    getDeviceLogSettings(device: devicesConfig): Promise<void>;
    getDeviceRateSettings(device: devicesConfig): Promise<void>;
    getDeviceConfigSettings(device: devicesConfig): Promise<void>;
    getDeviceContext(accessory: PlatformAccessory, device: devicesConfig): 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=DeviceBase.d.ts.map