///
///
import { MQTToTConnectPacketOptions } from './mqttot.connect.request.packet';
import { ConnectRequestOptions, DefaultPacketReadResultMap, DefaultPacketWriteOptions, MqttClient, MqttMessage, MqttMessageOutgoing, PacketFlowFunc, PacketType } from 'mqtts';
import { MQTToTConnectResponsePacket } from './mqttot.connect.response.packet';
import { SocksProxy } from 'socks';
import { ConnectionOptions } from 'tls';
type MQTToTReadMap = Omit & {
[PacketType.ConnAck]: MQTToTConnectResponsePacket;
};
type MQTToTWriteMap = Omit & {
[PacketType.Connect]: MQTToTConnectPacketOptions;
};
export declare class MQTToTClient extends MqttClient {
protected connectPayloadProvider: () => Promise;
protected connectPayload?: Buffer;
protected requirePayload: boolean;
protected mqttotDebug: (msg: string) => void;
constructor(options: {
url: string;
payloadProvider: () => Promise;
enableTrace?: boolean;
autoReconnect: boolean;
requirePayload: boolean;
socksOptions?: SocksProxy;
additionalOptions?: ConnectionOptions;
});
protected registerListeners(): void;
connect(options?: ConnectRequestOptions): Promise;
protected getConnectFlow(): PacketFlowFunc;
/**
* Compresses the payload
* @param {MqttMessage} message
* @returns {Promise}
*/
mqttotPublish(message: MqttMessage): Promise;
}
export declare function mqttotConnectFlow(payload: Buffer, requirePayload: boolean): PacketFlowFunc;
export {};