import type { CharacteristicValue, PlatformAccessory } from 'homebridge';
import { VirtualAccessoriesPlatform } from '../platform.js';
import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
import { Accessory } from './accessory.js';
import { UpdatableSensor } from '../sensors/updatableSensor.js';
/**
 * HeaterCooler - Accessory implementation
 */
export declare class HeaterCooler extends Accessory implements UpdatableSensor {
    static readonly ACCESSORY_TYPE_NAME: string;
    static readonly CURRENTLY_INACTIVE: number;
    static readonly CURRENTLY_IDLE: number;
    static readonly CURRENTLY_HEATING: number;
    static readonly CURRENTLY_COOLING: number;
    static readonly AUTO: number;
    static readonly HEAT: number;
    static readonly COOL: number;
    static readonly INACTIVE: number;
    static readonly ACTIVE: number;
    static readonly CELSIUS: number;
    static readonly FAHRENHEIT: number;
    private readonly stateStorageKey;
    private readonly targetStateStorageKey;
    private readonly heatingThresholdStorageKey;
    private readonly coolingThresholdStorageKey;
    private readonly temperatureDisplayUnitsStorageKey;
    private deviceType;
    private states;
    constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
    setActive(value: CharacteristicValue): Promise<void>;
    getActive(): Promise<CharacteristicValue>;
    getCurrentHeaterCoolerState(): Promise<CharacteristicValue>;
    setTargetHeaterCoolerState(value: CharacteristicValue): Promise<void>;
    getTargetHeaterCoolerState(): Promise<CharacteristicValue>;
    getCurrentTemperature(): Promise<CharacteristicValue>;
    setCoolingThresholdTemperature(value: CharacteristicValue): Promise<void>;
    getCoolingThresholdTemperature(): Promise<CharacteristicValue>;
    setHeatingThresholdTemperature(value: CharacteristicValue): Promise<void>;
    getHeatingThresholdTemperature(): Promise<CharacteristicValue>;
    setTemperatureDisplayUnits(value: CharacteristicValue): Promise<void>;
    getTemperatureDisplayUnits(): Promise<CharacteristicValue>;
    protected getJsonState(): string;
    protected getAccessoryTypeName(): string;
    private isHeater;
    private isCooler;
    private heats;
    private cools;
    private setDeviceOperationalCondition;
    static getActiveName(status: number): string;
    static getCurrentStateName(state: number): string;
    static getTargetStateName(state: number): string;
    static getTemperatureDisplayUnitsName(state: number): string;
    /**
     * Ensure all the property values are set, then remove as required
     */
    private setHeaterCoolerServiceProperties;
    private getCurrentStateLabels;
    private getTargetStateLabels;
    private toCelsius;
    private displayTemperature;
    private getDegreeUnits;
    updateSensor(value: number, accessoryId: string): void;
}
