/**
 * Special thank to carlosgamezvillegas (https://github.com/carlosgamezvillegas) for the initial work on the Oven device.
 */
import { baseDevice } from '../baseDevice';
import { LGThinQHomebridgePlatform } from '../platform';
import { PlatformAccessory } from 'homebridge';
import { DeviceModel } from "../lib/DeviceModel";
export default class Oven extends baseDevice {
    readonly platform: LGThinQHomebridgePlatform;
    readonly accessory: PlatformAccessory;
    protected inputNameStatus: string;
    protected inputNameMode: string;
    protected probeName: string;
    protected inputNameTempString: string;
    protected courseStartString: string;
    protected courseTimeString: string;
    protected courseTimerString: string;
    protected courseTimeEndString: string;
    protected inputNameOptions: string;
    protected inputNameBurner1: string;
    protected inputNameBurner2: string;
    protected inputNameBurner3: string;
    protected inputNameBurner4: string;
    protected inputNameBurner5: 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 localTemperature: number;
    protected localHumidity: number;
    protected ovenCommandList: {
        ovenMode: string;
        ovenSetTemperature: number;
        tempUnits: string;
        ovenSetDuration: number;
        probeTemperature: number;
        ovenKeepWarm: string;
    };
    protected monitorOnly: boolean;
    protected homekitMonitorOnly: boolean;
    protected waitingForCommand: boolean;
    protected showProbe: boolean;
    protected showTime: boolean;
    protected showTimer: boolean;
    protected showBurner1: boolean;
    protected showBurner2: boolean;
    protected showBurner3: boolean;
    protected showBurner4: boolean;
    protected showBurner5: boolean;
    /** service */
    protected ovenService: any;
    protected ovenState: any;
    protected ovenMode: any;
    protected ovenTemp: any;
    protected prove: any;
    protected ovenOptions: any;
    protected ovenStart: any;
    protected ovenTimer: any;
    protected ovenTime: any;
    protected ovenEndTime: any;
    protected burner1: any;
    protected burner2: any;
    protected burner3: any;
    protected burner4: any;
    protected burner5: any;
    protected ovenTimerService: any;
    protected ovenAlarmService: any;
    protected bakeSwitch: any;
    protected convectionBakeSwitch: any;
    protected convectionRoastSwitch: any;
    protected frozenMealSwitch: any;
    protected airFrySwitch: any;
    protected airSousvideSwitch: any;
    protected warmModeSwitch: any;
    protected cancelSwitch: any;
    protected monitorOnlySwitch: any;
    protected startOvenSwitch: any;
    protected keepWarmSwitch: any;
    protected ovenDoorOpened: any;
    protected rangeOn: any;
    protected remoteEnabled: any;
    protected burnersOnNumber: any;
    protected ovenTempControl: any;
    protected probeTempControl: any;
    createInputSourceService(name: any, subtype: any, identifier: any, configuredName: any, isShow: any): import("homebridge").Service;
    constructor(platform: LGThinQHomebridgePlatform, accessory: PlatformAccessory);
    get Status(): OvenStatus;
    get config(): any;
    secondsToTime(seconds: any): string;
    sendTimerCommand(time: any): Promise<void>;
    sendOvenCommand(): Promise<void>;
    stopOven(): Promise<void>;
    getMonitorState(): boolean;
    setActive(): void;
    ovenOnStatus(): boolean;
    onStatus(): boolean;
    nameLengthCheck(newName: any): any;
    remainTime(): number;
    ovenModeName(): any;
    ovenStatus(): any;
    ovenTemperature(): any;
    ovenCurrentTemperature(): number;
    ovenTargetTemperature(): number;
    probeCurrentTemperature(): number;
    probeTargetTemperature(): 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;
    proveStatus(): any;
    probeCurrentState(): 0 | 1;
    probeTargetState(): 0 | 1;
    currentHeatingState(): 0 | 1;
    targetHeatingState(): 0 | 1;
    createCook(key: any): void;
    burner1State(): any;
    burner2State(): any;
    burner3State(): any;
    burner4State(): any;
    burner5State(): any;
    updateOvenModeSwitch(): void;
    updateOvenModeSwitchNoPause(): void;
    getOperationTime(timeInSeconds: any): string;
    ovenServiceActive(): 0 | 1;
    updateAccessoryCharacteristic(device: any): void;
    update(snapshot: any): void;
}
export declare class OvenStatus {
    data: any;
    protected deviceModel: DeviceModel;
    constructor(data: any, deviceModel: DeviceModel);
    getState(key: any): any;
}
//# sourceMappingURL=Oven.d.ts.map