/// import { ExecuteDelayed, ExecutePeriodically, IncomingListenMessage, ListenOptions, ListenSubscribeOptions, MqttClientConstructorOptions, MqttSubscription, RegisterClientOptions, Resolvable, StopExecuting, TimerRef } from './mqtt.types'; import { PacketFlowData, PacketFlowFunc } from './flow'; import { MqttParseResult, MqttTransformer } from './mqtt.parser'; import { Transport } from './transport'; import { ConnectRequestOptions, ConnectResponsePacket, DefaultPacketReadResultMap, DefaultPacketWriteOptions, PacketReadResultMap, PacketWriteOptionsMap, PacketWriter, PublishRequestPacket, SubscribeReturnCode } from './packets'; import { MqttMessageOutgoing } from './mqtt.message'; import { Writable } from 'stream'; import { PacketType } from './mqtt.constants'; import { MqttBaseClient } from './mqtt.base-client'; import { HandlerFn, MqttListener, RemoveHandlerFn } from './mqtt.listener'; export declare class MqttClient extends MqttBaseClient { private mqttDebug; private receiveDebug; private pingDebug; protected executePeriodically: ExecutePeriodically; protected stopExecuting: StopExecuting; protected executeDelayed: ExecuteDelayed; protected flowCounter: { next(): number; } | { next(): bigint; }; get keepAlive(): number; set keepAlive(value: number); protected transport: Transport; protected transformer: MqttTransformer; protected createTransformer: () => MqttTransformer; protected pipeline?: Writable; protected writer: PacketWriter; protected keepAliveTimer?: TimerRef; private reconnectStrategy?; protected activeFlows: PacketFlowData[]; protected messageListener: MqttListener; constructor(options: MqttClientConstructorOptions); private _connect; connect(options?: Resolvable): Promise; protected createPipeline(): void; publish(message: MqttMessageOutgoing): Promise; subscribe(subscription: MqttSubscription): Promise; unsubscribe(subscription: MqttSubscription): Promise; disconnect(force?: boolean): Promise; listenSubscribe(topic: string, handlerFn: HandlerFn): Promise; listenSubscribe = Record>(options: ListenSubscribeOptions, handlerFn: HandlerFn): Promise; listen(topic: string, handlerFn: HandlerFn): RemoveHandlerFn; listen>(options: ListenOptions, handlerFn: HandlerFn): RemoveHandlerFn; startFlow(flow: PacketFlowFunc): Promise & { flowId: bigint | number; }; stopFlow(flowId: bigint | number, rejection?: Error): boolean; /** * Run the accept and next function of all active flows * @param packet * @returns true if a flow has been found */ protected continueFlows(packet: MqttParseResult): boolean; protected clearFinishedFlows(): void; protected stopExecutingFlows(error: Error): void; protected getFlowById(id: number | bigint): PacketFlowData | undefined; protected registerClient(options: RegisterClientOptions): Promise; protected getConnectFlow(options: ConnectRequestOptions): PacketFlowFunc; protected updateKeepAlive(value: number): void; protected sendData(data: Buffer): void; protected handlePacket(packet: MqttParseResult): Promise; protected onConnAck(connAck: ConnectResponsePacket): void; protected onPublish(publish: PublishRequestPacket): void; protected onPingReq(): void; protected logReceivedPacket(packet: { type: PacketType; data: any; }): void; protected reset(): void; protected setReady(): void; protected reconnect(): Promise; protected setDisconnected(reason?: string | Error): Promise; }