///
import EventEmitter from 'events';
import TuyaOpenAPI from '../core/TuyaOpenAPI';
import TuyaOpenMQ from '../core/TuyaOpenMQ';
import Logger from '../util/Logger';
import TuyaDevice, { TuyaDeviceSchema, TuyaDeviceStatus } from './TuyaDevice';
declare enum Events {
DEVICE_ADD = "DEVICE_ADD",
DEVICE_INFO_UPDATE = "DEVICE_INFO_UPDATE",
DEVICE_STATUS_UPDATE = "DEVICE_STATUS_UPDATE",
DEVICE_DELETE = "DEVICE_DELETE"
}
declare enum TuyaMQTTProtocol {
DEVICE_STATUS_UPDATE = 4,
DEVICE_INFO_UPDATE = 20
}
export default class TuyaDeviceManager extends EventEmitter {
api: TuyaOpenAPI;
static readonly Events: typeof Events;
mq: TuyaOpenMQ;
ownerIDs: string[];
devices: TuyaDevice[];
log: Logger;
constructor(api: TuyaOpenAPI);
getDevice(deviceID: string): TuyaDevice | undefined;
updateDevices(ownerIDs: []): Promise;
updateDevice(deviceID: string): Promise;
getDeviceInfo(deviceID: string): Promise;
getDeviceListInfo(deviceIDs?: string[]): Promise;
getDeviceSchema(deviceID: string): Promise;
getInfraredRemotes(infraredID: string): Promise;
getInfraredKeys(infraredID: string, remoteID: string): Promise;
updateInfraredRemotes(allDevices: TuyaDevice[]): Promise;
sendInfraredCommands(infraredID: string, remoteID: string, category_id: number, remote_index: number, key: string, key_id: number): Promise;
sendInfraredACCommands(infraredID: string, remoteID: string, power: number, mode: number, temp: number, wind: number): Promise;
getLockTemporaryKey(deviceID: string): Promise;
sendLockCommands(deviceID: string, ticketID: string, open: boolean): Promise;
sendCommands(deviceID: string, commands: TuyaDeviceStatus[]): Promise;
onMQTTMessage(topic: string, protocol: TuyaMQTTProtocol, message: any): Promise;
}
export {};
//# sourceMappingURL=TuyaDeviceManager.d.ts.map