import { CommandBus, EventBus } from '@nestjs/cqrs';
import { ActiveState, ActiveStateName, ConnectedState, ConnectedStateName, ControlLockState, ControlLockStateName, HumidityState, HumidityStateName, ModeStateName, NightLightState, NightLightStateName, PowerState, PowerStateName, TimerState, TimerStateName, WaterShortageState, WaterShortageStateName } from '../../../states';
import { DeviceModel } from '../../../devices.model';
import { Device } from '../../../device';
import { TargetHumidityState, TargetHumidityStateName } from './humidifier.target-humidity';
import { MistLevelState, MistLevelStateName } from './humidifier.mist';
import { AutoModeState, AutoModeStateName, CustomModeState, CustomModeStateName, HumidifierActiveState, ManualModeState, ManualModeStateName } from './humidifier.modes';
import { DeviceFactory } from '../../../device.factory';
import { HumidiferUVCState, UVCStateName } from './humidifier.uvc';
import { Optional } from '../../../../../common/types';
export declare const HumidifierType: 'humidifer';
export type HumidifierType = typeof HumidifierType;
export declare class HumidifierDevice extends Device<Humidifier> implements Humidifier {
    static readonly deviceType: HumidifierType;
    get deviceType(): string;
    constructor(device: DeviceModel, eventBus: EventBus, commandBus: CommandBus);
    get [MistLevelStateName](): Optional<MistLevelState>;
    get [ManualModeStateName](): Optional<ManualModeState>;
    get [CustomModeStateName](): Optional<CustomModeState>;
    get [AutoModeStateName](): Optional<AutoModeState>;
    get [TargetHumidityStateName](): Optional<TargetHumidityState>;
    get [ModeStateName](): Optional<HumidifierActiveState>;
    get [UVCStateName](): Optional<HumidiferUVCState>;
    get [HumidityStateName](): Optional<HumidityState>;
    get [PowerStateName](): Optional<PowerState>;
    get [ConnectedStateName](): Optional<ConnectedState>;
    get [WaterShortageStateName](): Optional<WaterShortageState>;
    get [TimerStateName](): Optional<TimerState>;
    get [NightLightStateName](): Optional<NightLightState>;
    get [ControlLockStateName](): Optional<ControlLockState>;
    get [ActiveStateName](): Optional<ActiveState>;
}
export declare class HumidifierFactory extends DeviceFactory<HumidifierDevice, Humidifier> {
    constructor();
}
export type Humidifier = {
    [MistLevelStateName]: Optional<MistLevelState>;
    [ManualModeStateName]: Optional<ManualModeState>;
    [CustomModeStateName]: Optional<CustomModeState>;
    [AutoModeStateName]: Optional<AutoModeState>;
    [TargetHumidityStateName]: Optional<TargetHumidityState>;
    [ModeStateName]: Optional<HumidifierActiveState>;
    [UVCStateName]: Optional<HumidiferUVCState>;
    [HumidityStateName]: Optional<HumidityState>;
    [PowerStateName]: Optional<PowerState>;
    [ConnectedStateName]: Optional<ConnectedState>;
    [WaterShortageStateName]: Optional<WaterShortageState>;
    [TimerStateName]: Optional<TimerState>;
    [NightLightStateName]: Optional<NightLightState>;
    [ControlLockStateName]: Optional<ControlLockState>;
    [TimerStateName]: Optional<TimerState>;
    [ActiveStateName]: Optional<ActiveState>;
};
//# sourceMappingURL=humidifier.d.ts.map