import { DeviceModel } from '../../../devices.model';
import { DeviceOpState } from '../../../states/device.state';
export type ProbeNumber = 1 | 2 | 3 | 4;
export declare const BuzzerStateName: 'buzzer';
export type BuzzerStateName = typeof BuzzerStateName;
export declare class BuzzerState extends DeviceOpState<BuzzerStateName, boolean | undefined> {
    constructor(device: DeviceModel, defaultState?: boolean | undefined);
    parseMultiOpCommand(opCommands: number[][]): void;
}
export declare const TemperatureUnitStateName: 'temperatureUnit';
export type TemperatureUnitStateName = typeof TemperatureUnitStateName;
export declare class TemperatureUnitState extends DeviceOpState<BuzzerStateName, 'F' | 'C' | undefined> {
    constructor(device: DeviceModel, defaultState?: 'F' | 'C' | undefined);
    parseMultiOpCommand(opCommands: number[][]): void;
}
export declare const EarlyWarningStateName: 'earlyWarning';
export type EarlyWarningStateName = typeof EarlyWarningStateName;
export declare enum EarlyWarningOffset {
    OFF = "OFF",
    LOW = "low",
    MEDIUM = "MEDIUM",
    HIGH = "HIGH"
}
export type EarlyWarning = {
    enabled?: boolean;
    setting?: EarlyWarningOffset;
};
export declare class EarlyWarningState extends DeviceOpState<EarlyWarningStateName, EarlyWarning | undefined> {
    constructor(device: DeviceModel, defaultState?: EarlyWarning | undefined);
    parseMultiOpCommand(opCommands: number[][]): void;
}
export declare const ProbeTempStateName: 'probeTemp';
export type ProbeTempStateName<Probe extends ProbeNumber> = `${typeof ProbeTempStateName}${Probe}`;
export declare class ProbeTempState<Probe extends ProbeNumber> extends DeviceOpState<ProbeTempStateName<Probe>, number | undefined> {
    private readonly probe;
    constructor(device: DeviceModel, probe: Probe, defaultState?: number | undefined);
    parseMultiOpCommand(opCommands: number[][]): void;
}
export declare const PresetStateName: 'preset';
export type PresetStateName<Probe extends ProbeNumber> = `${typeof PresetStateName}${Probe}`;
export type Food = 'BEEF' | 'PORK' | 'POULTRY' | 'TURKEY' | 'FISH' | 'DIY' | 'VEAL' | 'SAUSAGE' | 'HAM' | 'SHRIMP' | 'POTATO' | 'CUPCAKE' | 'EGG';
export declare const FoodMap: {
    BEEF: number;
    LAMB: number;
    PORK: number;
    POULTRY: number;
    TURKEY: number;
    FISH: number;
    DIY: number;
    VEAL: number;
    SAUSAGE: number;
    HAM: number;
    SHRIMP: number;
    POTATO: number;
    CUPCAKE: number;
    EGG: number;
};
export type MeatDoneLevel = 'RARE' | 'MEDIUM_RARE' | 'MEDIUM' | 'MEDIUM_WELL' | 'WELL_DONE';
export type HamDoneLevel = 'RAW' | 'PRE_COOKER';
export type PorkDoneLevel = 'MEDIUM' | 'WELL_DONE';
export type ReferenceDoneLevel = 'REFERENCE';
export type DIYAlarm = 'LOW' | 'HIGH' | 'RANGE';
export type DoneLevel<FoodType extends Food> = FoodType extends 'DIY' ? DIYAlarm : FoodType extends 'SAUSAGE' | 'HAM' ? HamDoneLevel : FoodType extends 'PORK' ? PorkDoneLevel : FoodType extends 'BEEF' | 'VEAL' | 'LAMB' ? MeatDoneLevel : ReferenceDoneLevel;
export declare const DIYDoneLevel: {
    LOW: number;
    HIGH: number;
    RANGE: number;
};
export declare const SausageHameDoneLevel: {
    RAW: number;
    PRE_COOKER: number;
};
export declare const PorkDoneLevel: {
    MEDIUM: number;
    WELL_DONE: number;
};
export declare const MeatDoneLevel: {
    RARE: number;
    MEDIUM_RARE: number;
    MEDIUM: number;
    MEDIUM_WELL: number;
    WELL_DONE: number;
};
export declare const RefrenceDoneLevel: {
    REFERENCE: number;
};
export declare const DoneLevelmap: {
    DIY: {
        LOW: number;
        HIGH: number;
        RANGE: number;
    };
    SAUSAGE: {
        RAW: number;
        PRE_COOKER: number;
    };
    HAM: {
        RAW: number;
        PRE_COOKER: number;
    };
    PORK: {
        MEDIUM: number;
        WELL_DONE: number;
    };
    BEEF: {
        RARE: number;
        MEDIUM_RARE: number;
        MEDIUM: number;
        MEDIUM_WELL: number;
        WELL_DONE: number;
    };
    LAMB: {
        RARE: number;
        MEDIUM_RARE: number;
        MEDIUM: number;
        MEDIUM_WELL: number;
        WELL_DONE: number;
    };
    VEAL: {
        RARE: number;
        MEDIUM_RARE: number;
        MEDIUM: number;
        MEDIUM_WELL: number;
        WELL_DONE: number;
    };
};
export type Preset<FoodType extends Food> = {
    food?: FoodType;
    alarm?: {
        low?: number;
        high?: number;
    };
    doneLevel?: DoneLevel<FoodType>;
};
export declare class PresetState<Probe extends ProbeNumber> extends DeviceOpState<PresetStateName<Probe>, Preset<Food> | undefined> {
    private readonly probe;
    constructor(device: DeviceModel, probe: Probe, defaultState?: Preset<Food> | undefined);
    parseMultiOpCommand(opCommands: number[][]): void;
}
//# sourceMappingURL=meat-thermometer.states.d.ts.map