import { CommandBus, EventBus } from '@nestjs/cqrs';
import { BrightnessState, ColorRGBState, ConnectedState, PowerState, ColorTempState, ActiveState, ActiveStateName, BrightnessStateName, ColorRGBStateName, ColorTempStateName, ConnectedStateName, PowerStateName } from '../../../states';
import { DeviceModel } from '../../../devices.model';
import { DeviceFactory } from '../../../device.factory';
import { LightDevice } from '../light.device';
import { SceneModeState, SceneModeStateName } from './rgb-light.modes';
import { Optional } from '../../../../../common/types';
export declare const RGBLightType: 'rgb';
export type RGBLightType = typeof RGBLightType;
export declare class RGBLightDevice extends LightDevice<RGBLight> implements RGBLight {
    static readonly deviceType: RGBLightType;
    get deviceType(): string;
    constructor(device: DeviceModel, eventBus: EventBus, commandBus: CommandBus);
    get [PowerStateName](): Optional<PowerState>;
    get [ConnectedStateName](): Optional<ConnectedState>;
    get [BrightnessStateName](): Optional<BrightnessState>;
    get [ColorRGBStateName](): Optional<ColorRGBState>;
    get [ColorTempStateName](): Optional<ColorTempState>;
    get [SceneModeStateName](): Optional<SceneModeState>;
    get [ActiveStateName](): Optional<ActiveState>;
}
export declare class RGBLightFactory extends DeviceFactory<RGBLightDevice, RGBLight> {
    constructor();
}
export type RGBLight = {
    [PowerStateName]: Optional<PowerState>;
    [ConnectedStateName]: Optional<ConnectedState>;
    [BrightnessStateName]: Optional<BrightnessState>;
    [ColorRGBStateName]: Optional<ColorRGBState>;
    [ColorTempStateName]: Optional<ColorTempState>;
    [SceneModeStateName]: Optional<SceneModeState>;
    [ActiveStateName]: Optional<ActiveState>;
};
//# sourceMappingURL=rgb-light.d.ts.map