import { Logger, PlatformConfig } from 'homebridge';
import { API } from './API';
import { LGThinQHomebridgePlatform } from '../platform';
import { Device } from './Device';
import * as uuid from 'uuid';
import { DeviceModel } from './DeviceModel';
export type WorkId = typeof uuid['v4'];
export declare class ThinQ {
    readonly platform: LGThinQHomebridgePlatform;
    readonly config: PlatformConfig;
    readonly log: Logger;
    protected api: API;
    protected workIds: Record<string, WorkId>;
    protected deviceModel: Record<string, DeviceModel>;
    protected persist: any;
    constructor(platform: LGThinQHomebridgePlatform, config: PlatformConfig, log: Logger);
    devices(): Promise<Device[]>;
    setup(device: Device): Promise<boolean>;
    unregister(device: Device): Promise<void>;
    protected registerWorkId(device: any): Promise<any>;
    protected loadDeviceModel(device: Device): Promise<DeviceModel>;
    pollMonitor(device: Device): Promise<Device>;
    thinq1DeviceControl(device: Device, key: string, value: any): Promise<any>;
    deviceControl(device: string | Device, values: Record<string, any>, command?: 'Set' | 'Operation', ctrlKey?: string, ctrlPath?: string): Promise<boolean>;
    registerMQTTListener(callback: (data: any) => void): Promise<void>;
    protected _registerMQTTListener(callback: (data: any) => void): Promise<void>;
    isReady(): Promise<void>;
}
//# sourceMappingURL=ThinQ.d.ts.map