import { CommandBus, EventBus } from '@nestjs/cqrs';
import { BrightnessState, ConnectedState, LightEffectStateName, PowerState, ColorTempState, ActiveState, ActiveStateName, BrightnessStateName, ColorTempStateName, ConnectedStateName, ModeStateName, PowerStateName, LightEffectState } from '../../../states';
import { DeviceModel } from '../../../devices.model';
import { SegmentColorModeState, ColorModeState, MicModeState, RGBICActiveState, WholeColorModeStateName, SegmentColorModeStateName, DiyModeState, DiyModeStateName } from './rgbic-light.modes';
import { DeviceFactory } from '../../../device.factory';
import { LightDevice } from '../light.device';
import { Optional } from '../../../../../common/types';
import { MicModeStateName } from './rgbic-light.modes';
export declare const RGBICLightType: 'rgbic';
export type RGBICLightType = typeof RGBICLightType;
export declare class RGBICLightDevice extends LightDevice<RGBICLight> implements RGBICLight {
    static readonly deviceType: "rgbic";
    get deviceType(): string;
    constructor(device: DeviceModel, eventBus: EventBus, commandBus: CommandBus);
    get [PowerStateName](): Optional<PowerState>;
    get [ConnectedStateName](): Optional<ConnectedState>;
    get [ActiveStateName](): Optional<ActiveState>;
    get [BrightnessStateName](): Optional<BrightnessState>;
    get [ColorTempStateName](): Optional<ColorTempState>;
    get [WholeColorModeStateName](): Optional<ColorModeState>;
    get [LightEffectStateName](): Optional<LightEffectState>;
    get [MicModeStateName](): Optional<MicModeState>;
    get [DiyModeStateName](): Optional<DiyModeState>;
    get [ModeStateName](): Optional<RGBICActiveState>;
    get [SegmentColorModeStateName](): Optional<SegmentColorModeState>;
}
export declare class RGBICLightFactory extends DeviceFactory<RGBICLightDevice, RGBICLight> {
    constructor();
}
export type RGBICLight = {
    [PowerStateName]: Optional<PowerState>;
    [ConnectedStateName]: Optional<ConnectedState>;
    [ActiveStateName]: Optional<ActiveState>;
    [BrightnessStateName]: Optional<BrightnessState>;
    [ColorTempStateName]: Optional<ColorTempState>;
    [WholeColorModeStateName]: Optional<ColorModeState>;
    [LightEffectStateName]: Optional<LightEffectState>;
    [MicModeStateName]: Optional<MicModeState>;
    [DiyModeStateName]: Optional<DiyModeState>;
    [ModeStateName]: Optional<RGBICActiveState>;
    [SegmentColorModeStateName]: Optional<SegmentColorModeState>;
};
//# sourceMappingURL=rgbic-light.d.ts.map