import { VeSyncFan } from '../vesyncFan';
import { VeSync } from '../vesync';
/**
 * VeSync Superior 6000S Humidifier Class
 * Implementation based on PyVeSync's VeSyncSuperior6000S class
 */
export declare class VeSyncSuperior6000S extends VeSyncFan {
    protected readonly modes: readonly ["auto", "manual", "sleep", "humidity"];
    protected readonly mistLevels: number[];
    protected readonly humidityRange: {
        min: number;
        max: number;
    };
    protected readonly _apiModes: string[];
    details: {
        mode: string;
        speed?: number;
        filter_life?: number;
        screen_status?: 'on' | 'off';
        child_lock?: boolean;
        humidity: number;
        target_humidity: number;
        mist_level: number;
        mist_virtual_level: number;
        water_lacks: boolean;
        water_tank_lifted: boolean;
        display: boolean;
        filter_life_percentage: number;
        temperature: number;
        drying_mode: {
            autoDryingSwitch?: number;
            dryingState?: number;
            dryingLevel?: number;
            dryingRemain?: number;
        };
        configuration: Record<string, any>;
        connection_status: string | null;
    };
    constructor(details: Record<string, any>, manager: VeSync);
    /**
     * Build API dictionary for humidifier
     */
    protected buildApiDict(method: string): [Record<string, any>, Record<string, any>];
    /**
     * 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 drying mode enabled
     */
    setDryingModeEnabled(enabled: boolean): Promise<boolean>;
    /**
     * Turn on display
     */
    turnOnDisplay(): Promise<boolean>;
    /**
     * Turn off display
     */
    turnOffDisplay(): Promise<boolean>;
    /**
     * Set auto mode
     */
    setAutoMode(): Promise<boolean>;
    /**
     * Set manual mode
     */
    setManualMode(): Promise<boolean>;
    /**
     * Get current humidity
     * Provides access to the current humidity reading
     */
    get currentHumidity(): number;
    /**
     * Get target humidity
     * Provides access to the target humidity setting
     */
    get targetHumidity(): number;
    /**
     * Get current temperature
     * Provides access to the current temperature reading
     */
    get temperature(): 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;
    /**
     * Get filter life percentage
     * Returns the percentage of filter life remaining
     */
    get filterLifePercentage(): number;
    /**
     * Check if drying mode is enabled
     * Returns true if drying mode is enabled
     */
    get dryingModeEnabled(): boolean;
    /**
     * Get drying mode state
     * Returns 'on' if drying mode is active, 'off' if inactive, null if unknown
     */
    get dryingModeState(): string | null;
    /**
     * Get drying mode level
     * Returns 'low' if level is 1, 'high' if level is 2, null if unknown
     */
    get dryingModeLevel(): string | null;
    /**
     * Get drying mode seconds remaining
     * Returns the number of seconds remaining in drying mode
     */
    get dryingModeSecondsRemaining(): number;
}
