import type { CharacteristicValue, PlatformAccessory } from 'homebridge';
import { VirtualAccessoriesPlatform } from '../platform.js';
import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
import { Accessory } from './accessory.js';
import { UpdatableMeasurementSensor } from '../sensors/updatableSensor.js';
/**
 * HumidifierDehumidifier - Accessory implementation
 */
export declare class HumidifierDehumidifier extends Accessory implements UpdatableMeasurementSensor {
    static readonly ACCESSORY_TYPE_NAME: string;
    static readonly CURRENTLY_INACTIVE: number;
    static readonly CURRENTLY_IDLE: number;
    static readonly CURRENTLY_HUMIDIFYING: number;
    static readonly CURRENTLY_DEHUMIDIFYING: number;
    static readonly AUTOMATIC: number;
    static readonly HUMIDIFY: number;
    static readonly DEHUMIDIFY: number;
    static readonly INACTIVE: number;
    static readonly ACTIVE: number;
    private readonly stateStorageKey;
    private readonly targetStateStorageKey;
    private readonly humidifierThresholdStorageKey;
    private readonly dehumidifierThresholdStorageKey;
    private deviceType;
    private states;
    constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
    setActive(value: CharacteristicValue): Promise<void>;
    getActive(): Promise<CharacteristicValue>;
    getCurrentHumidifierDehumidifierState(): Promise<CharacteristicValue>;
    setTargetHumidifierDehumidifierState(value: CharacteristicValue): Promise<void>;
    getTargetHumidifierDehumidifierState(): Promise<CharacteristicValue>;
    getCurrentRelativeHumidity(): Promise<CharacteristicValue>;
    setRelativeHumidityDehumidifierThreshold(value: CharacteristicValue): Promise<void>;
    getRelativeHumidityDehumidifierThreshold(): Promise<CharacteristicValue>;
    setRelativeHumidityHumidifierThreshold(value: CharacteristicValue): Promise<void>;
    getRelativeHumidityHumidifierThreshold(): Promise<CharacteristicValue>;
    protected getJsonState(): string;
    protected getAccessoryTypeName(): string;
    private humidifies;
    private dehumidifies;
    private setDeviceOperationalCondition;
    static getActiveName(status: number): string;
    static getCurrentStateName(state: number): string;
    static getTargetStateName(state: number): string;
    /**
     * Ensure all the property values are set, then remove as required
     */
    private setHumidifierDehumidifierServiceProperties;
    private getCurrentStateLabels;
    private getTargetStateLabels;
    updateMeasurementSensor(value: number, accessoryId: string): void;
}
