import { CommandBus, EventBus } from '@nestjs/cqrs';
import { Optional } from '../../../../../common';
import { Device } from '../../../device';
import { DeviceFactory } from '../../../device.factory';
import { DeviceModel } from '../../../devices.model';
import { ConnectedState, ConnectedStateName, PowerState, PowerStateName } from '../../../states';
import { BuzzerState, BuzzerStateName, EarlyWarningState, EarlyWarningStateName, PresetState, ProbeTempState, TemperatureUnitState, TemperatureUnitStateName } from './meat-thermometer.states';
export declare const MeatThermometer: 'MeatThermometer';
export type MeatThermometer = typeof MeatThermometer;
export declare class MeatThermometerDevice extends Device<MeatThermometerSensor> implements MeatThermometerSensor {
    static readonly deviceType: string;
    protected isDebug: boolean;
    get deviceType(): string;
    constructor(device: DeviceModel, eventBus: EventBus, commandBus: CommandBus);
    get probeTemp1(): Optional<ProbeTempState<1>>;
    get probeTemp2(): Optional<ProbeTempState<2>>;
    get probeTemp3(): Optional<ProbeTempState<3>>;
    get probeTemp4(): Optional<ProbeTempState<4>>;
    get preset1(): Optional<PresetState<1>>;
    get preset2(): Optional<PresetState<2>>;
    get preset3(): Optional<PresetState<3>>;
    get preset4(): Optional<PresetState<4>>;
    get [EarlyWarningStateName](): Optional<EarlyWarningState>;
    get [TemperatureUnitStateName](): Optional<TemperatureUnitState>;
    get [PowerStateName](): Optional<PowerState>;
    get [ConnectedStateName](): Optional<ConnectedState>;
    get [BuzzerStateName](): Optional<BuzzerState>;
}
export declare class MeatThermometerFactory extends DeviceFactory<MeatThermometerDevice, MeatThermometerSensor> {
    constructor();
}
export type MeatThermometerSensor = {
    [PowerStateName]: Optional<PowerState>;
    [ConnectedStateName]: Optional<ConnectedState>;
    [BuzzerStateName]: Optional<BuzzerState>;
    [EarlyWarningStateName]: Optional<EarlyWarningState>;
    probeTemp1: Optional<ProbeTempState<1>>;
    probeTemp2: Optional<ProbeTempState<2>>;
    probeTemp3: Optional<ProbeTempState<3>>;
    probeTemp4: Optional<ProbeTempState<4>>;
    preset1: Optional<PresetState<1>>;
    preset2: Optional<PresetState<2>>;
    preset3: Optional<PresetState<3>>;
    preset4: Optional<PresetState<4>>;
    [TemperatureUnitStateName]: Optional<TemperatureUnitState>;
};
//# sourceMappingURL=meat-thermometer.d.ts.map