import { CommandBus, EventBus } from '@nestjs/cqrs';
import { DeviceModel } from '../../../devices.model';
import { ActiveState, ActiveStateName, ConnectedState, ConnectedStateName, ControlLockState, ControlLockStateName, DisplayScheduleState, DisplayScheduleStateName, FilterExpiredState, FilterExpiredStateName, FilterLifeState, FilterLifeStateName, ModeStateName, NightLightState, NightLightStateName, PowerState, PowerStateName, TimerState, TimerStateName } from '../../../states';
import { Device } from '../../../device';
import { DeviceFactory } from '../../../device.factory';
import { FanSpeedStateName, PurifierFanSpeedState } from './purifier.fan-speed';
import { CustomModeState, CustomModeStateName, ManualModeState, ManualModeStateName, PurifierActiveMode } from './purifier.modes';
import { Optional } from '../../../../../common';
export declare const PurifierType: 'purifier';
export type PurifierType = typeof PurifierType;
export declare class PurifierDevice extends Device<Purifier> implements Purifier {
    protected isDebug: boolean;
    static readonly deviceType: PurifierType;
    get deviceType(): string;
    constructor(device: DeviceModel, eventBus: EventBus, commandBus: CommandBus);
    get [PowerStateName](): Optional<PowerState>;
    get [ConnectedStateName](): Optional<ConnectedState>;
    get [ActiveStateName](): Optional<ActiveState>;
    get [DisplayScheduleStateName](): Optional<DisplayScheduleState>;
    get [ManualModeStateName](): Optional<ManualModeState>;
    get [CustomModeStateName](): Optional<CustomModeState>;
    get [TimerStateName](): Optional<TimerState>;
    get [FanSpeedStateName](): Optional<PurifierFanSpeedState>;
    get [NightLightStateName](): Optional<NightLightState>;
    get [ControlLockStateName](): Optional<ControlLockState>;
    get [ModeStateName](): Optional<PurifierActiveMode>;
    get [FilterExpiredStateName](): Optional<FilterExpiredState>;
    get [FilterLifeStateName](): Optional<FilterLifeState>;
}
export declare class PurifierFactory extends DeviceFactory<PurifierDevice, Purifier> {
    constructor();
}
export type Purifier = {
    [PowerStateName]: Optional<PowerState>;
    [ConnectedStateName]: Optional<ConnectedState>;
    [ActiveStateName]: Optional<ActiveState>;
    [DisplayScheduleStateName]: Optional<DisplayScheduleState>;
    [ManualModeStateName]: Optional<ManualModeState>;
    [CustomModeStateName]: Optional<CustomModeState>;
    [TimerStateName]: Optional<TimerState>;
    [FanSpeedStateName]: Optional<PurifierFanSpeedState>;
    [NightLightStateName]: Optional<NightLightState>;
    [ControlLockStateName]: Optional<ControlLockState>;
    [ModeStateName]: Optional<PurifierActiveMode>;
    [FilterExpiredStateName]: Optional<FilterExpiredState>;
    [FilterLifeStateName]: Optional<FilterLifeState>;
};
//# sourceMappingURL=purifier.d.ts.map