/// <reference types="node" />
import { Logger } from "../logger";
import { Host } from "../types/host";
import { PacketHandler } from "../packet.handler";
import { SocketHandler } from "../socket.handler";
import { QueueItem } from "../types/queueItem";
export declare class BroadLinkDevice {
    protected request_header: Buffer;
    protected macAddress: Buffer;
    protected deviceType: number;
    protected packetHandler: PacketHandler;
    protected socketHandler: SocketHandler;
    protected requestCounter: number;
    private logger;
    private host;
    private rm4Type;
    private code_sending_header;
    private readonly promises;
    private isProcessing;
    private queue;
    constructor(host: Host, macAddress: Buffer, deviceType: number, logger: Logger);
    authenticate: () => Promise<Buffer>;
    onPayloadReceived: (_err: number, payload: Buffer) => void;
    checkData: () => Promise<Buffer>;
    sendData: (queueItem: QueueItem) => Promise<Buffer>;
    enterLearning: () => Promise<Buffer>;
    checkTemperature: () => Promise<Buffer>;
    checkHumidity: () => Promise<Buffer>;
    cancelLearn: () => Promise<Buffer>;
    enqueue(command: Buffer): Promise<unknown>;
    processQueue(): Promise<void>;
    toJSON(): {
        host: Host;
        macAddress: Buffer;
        deviceType: number;
        requestCounter: number;
        rm4Type: string;
        isProcessing: boolean;
        queue: QueueItem[];
    };
    protected dispatchCommandAndIncrementCounter(command: number, payload: Buffer, queueItem?: QueueItem): Promise<Buffer>;
}
