/**
 * VeSync Fan Classes
 */
import { VeSyncBaseDevice } from './vesyncBaseDevice';
import { VeSync } from './vesync';
interface FanConfig {
    [key: string]: {
        module: 'VeSyncAirBypass' | 'VeSyncHumidifier' | 'VeSyncWarmHumidifier' | 'VeSyncTowerFan' | 'VeSyncAirBaseV2' | 'VeSyncSuperior6000S' | 'VeSyncHumid1000S' | 'VeSyncHumid200S' | 'VeSyncAir131';
        features: string[];
        levels?: number[];
    };
}
export declare const fanConfig: FanConfig;
/**
 * Base class for VeSync Fans
 */
export declare abstract class VeSyncFan extends VeSyncBaseDevice {
    protected details: {
        mode?: string;
        speed?: number;
        filter_life?: number;
        screen_status?: 'on' | 'off';
        child_lock?: boolean;
        air_quality?: string;
        humidity?: number;
        mist_level?: number;
        warm_level?: number;
        warm_enabled?: boolean;
        [key: string]: any;
    };
    protected mode_dict: Record<string, any>;
    protected speed_dict: Record<string, any>;
    protected _timer: number | {
        duration: number;
        action: string;
    } | null;
    protected config: {
        module: 'VeSyncAirBypass' | 'VeSyncHumidifier' | 'VeSyncWarmHumidifier' | 'VeSyncTowerFan' | 'VeSyncAirBaseV2' | 'VeSyncSuperior6000S' | 'VeSyncHumid1000S' | 'VeSyncHumid200S' | 'VeSyncAir131';
        features: string[];
        levels?: number[];
    };
    constructor(details: Record<string, any>, manager: VeSync);
    /**
     * Check if feature is supported
     */
    hasFeature(feature: string): boolean;
    /**
     * Check if feature is supported in current mode
     */
    isFeatureSupportedInCurrentMode(feature: string): boolean;
    /**
     * Get maximum fan speed level
     */
    getMaxFanSpeed(): number;
    /**
     * Get current mode
     */
    get mode(): string;
    /**
     * Get current speed
     */
    get speed(): number;
    /**
     * Get filter life percentage
     */
    get filterLife(): number;
    /**
     * Get screen status
     */
    get screenStatus(): 'on' | 'off';
    /**
     * Get child lock status
     */
    get childLock(): boolean;
    /**
     * Get air quality (if supported)
     */
    get airQuality(): string;
    /**
     * Get humidity level (if supported)
     */
    get humidity(): number;
    /**
     * Get mist level (if supported)
     */
    get mistLevel(): number;
    /**
     * Get warm level (if supported)
     */
    get warmLevel(): number;
    /**
     * Get timer status
     */
    get timer(): number | {
        duration: number;
        action: string;
    } | null;
    set timer(value: number | {
        duration: number;
        action: string;
    } | null);
    /**
     * Return formatted device info to stdout
     */
    display(): void;
    /**
     * Return JSON details for fan
     */
    displayJSON(): string;
    abstract getDetails(): Promise<Boolean>;
    abstract turnOn(): Promise<boolean>;
    abstract turnOff(): Promise<boolean>;
    abstract changeFanSpeed(speed: number): Promise<boolean>;
    abstract setMode(mode: string): Promise<boolean>;
}
export {};
