/**
 * Special thank to carlosgamezvillegas (https://github.com/carlosgamezvillegas) for the initial work on the Microwave device.
 */
import { baseDevice } from '../baseDevice';
import { DeviceModel } from '../lib/DeviceModel';
import { LGThinQHomebridgePlatform } from '../platform';
import { PlatformAccessory } from 'homebridge';
export default class Microwave extends baseDevice {
    readonly platform: LGThinQHomebridgePlatform;
    readonly accessory: PlatformAccessory;
    protected inputNameStatus: string;
    protected inputNameMode: string;
    protected inputNameTempString: string;
    protected courseStartString: string;
    protected courseTimeString: string;
    protected courseTimerString: string;
    protected courseTimeEndString: string;
    protected inputNameOptions: string;
    protected firstStart: boolean;
    protected firstDuration: number;
    protected firstTimer: number;
    protected courseStartMS: number;
    protected inputID: number;
    protected temperatureFCommand: number;
    protected thermostatSel: number;
    protected timerAlarmSec: number;
    protected pauseUpdate: boolean;
    protected firstPause: boolean;
    protected ventSpeed: number;
    protected lampLevel: number;
    protected mwPower: number;
    protected localTemperature: number;
    protected localHumidity: number;
    protected defaultTemp: number;
    protected waitingForCommand: boolean;
    protected ovenCommandList: {
        ovenMode: string;
        ovenSetTemperature: number;
        tempUnits: any;
        ovenSetDuration: number;
        subCookNumber: number;
        weightUnits: string;
        microwavePower: string;
        targetWeight: number;
    };
    protected showTime: boolean;
    protected showTimer: boolean;
    protected monitorOnly: boolean;
    protected timeOut: number;
    /** Service */
    private serviceHood;
    private serviceLight;
    private microwavePower;
    private ovenService;
    private ovenState;
    private lightVent;
    private ovenMode;
    private ovenTemp;
    private ovenOptions;
    private ovenStart;
    private ovenTimer;
    private ovenTime;
    private ovenEndTime;
    private ovenTimerService;
    private ovenAlarmService;
    private microwaveSwitch;
    private combiBakeSwitch;
    private dehydrateSwitch;
    private ovenSwitch;
    private convectionBakeSwitch;
    private convectionRoastSwitch;
    private frozenMealSwitch;
    private defrostSwitch;
    private airFrySwitch;
    private proofSwitch;
    private warmModeSwitch;
    private cancelSwitch;
    private startOvenSwitch;
    private ovenTempControl;
    private offSwitch;
    constructor(platform: LGThinQHomebridgePlatform, accessory: PlatformAccessory);
    timeModeCommand(): Promise<void>;
    sendLightVentCommand(): Promise<void>;
    sendTimerCommand(time: any): Promise<void>;
    sendOvenCommand(): void;
    stopOven(): Promise<void>;
    setActive(): void;
    onStatus(): boolean;
    lightVentState(): boolean;
    nameLengthCheck(newName: any): any;
    secondsToTime(seconds: any): string;
    remainTime(): number;
    ovenModeName(): any;
    ovenStatus(): any;
    ovenTemperature(): any;
    ovenCurrentTemperature(): number;
    ovenTargetTemperature(): number;
    OvenSubCookMenu(name: any): any;
    oventTargetTime(): number;
    ovenTimerTime(): number;
    tempCtoF(temp: any): number;
    tempFtoC(temp: any): number;
    ovenCookingDuration(): string;
    ovenCookingTimer(): string;
    ovenCookingStartTime(): string;
    ovenCookingEndTime(): string;
    oventOptions(): any;
    currentHeatingState(): 0 | 1;
    targetHeatingState(): 0 | 1;
    updateOvenModeSwitch(): void;
    updateOvenModeSwitchNoPause(): void;
    getOperationTime(timeInSeconds: any): string;
    lightVentStatus(): string;
    ovenServiceActive(): 0 | 1;
    updateAccessoryCharacteristic(device: any): void;
    update(snapshot: any): void;
    get Status(): MicrowaveStatus;
    get config(): any;
}
export declare class MicrowaveStatus {
    data: any;
    protected deviceModel: DeviceModel;
    constructor(data: any, deviceModel: DeviceModel);
    getState(key: any): any;
}
//# sourceMappingURL=Microwave.d.ts.map