import { AccessoryContext, BaseDevice } from '../baseDevice.js';
import { LGThinQHomebridgePlatform } from '../platform.js';
import { Logger, PlatformAccessory, Service } from 'homebridge';
import { Device } from '../lib/Device.js';
import { WasherDryerStatus } from './WasherDryer.js';
export default class Dishwasher extends BaseDevice {
    readonly platform: LGThinQHomebridgePlatform;
    readonly accessory: PlatformAccessory<AccessoryContext>;
    isRunning: boolean;
    inputID: number;
    rinseLevel: string;
    inputName: string;
    inputNameOptions: string;
    inputNameRinse: string;
    inputNameMachine: string;
    courseStartString: string;
    courseTimeString: string;
    courseTimeEndString: string;
    showTime: boolean;
    firstTime: boolean;
    firstEnd: boolean;
    settingDuration: number;
    dryCounter: number;
    delayTime: number;
    firstDelay: boolean;
    firstStandby: boolean;
    standbyTimetMS: number;
    finishedTime: string;
    protected serviceDishwasher: Service;
    protected serviceDoorOpened: Service;
    protected serviceEventFinished: Service | undefined;
    protected tvService: Service;
    protected dishwasherState: Service;
    protected dishwasherOptions: Service;
    protected startTime: Service;
    protected courseDuration: Service;
    protected endTime: Service;
    protected dishwasherRinseLevel: Service;
    protected dishwasherClaenness: Service;
    createInputSourceService(name: string, subtype: string, identifier: number, configuredName: string, isShow: boolean): Service;
    constructor(platform: LGThinQHomebridgePlatform, accessory: PlatformAccessory<AccessoryContext>, logger: Logger);
    currentInputName(): void;
    timeDurationEnd(): void;
    setActive(): void;
    updateAccessoryCharacteristic(device: Device): void;
    get Status(): DishwasherStatus;
    get config(): {
        dishwasher_trigger: boolean;
    } & Record<string, any>;
    nameLengthCheck(newName: string): string;
    updateRinseLevel(): void;
    onStatus(): boolean;
    timerStatus(): 0 | 1;
    getRinseLevel(callback: (error: Error | null, result?: number) => void): void;
    getDoorStatus(callback: (error: Error | null, result?: boolean) => void): void;
    getRinseLevelPercent(callback: (error: Error | null, result: number) => void): void;
    getRinseLevelStatus(callback: (error: Error | null, result: number) => void): void;
    resetTimeSettings(): void;
    update(snapshot: any): void;
}
export declare class DishwasherStatus extends WasherDryerStatus {
    get isRunning(): boolean;
    get isDoorClosed(): boolean;
}
