UNPKG

tsvesync

Version:

A TypeScript library for interacting with VeSync smart home devices

117 lines (116 loc) 3.12 kB
/** * 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 {};