/// import { PacketType } from '../mqtt.constants'; import { RequiredConnectRequestOptions } from './connect.request.packet'; import { PacketStream } from '../packet-stream'; import { PacketWriteResult } from '../mqtt.packet'; import { PublishPacketOptions } from './publish.request.packet'; import { PublishAckPacketOptions } from './publish.ack.packet'; import { PublishReceivedPacketOptions } from './publish.received.packet'; import { PublishReleasedPacketOptions } from './publish.release.packet'; import { PublishCompletePacketOptions } from './publish.complete.packet'; import { SubscribePacketOptions } from './subscribe.request.packet'; import { UnsubscribePacketOptions } from './unsubscribe.request.packet'; export interface PacketLogger { logPacketWrite: (packetType: PacketType, packetInfo: Record) => void; } export declare class PacketWriter { protected logger: PacketLogger; protected writeMap: PacketWriteMap; constructor(logger: PacketLogger, writeMap?: PacketWriteMap); write(type: T, options?: WriteOptions[T]): Buffer; } export declare function defaultWrite(type: T, options?: DefaultPacketWriteOptions[T]): WriteData; export interface WriteData { type: T; options?: WriteMap[T]; } export declare const DefaultPacketWriteMap: PacketWriteMap; export declare type PacketWriteMap = { [P in PacketType]?: (stream: PacketStream, options: Options[P]) => PacketWriteResult; }; export declare type PacketWriteOptionsMap = { [x in PacketType]: any; }; export declare type DefaultPacketWriteOptions = { [PacketType.Connect]: RequiredConnectRequestOptions; [PacketType.ConnAck]: undefined; [PacketType.Publish]: PublishPacketOptions; [PacketType.PubAck]: PublishAckPacketOptions; [PacketType.PubRec]: PublishReceivedPacketOptions; [PacketType.PubRel]: PublishReleasedPacketOptions; [PacketType.PubComp]: PublishCompletePacketOptions; [PacketType.Subscribe]: SubscribePacketOptions; [PacketType.SubAck]: undefined; [PacketType.Unsubscribe]: UnsubscribePacketOptions; [PacketType.UnsubAck]: undefined; [PacketType.PingReq]: undefined; [PacketType.PingResp]: undefined; [PacketType.Disconnect]: undefined; };