import { CommandBus, EventBus } from '@nestjs/cqrs';
import { DeviceModel } from '../../../devices.model';
import { Device } from '../../../device';
import { DeviceFactory } from '../../../device.factory';
import { PM25StateName, TemperatureState, HumidityState } from './air-quality.states';
import { ConnectedState, ConnectedStateName, DeviceOpState, HumidityStateName, PowerState, PowerStateName, TemperatureStateName } from '../../../states';
import { Optional } from '../../../../../common';
export declare const AirQualityType: 'airQuality';
export type AirQualityType = typeof AirQualityType;
export declare class AirQualityDevice extends Device<AirQualitySensor> implements AirQualitySensor {
    static readonly deviceType: AirQualityType;
    get deviceType(): string;
    constructor(deviceModel: DeviceModel, eventBus: EventBus, commandBus: CommandBus);
    get [HumidityStateName](): Optional<HumidityState>;
    get [TemperatureStateName](): Optional<TemperatureState>;
    get [PM25StateName](): Optional<DeviceOpState<PM25StateName, number | undefined>>;
    get [PowerStateName](): Optional<PowerState>;
    get [ConnectedStateName](): Optional<ConnectedState>;
}
export declare class AirQualityFactory extends DeviceFactory<AirQualityDevice, AirQualitySensor> {
    constructor();
}
export type AirQualitySensor = {
    [HumidityStateName]: Optional<HumidityState>;
    [TemperatureStateName]: Optional<TemperatureState>;
    [PM25StateName]: Optional<DeviceOpState<PM25StateName, Optional<number>>>;
    [PowerStateName]: Optional<PowerState>;
    [ConnectedStateName]: Optional<ConnectedState>;
};
//# sourceMappingURL=air-quality.d.ts.map