import { VeSyncFan } from '../vesyncFan';
import { VeSync } from '../vesync';
/**
 * VeSync Humidifier Base Class
 */
export declare class VeSyncHumidifier extends VeSyncFan {
    protected readonly modes: readonly ["auto", "manual", "sleep"];
    protected readonly mistLevels: number[];
    protected readonly displayModes: readonly ["on", "off"];
    protected readonly humidityRange: {
        min: number;
        max: number;
    };
    protected bypassWriteMethod: 'post' | 'put';
    constructor(details: Record<string, any>, manager: VeSync);
    /**
     * Get device details
     */
    getDetails(): Promise<Boolean>;
    /**
     * Turn device on
     */
    turnOn(): Promise<boolean>;
    /**
     * Turn device off
     */
    turnOff(): Promise<boolean>;
    /**
     * Toggle device power
     */
    toggleSwitch(enabled: boolean): Promise<boolean>;
    /**
     * Set mist level
     */
    setMistLevel(level: number): Promise<boolean>;
    /**
     * Change fan speed - Implemented to satisfy interface but redirects to setMistLevel
     */
    changeFanSpeed(speed: number): Promise<boolean>;
    /**
     * Set device mode
     */
    setMode(mode: string): Promise<boolean>;
    /**
     * Set target humidity
     */
    setHumidity(humidity: number): Promise<boolean>;
    /**
     * Set display status
     */
    setDisplay(enabled: boolean): Promise<boolean>;
    /**
     * Set timer
     */
    setTimer(hours: number): Promise<boolean>;
    /**
     * Clear timer
     */
    clearTimer(): Promise<boolean>;
    /**
     * Turn automatic stop on
     */
    automaticStopOn(): Promise<boolean>;
    /**
     * Turn automatic stop off
     */
    automaticStopOff(): Promise<boolean>;
    /**
     * Set auto mode
     */
    setAutoMode(): Promise<boolean>;
    /**
     * Set manual mode
     */
    setManualMode(): Promise<boolean>;
    /**
     * Turn off display
     */
    turnOffDisplay(): Promise<boolean>;
    /**
     * Turn on display
     */
    turnOnDisplay(): Promise<boolean>;
    /**
     * Get current humidity
     * Provides access to the current humidity reading
     */
    get currentHumidity(): number;
    /**
     * Check if water tank is empty
     * Returns true if water tank is empty and needs to be refilled
     */
    get waterLacks(): boolean;
    /**
     * Check if water tank is lifted
     * Returns true if water tank is lifted/removed from the device
     */
    get waterTankLifted(): boolean;
    /**
     * Check if humidity is higher than target
     * Returns true if current humidity is higher than target humidity
     */
    get humidityHigh(): boolean;
    /**
     * Check if automatic stop is active
     * Returns true if automatic stop is currently active
     */
    get automaticStop(): boolean;
}
