1107 lines
		
	
	
		
			43 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			1107 lines
		
	
	
		
			43 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
/**
 | 
						|
 * @packageDocumentation
 | 
						|
 * @module mqtt5
 | 
						|
 */
 | 
						|
/**
 | 
						|
 * Data model for MQTT5 user properties.
 | 
						|
 *
 | 
						|
 * A user property is a name-value pair of utf-8 strings that can be added to mqtt5 packets.
 | 
						|
 */
 | 
						|
export interface UserProperty {
 | 
						|
    name: string;
 | 
						|
    value: string;
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Server return code for connect attempts.
 | 
						|
 *
 | 
						|
 * Enum values match [MQTT5 spec](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901079) encoding values.
 | 
						|
 */
 | 
						|
export declare enum ConnectReasonCode {
 | 
						|
    /**
 | 
						|
     * Returned when the connection is accepted.
 | 
						|
     */
 | 
						|
    Success = 0,
 | 
						|
    /**
 | 
						|
     * Returned when the server has a failure but does not want to specify a reason or none
 | 
						|
     * of the other reason codes apply.
 | 
						|
     */
 | 
						|
    UnspecifiedError = 128,
 | 
						|
    /**
 | 
						|
     * Returned when data in the CONNECT packet could not be correctly parsed by the server.
 | 
						|
     */
 | 
						|
    MalformedPacket = 129,
 | 
						|
    /**
 | 
						|
     * Returned when data in the CONNECT packet does not conform to the MQTT5 specification requirements.
 | 
						|
     */
 | 
						|
    ProtocolError = 130,
 | 
						|
    /**
 | 
						|
     * Returned when the CONNECT packet is valid but was not accepted by the server.
 | 
						|
     */
 | 
						|
    ImplementationSpecificError = 131,
 | 
						|
    /**
 | 
						|
     * Returned when the server does not support MQTT5 protocol version specified in the connection.
 | 
						|
     */
 | 
						|
    UnsupportedProtocolVersion = 132,
 | 
						|
    /**
 | 
						|
     * Returned when the client identifier in the CONNECT packet is a valid string but not one that
 | 
						|
     * is allowed on the server.
 | 
						|
     */
 | 
						|
    ClientIdentifierNotValid = 133,
 | 
						|
    /**
 | 
						|
     * Returned when the server does not accept the username and/or password specified by the client
 | 
						|
     * in the connection packet.
 | 
						|
     */
 | 
						|
    BadUsernameOrPassword = 134,
 | 
						|
    /**
 | 
						|
     * Returned when the client is not authorized to connect to the server.
 | 
						|
     */
 | 
						|
    NotAuthorized = 135,
 | 
						|
    /**
 | 
						|
     * Returned when the MQTT5 server is not available.
 | 
						|
     */
 | 
						|
    ServerUnavailable = 136,
 | 
						|
    /**
 | 
						|
     * Returned when the server is too busy to make a connection. It is recommended that the client try again later.
 | 
						|
     */
 | 
						|
    ServerBusy = 137,
 | 
						|
    /**
 | 
						|
     * Returned when the client has been banned by the server.
 | 
						|
     */
 | 
						|
    Banned = 138,
 | 
						|
    /**
 | 
						|
     * Returned when the authentication method used in the connection is either not supported on the server or it does
 | 
						|
     * not match the authentication method currently in use in the CONNECT packet.
 | 
						|
     */
 | 
						|
    BadAuthenticationMethod = 140,
 | 
						|
    /**
 | 
						|
     * Returned when the Will topic name sent in the connection packet is correctly formed, but is not accepted by
 | 
						|
     * the server.
 | 
						|
     */
 | 
						|
    TopicNameInvalid = 144,
 | 
						|
    /**
 | 
						|
     * Returned when the connection packet exceeded the maximum permissible size on the server.
 | 
						|
     */
 | 
						|
    PacketTooLarge = 149,
 | 
						|
    /**
 | 
						|
     * Returned when the quota limits set on the server have been met and/or exceeded.
 | 
						|
     */
 | 
						|
    QuotaExceeded = 151,
 | 
						|
    /**
 | 
						|
     * Returned when the Will payload in the CONNECT packet does not match the specified payload format indicator.
 | 
						|
     */
 | 
						|
    PayloadFormatInvalid = 153,
 | 
						|
    /**
 | 
						|
     * Returned when the server does not retain messages but the connection packet on the client had Will retain enabled.
 | 
						|
     */
 | 
						|
    RetainNotSupported = 154,
 | 
						|
    /**
 | 
						|
     * Returned when the server does not support the QOS setting in the Will QOS in the connection packet.
 | 
						|
     */
 | 
						|
    QosNotSupported = 155,
 | 
						|
    /**
 | 
						|
     * Returned when the server is telling the client to temporarily use another server instead of the one they
 | 
						|
     * are trying to connect to.
 | 
						|
     */
 | 
						|
    UseAnotherServer = 156,
 | 
						|
    /**
 | 
						|
     * Returned when the server is telling the client to permanently use another server instead of the one they
 | 
						|
     * are trying to connect to.
 | 
						|
     */
 | 
						|
    ServerMoved = 157,
 | 
						|
    /**
 | 
						|
     * Returned when the server connection rate limit has been exceeded.
 | 
						|
     */
 | 
						|
    ConnectionRateExceeded = 159
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Determines if a reason code represents a successful connect operation
 | 
						|
 *
 | 
						|
 * @param reasonCode reason code to check success for
 | 
						|
 */
 | 
						|
export declare function isSuccessfulConnectReasonCode(reasonCode: ConnectReasonCode): boolean;
 | 
						|
/**
 | 
						|
 * Reason code inside DISCONNECT packets.  Helps determine why a connection was terminated.
 | 
						|
 *
 | 
						|
 * Enum values match [MQTT5 spec](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901208) encoding values.
 | 
						|
 */
 | 
						|
export declare enum DisconnectReasonCode {
 | 
						|
    /**
 | 
						|
     * Returned when the remote endpoint wishes to disconnect normally. Will not trigger the publish of a Will message if a
 | 
						|
     * Will message was configured on the connection.
 | 
						|
     *
 | 
						|
     * May be sent by the client or server.
 | 
						|
     */
 | 
						|
    NormalDisconnection = 0,
 | 
						|
    /**
 | 
						|
     * Returns that the client wants to disconnect but requires that the server publish the Will message configured
 | 
						|
     * on the connection.
 | 
						|
     *
 | 
						|
     * May only be sent by the client.
 | 
						|
     */
 | 
						|
    DisconnectWithWillMessage = 4,
 | 
						|
    /**
 | 
						|
     * Returned when the connection was closed but the sender does not want to specify a reason or none
 | 
						|
     * of the other reason codes apply.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    UnspecifiedError = 128,
 | 
						|
    /**
 | 
						|
     * Indicates the remote endpoint received a packet that does not conform to the MQTT specification.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    MalformedPacket = 129,
 | 
						|
    /**
 | 
						|
     * Returned when an unexpected or out-of-order packet was received by the remote endpoint.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    ProtocolError = 130,
 | 
						|
    /**
 | 
						|
     * Returned when a valid packet was received by the remote endpoint, but could not be processed by the current implementation.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    ImplementationSpecificError = 131,
 | 
						|
    /**
 | 
						|
     * Returned when the remote endpoint received a packet that represented an operation that was not authorized within
 | 
						|
     * the current connection.
 | 
						|
     *
 | 
						|
     * May only be sent by the server.
 | 
						|
     */
 | 
						|
    NotAuthorized = 135,
 | 
						|
    /**
 | 
						|
     * Returned when the server is busy and cannot continue processing packets from the client.
 | 
						|
     *
 | 
						|
     * May only be sent by the server.
 | 
						|
     */
 | 
						|
    ServerBusy = 137,
 | 
						|
    /**
 | 
						|
     * Returned when the server is shutting down.
 | 
						|
     *
 | 
						|
     * May only be sent by the server.
 | 
						|
     */
 | 
						|
    ServerShuttingDown = 139,
 | 
						|
    /**
 | 
						|
     * Returned when the server closes the connection because no packet from the client has been received in
 | 
						|
     * 1.5 times the KeepAlive time set when the connection was established.
 | 
						|
     *
 | 
						|
     * May only be sent by the server.
 | 
						|
     */
 | 
						|
    KeepAliveTimeout = 141,
 | 
						|
    /**
 | 
						|
     * Returned when the server has established another connection with the same client ID as a client's current
 | 
						|
     * connection, causing the current client to become disconnected.
 | 
						|
     *
 | 
						|
     * May only be sent by the server.
 | 
						|
     */
 | 
						|
    SessionTakenOver = 142,
 | 
						|
    /**
 | 
						|
     * Returned when the topic filter name is correctly formed but not accepted by the server.
 | 
						|
     *
 | 
						|
     * May only be sent by the server.
 | 
						|
     */
 | 
						|
    TopicFilterInvalid = 143,
 | 
						|
    /**
 | 
						|
     * Returned when topic name is correctly formed, but is not accepted.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    TopicNameInvalid = 144,
 | 
						|
    /**
 | 
						|
     * Returned when the remote endpoint reached a state where there were more in-progress QoS1+ publishes then the
 | 
						|
     * limit it established for itself when the connection was opened.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    ReceiveMaximumExceeded = 147,
 | 
						|
    /**
 | 
						|
     * Returned when the remote endpoint receives a PUBLISH packet that contained a topic alias greater than the
 | 
						|
     * maximum topic alias limit that it established for itself when the connection was opened.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    TopicAliasInvalid = 148,
 | 
						|
    /**
 | 
						|
     * Returned when the remote endpoint received a packet whose size was greater than the maximum packet size limit
 | 
						|
     * it established for itself when the connection was opened.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    PacketTooLarge = 149,
 | 
						|
    /**
 | 
						|
     * Returned when the remote endpoint's incoming data rate was too high.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    MessageRateTooHigh = 150,
 | 
						|
    /**
 | 
						|
     * Returned when an internal quota of the remote endpoint was exceeded.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    QuotaExceeded = 151,
 | 
						|
    /**
 | 
						|
     * Returned when the connection was closed due to an administrative action.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    AdministrativeAction = 152,
 | 
						|
    /**
 | 
						|
     * Returned when the remote endpoint received a packet where payload format did not match the format specified
 | 
						|
     * by the payload format indicator.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    PayloadFormatInvalid = 153,
 | 
						|
    /**
 | 
						|
     * Returned when the server does not support retained messages.
 | 
						|
     *
 | 
						|
     * May only be sent by the server.
 | 
						|
     */
 | 
						|
    RetainNotSupported = 154,
 | 
						|
    /**
 | 
						|
     * Returned when the client sends a QOS that is greater than the maximum QOS established when the connection was
 | 
						|
     * opened.
 | 
						|
     *
 | 
						|
     * May only be sent by the server.
 | 
						|
     */
 | 
						|
    QosNotSupported = 155,
 | 
						|
    /**
 | 
						|
     * Returned by the server to tell the client to temporarily use a different server.
 | 
						|
     *
 | 
						|
     * May only be sent by the server.
 | 
						|
     */
 | 
						|
    UseAnotherServer = 156,
 | 
						|
    /**
 | 
						|
     * Returned by the server to tell the client to permanently use a different server.
 | 
						|
     *
 | 
						|
     * May only be sent by the server.
 | 
						|
     */
 | 
						|
    ServerMoved = 157,
 | 
						|
    /**
 | 
						|
     * Returned by the server to tell the client that shared subscriptions are not supported on the server.
 | 
						|
     *
 | 
						|
     * May only be sent by the server.
 | 
						|
     */
 | 
						|
    SharedSubscriptionsNotSupported = 158,
 | 
						|
    /**
 | 
						|
     * Returned when the server disconnects the client due to the connection rate being too high.
 | 
						|
     *
 | 
						|
     * May only be sent by the server.
 | 
						|
     */
 | 
						|
    ConnectionRateExceeded = 159,
 | 
						|
    /**
 | 
						|
     * Returned by the server when the maximum connection time authorized for the connection was exceeded.
 | 
						|
     *
 | 
						|
     * May only be sent by the server.
 | 
						|
     */
 | 
						|
    MaximumConnectTime = 160,
 | 
						|
    /**
 | 
						|
     * Returned by the server when it received a SUBSCRIBE packet with a subscription identifier, but the server does
 | 
						|
     * not support subscription identifiers.
 | 
						|
     *
 | 
						|
     * May only be sent by the server.
 | 
						|
     */
 | 
						|
    SubscriptionIdentifiersNotSupported = 161,
 | 
						|
    /**
 | 
						|
     * Returned by the server when it received a SUBSCRIBE packet with a wildcard topic filter, but the server does
 | 
						|
     * not support wildcard topic filters.
 | 
						|
     *
 | 
						|
     * May only be sent by the server.
 | 
						|
     */
 | 
						|
    WildcardSubscriptionsNotSupported = 162
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Determines if a reason code represents a successful disconnect operation
 | 
						|
 *
 | 
						|
 * @param reasonCode reason code to check success for
 | 
						|
 */
 | 
						|
export declare function isSuccessfulDisconnectReasonCode(reasonCode: DisconnectReasonCode): boolean;
 | 
						|
/**
 | 
						|
 * Reason codes inside SUBACK packet payloads that specify the results for each subscription in the associated
 | 
						|
 * SUBSCRIBE packet.
 | 
						|
 *
 | 
						|
 * Enum values match [MQTT5 spec](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901178) encoding values.
 | 
						|
 */
 | 
						|
export declare enum SubackReasonCode {
 | 
						|
    /**
 | 
						|
     * Returned when the subscription was accepted and the maximum QOS sent will be QOS 0.
 | 
						|
     */
 | 
						|
    GrantedQoS0 = 0,
 | 
						|
    /**
 | 
						|
     * Returned when the subscription was accepted and the maximum QOS sent will be QOS 1.
 | 
						|
     */
 | 
						|
    GrantedQoS1 = 1,
 | 
						|
    /**
 | 
						|
     * Returned when the subscription was accepted and the maximum QOS sent will be QOS 2.
 | 
						|
     */
 | 
						|
    GrantedQoS2 = 2,
 | 
						|
    /**
 | 
						|
     * Returned when the connection was closed but the sender does not want to specify a reason or none
 | 
						|
     * of the other reason codes apply.
 | 
						|
     */
 | 
						|
    UnspecifiedError = 128,
 | 
						|
    /**
 | 
						|
     * Returned when the subscription was valid but the server did not accept it.
 | 
						|
     */
 | 
						|
    ImplementationSpecificError = 131,
 | 
						|
    /**
 | 
						|
     * Returned when the client was not authorized to make the subscription on the server.
 | 
						|
     */
 | 
						|
    NotAuthorized = 135,
 | 
						|
    /**
 | 
						|
     * Returned when the subscription topic filter was correctly formed but not allowed for the client.
 | 
						|
     */
 | 
						|
    TopicFilterInvalid = 143,
 | 
						|
    /**
 | 
						|
     * Returned when the packet identifier was already in use on the server.
 | 
						|
     */
 | 
						|
    PacketIdentifierInUse = 145,
 | 
						|
    /**
 | 
						|
     * Returned when a subscribe-related quota set on the server was exceeded.
 | 
						|
     */
 | 
						|
    QuotaExceeded = 151,
 | 
						|
    /**
 | 
						|
     * Returned when the subscription's topic filter was a shared subscription and the server does not support
 | 
						|
     * shared subscriptions.
 | 
						|
     */
 | 
						|
    SharedSubscriptionsNotSupported = 158,
 | 
						|
    /**
 | 
						|
     * Returned when the SUBSCRIBE packet contained a subscription identifier and the server does not support
 | 
						|
     * subscription identifiers.
 | 
						|
     */
 | 
						|
    SubscriptionIdentifiersNotSupported = 161,
 | 
						|
    /**
 | 
						|
     * Returned when the subscription's topic filter contains a wildcard but the server does not support
 | 
						|
     * wildcard subscriptions.
 | 
						|
     */
 | 
						|
    WildcardSubscriptionsNotSupported = 162
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Determines if a reason code represents a successful subscribe operation
 | 
						|
 *
 | 
						|
 * @param reasonCode reason code to check success for
 | 
						|
 */
 | 
						|
export declare function isSuccessfulSubackReasonCode(reasonCode: SubackReasonCode): boolean;
 | 
						|
/**
 | 
						|
 * Reason codes inside UNSUBACK packet payloads that specify the results for each topic filter in the associated
 | 
						|
 * UNSUBSCRIBE packet.
 | 
						|
 *
 | 
						|
 * Enum values match [MQTT5 spec](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901194) encoding values.
 | 
						|
 */
 | 
						|
export declare enum UnsubackReasonCode {
 | 
						|
    /**
 | 
						|
     * Returned when the unsubscribe was successful and the client is no longer subscribed to the topic filter on the server.
 | 
						|
     */
 | 
						|
    Success = 0,
 | 
						|
    /**
 | 
						|
     * Returned when the topic filter did not match one of the client's existing subscriptions on the server.
 | 
						|
     */
 | 
						|
    NoSubscriptionExisted = 17,
 | 
						|
    /**
 | 
						|
     * Returned when the unsubscribe of the topic filter was not accepted and the server does not want to specify a
 | 
						|
     * reason or none of the other reason codes apply.
 | 
						|
     */
 | 
						|
    UnspecifiedError = 128,
 | 
						|
    /**
 | 
						|
     * Returned when the topic filter was valid but the server does not accept an unsubscribe for it.
 | 
						|
     */
 | 
						|
    ImplementationSpecificError = 131,
 | 
						|
    /**
 | 
						|
     * Returned when the client was not authorized to unsubscribe from that topic filter on the server.
 | 
						|
     */
 | 
						|
    NotAuthorized = 135,
 | 
						|
    /**
 | 
						|
     * Returned when the topic filter was correctly formed but is not allowed for the client on the server.
 | 
						|
     */
 | 
						|
    TopicFilterInvalid = 143,
 | 
						|
    /**
 | 
						|
     * Returned when the packet identifier was already in use on the server.
 | 
						|
     */
 | 
						|
    PacketIdentifierInUse = 145
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Determines if a reason code represents a successful unsubscribe operation
 | 
						|
 *
 | 
						|
 * @param reasonCode reason code to check success for
 | 
						|
 */
 | 
						|
export declare function isSuccessfulUnsubackReasonCode(reasonCode: UnsubackReasonCode): boolean;
 | 
						|
/**
 | 
						|
 * Reason code inside PUBACK packets that indicates the result of the associated PUBLISH request.
 | 
						|
 *
 | 
						|
 * Enum values match [MQTT5 spec](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901124) encoding values.
 | 
						|
 */
 | 
						|
export declare enum PubackReasonCode {
 | 
						|
    /**
 | 
						|
     * Returned when the (QoS 1) publish was accepted by the recipient.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    Success = 0,
 | 
						|
    /**
 | 
						|
     * Returned when the (QoS 1) publish was accepted but there were no matching subscribers.
 | 
						|
     *
 | 
						|
     * May only be sent by the server.
 | 
						|
     */
 | 
						|
    NoMatchingSubscribers = 16,
 | 
						|
    /**
 | 
						|
     * Returned when the (QoS 1) publish was not accepted and the receiver does not want to specify a reason or none
 | 
						|
     * of the other reason codes apply.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    UnspecifiedError = 128,
 | 
						|
    /**
 | 
						|
     * Returned when the (QoS 1) publish was valid but the receiver was not willing to accept it.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    ImplementationSpecificError = 131,
 | 
						|
    /**
 | 
						|
     * Returned when the (QoS 1) publish was not authorized by the receiver.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    NotAuthorized = 135,
 | 
						|
    /**
 | 
						|
     * Returned when the topic name was valid but the receiver was not willing to accept it.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    TopicNameInvalid = 144,
 | 
						|
    /**
 | 
						|
     * Returned when the packet identifier used in the associated PUBLISH was already in use.
 | 
						|
     * This can indicate a mismatch in the session state between client and server.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    PacketIdentifierInUse = 145,
 | 
						|
    /**
 | 
						|
     * Returned when the associated PUBLISH failed because an internal quota on the recipient was exceeded.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    QuotaExceeded = 151,
 | 
						|
    /**
 | 
						|
     * Returned when the PUBLISH packet's payload format did not match its payload format indicator property.
 | 
						|
     *
 | 
						|
     * May be sent by the client or the server.
 | 
						|
     */
 | 
						|
    PayloadFormatInvalid = 153
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Determines if a reason code represents a successful QoS 1 publish operation
 | 
						|
 *
 | 
						|
 * @param reasonCode reason code to check success for
 | 
						|
 */
 | 
						|
export declare function isSuccessfulPubackReasonCode(reasonCode: PubackReasonCode): boolean;
 | 
						|
/**
 | 
						|
 * Optional property describing a PUBLISH payload's format.
 | 
						|
 *
 | 
						|
 * Enum values match [MQTT5 spec](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901111) encoding values.
 | 
						|
 */
 | 
						|
export declare enum PayloadFormatIndicator {
 | 
						|
    /**
 | 
						|
     * The payload is arbitrary binary data
 | 
						|
     */
 | 
						|
    Bytes = 0,
 | 
						|
    /**
 | 
						|
     * The payload is a well-formed utf-8 string value.
 | 
						|
     */
 | 
						|
    Utf8 = 1
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Valid types for a PUBLISH packet's payload
 | 
						|
 *
 | 
						|
 * While the payload as input can be one of several types, the payload as output (via message receipt)
 | 
						|
 * will always be an ArrayBuffer of binary data.
 | 
						|
 */
 | 
						|
export type Payload = string | Record<string, unknown> | ArrayBuffer | ArrayBufferView;
 | 
						|
/**
 | 
						|
 * Valid types for MQTT5 packet binary data fields (other than PUBLISH payload)
 | 
						|
 */
 | 
						|
export type BinaryData = ArrayBuffer | ArrayBufferView;
 | 
						|
/**
 | 
						|
 * MQTT message delivery quality of service.
 | 
						|
 *
 | 
						|
 * Enum values match [MQTT5 spec](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901234) encoding values.
 | 
						|
 */
 | 
						|
export declare enum QoS {
 | 
						|
    /**
 | 
						|
     * The message is delivered according to the capabilities of the underlying network. No response is sent by the
 | 
						|
     * receiver and no retry is performed by the sender. The message arrives at the receiver either once or not at all.
 | 
						|
     */
 | 
						|
    AtMostOnce = 0,
 | 
						|
    /**
 | 
						|
     * A level of service that ensures that the message arrives at the receiver at least once.
 | 
						|
     */
 | 
						|
    AtLeastOnce = 1,
 | 
						|
    /**
 | 
						|
     * A level of service that ensures that the message arrives at the receiver exactly once.
 | 
						|
     */
 | 
						|
    ExactlyOnce = 2
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Configures how retained messages should be handled when subscribing with a topic filter that matches topics with
 | 
						|
 * associated retained messages.
 | 
						|
 *
 | 
						|
 * Enum values match [MQTT5 spec](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901169) encoding values.
 | 
						|
 */
 | 
						|
export declare enum RetainHandlingType {
 | 
						|
    /**
 | 
						|
     * The server should always send all retained messages on topics that match a subscription's filter.
 | 
						|
     */
 | 
						|
    SendOnSubscribe = 0,
 | 
						|
    /**
 | 
						|
     * The server should send retained messages on topics that match the subscription's filter, but only for the
 | 
						|
     * first matching subscription, per session.
 | 
						|
     */
 | 
						|
    SendOnSubscribeIfNew = 1,
 | 
						|
    /**
 | 
						|
     * Subscriptions must not trigger any retained message publishes from the server.
 | 
						|
     */
 | 
						|
    DontSend = 2
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Packet type indicator that allows for basic polymorphism with user-received packets.  Enum values
 | 
						|
 * match the mqtt spec's [packet type encoding](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901022) values.
 | 
						|
 */
 | 
						|
export declare enum PacketType {
 | 
						|
    Connect = 1,
 | 
						|
    Connack = 2,
 | 
						|
    Publish = 3,
 | 
						|
    Puback = 4,
 | 
						|
    Pubrec = 5,
 | 
						|
    Pubrel = 6,
 | 
						|
    Pubcomp = 7,
 | 
						|
    Subscribe = 8,
 | 
						|
    Suback = 9,
 | 
						|
    Unsubscribe = 10,
 | 
						|
    Unsuback = 11,
 | 
						|
    Pingreq = 12,
 | 
						|
    Pingresp = 13,
 | 
						|
    Disconnect = 14,
 | 
						|
    Auth = 15
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Common interface for all packet types.
 | 
						|
 */
 | 
						|
export interface IPacket {
 | 
						|
    /**
 | 
						|
     * Always set on packets coming from the client to the user.  Ignored if set on packets that come from the
 | 
						|
     * user to the client.
 | 
						|
     *
 | 
						|
     * The primary use is to allow users to distinguish between packets in polymorphic situations (for example,
 | 
						|
     * the result of a publish attempt which might be a Puback (QoS 1) or Pubcomp (QoS 2, when we support it).
 | 
						|
     */
 | 
						|
    type?: PacketType;
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Data model of an [MQTT5 PUBLISH](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901100) packet
 | 
						|
 */
 | 
						|
export interface PublishPacket extends IPacket {
 | 
						|
    /**
 | 
						|
     * Sent publishes - The topic this message should be published to.
 | 
						|
     *
 | 
						|
     * Received publishes - The topic this message was published to.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Topic Name](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901107)
 | 
						|
     */
 | 
						|
    topicName: string;
 | 
						|
    /**
 | 
						|
     * The payload of the publish message.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Publish Payload](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901119)
 | 
						|
     */
 | 
						|
    payload?: Payload;
 | 
						|
    /**
 | 
						|
     * Sent publishes - The MQTT quality of service level this message should be delivered with.
 | 
						|
     *
 | 
						|
     * Received publishes - The MQTT quality of service level this message was delivered at.
 | 
						|
     *
 | 
						|
     * See [MQTT5 QoS](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901103)
 | 
						|
     */
 | 
						|
    qos: QoS;
 | 
						|
    /**
 | 
						|
     * True if this is a retained message, false otherwise.
 | 
						|
     *
 | 
						|
     * Always set on received publishes; on sent publishes, undefined implies false.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Retain](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901104)
 | 
						|
     */
 | 
						|
    retain?: boolean;
 | 
						|
    /**
 | 
						|
     * Property specifying the format of the payload data.  The mqtt5 client does not enforce or use this
 | 
						|
     * value in a meaningful way.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Payload Format Indicator](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901111)
 | 
						|
     */
 | 
						|
    payloadFormat?: PayloadFormatIndicator;
 | 
						|
    /**
 | 
						|
     * Sent publishes - indicates the maximum amount of time allowed to elapse for message delivery before the server
 | 
						|
     * should instead delete the message (relative to a recipient).
 | 
						|
     *
 | 
						|
     * Received publishes - indicates the remaining amount of time (from the server's perspective) before the message would
 | 
						|
     * have been deleted relative to the subscribing client.
 | 
						|
     *
 | 
						|
     * If left undefined, indicates no expiration timeout.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Message Expiry Interval](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901112)
 | 
						|
     */
 | 
						|
    messageExpiryIntervalSeconds?: number;
 | 
						|
    /**
 | 
						|
     * Sent publishes - (Node only) topic alias to use, if possible, when encoding this packet.  Only used if the
 | 
						|
     * client's outbound topic aliasing mode is set to Manual.
 | 
						|
     *
 | 
						|
     * Received publishes - topic alias used by the server when transmitting the publish to the client.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Topic Alias](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901113)
 | 
						|
     */
 | 
						|
    topicAlias?: number;
 | 
						|
    /**
 | 
						|
     * Opaque topic string intended to assist with request/response implementations.  Not internally meaningful to
 | 
						|
     * MQTT5 or this client.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Response Topic](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901114)
 | 
						|
     */
 | 
						|
    responseTopic?: string;
 | 
						|
    /**
 | 
						|
     * Opaque binary data used to correlate between publish messages, as a potential method for request-response
 | 
						|
     * implementation.  Not internally meaningful to MQTT5.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Correlation Data](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901115)
 | 
						|
     */
 | 
						|
    correlationData?: BinaryData;
 | 
						|
    /**
 | 
						|
     * Sent publishes - ignored
 | 
						|
     *
 | 
						|
     * Received publishes - the subscription identifiers of all the subscriptions this message matched.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Subscription Identifier](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901117)
 | 
						|
     */
 | 
						|
    subscriptionIdentifiers?: Array<number>;
 | 
						|
    /**
 | 
						|
     * Property specifying the content type of the payload.  Not internally meaningful to MQTT5.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Content Type](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901118)
 | 
						|
     */
 | 
						|
    contentType?: string;
 | 
						|
    /**
 | 
						|
     * Set of MQTT5 user properties included with the packet.
 | 
						|
     *
 | 
						|
     * See [MQTT5 User Property](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901116)
 | 
						|
     */
 | 
						|
    userProperties?: Array<UserProperty>;
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Data model of an [MQTT5 PUBACK](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901121) packet
 | 
						|
 */
 | 
						|
export interface PubackPacket extends IPacket {
 | 
						|
    /**
 | 
						|
     * Success indicator or failure reason for the associated PUBLISH packet.
 | 
						|
     *
 | 
						|
     * See [MQTT5 PUBACK Reason Code](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901124)
 | 
						|
     */
 | 
						|
    reasonCode: PubackReasonCode;
 | 
						|
    /**
 | 
						|
     * Additional diagnostic information about the result of the PUBLISH attempt.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Reason String](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901127)
 | 
						|
     */
 | 
						|
    reasonString?: string;
 | 
						|
    /**
 | 
						|
     * Set of MQTT5 user properties included with the packet.
 | 
						|
     *
 | 
						|
     * See [MQTT5 User Property](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901128)
 | 
						|
     */
 | 
						|
    userProperties?: Array<UserProperty>;
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Data model of an [MQTT5 CONNECT](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901033) packet.
 | 
						|
 */
 | 
						|
export interface ConnectPacket extends IPacket {
 | 
						|
    /**
 | 
						|
     * The maximum time interval, in seconds, that is permitted to elapse between the point at which the client
 | 
						|
     * finishes transmitting one MQTT packet and the point it starts sending the next.  The client will use
 | 
						|
     * PINGREQ packets to maintain this property.
 | 
						|
     *
 | 
						|
     * If the responding CONNACK contains a keep alive property value, then that is the negotiated keep alive value.
 | 
						|
     * Otherwise, the keep alive sent by the client is the negotiated value.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Keep Alive](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901045)
 | 
						|
     */
 | 
						|
    keepAliveIntervalSeconds: number;
 | 
						|
    /**
 | 
						|
     * A unique string identifying the client to the server.  Used to restore session state between connections.
 | 
						|
     *
 | 
						|
     * If left empty, the broker will auto-assign a unique client id.  When reconnecting, the mqtt5 client will
 | 
						|
     * always use the auto-assigned client id.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Client Identifier](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901059)
 | 
						|
     */
 | 
						|
    clientId?: string;
 | 
						|
    /**
 | 
						|
     * A string value that the server may use for client authentication and authorization.
 | 
						|
     *
 | 
						|
     * See [MQTT5 User Name](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901071)
 | 
						|
     */
 | 
						|
    username?: string;
 | 
						|
    /**
 | 
						|
     * Opaque binary data that the server may use for client authentication and authorization.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Password](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901072)
 | 
						|
     */
 | 
						|
    password?: BinaryData;
 | 
						|
    /**
 | 
						|
     * A time interval, in seconds, that the client requests the server to persist this connection's MQTT session state
 | 
						|
     * for.  Has no meaning if the client has not been configured to rejoin sessions.  Must be non-zero in order to
 | 
						|
     * successfully rejoin a session.
 | 
						|
     *
 | 
						|
     * If the responding CONNACK contains a session expiry property value, then that is the negotiated session expiry
 | 
						|
     * value.  Otherwise, the session expiry sent by the client is the negotiated value.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Session Expiry Interval](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901048)
 | 
						|
     */
 | 
						|
    sessionExpiryIntervalSeconds?: number;
 | 
						|
    /**
 | 
						|
     * If set to true, requests that the server send response information in the subsequent CONNACK.  This response
 | 
						|
     * information may be used to set up request-response implementations over MQTT, but doing so is outside
 | 
						|
     * the scope of the MQTT5 spec and client.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Request Response Information](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901052)
 | 
						|
     */
 | 
						|
    requestResponseInformation?: boolean;
 | 
						|
    /**
 | 
						|
     * If set to true, requests that the server send additional diagnostic information (via response string or
 | 
						|
     * user properties) in DISCONNECT or CONNACK packets from the server.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Request Problem Information](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901053)
 | 
						|
     */
 | 
						|
    requestProblemInformation?: boolean;
 | 
						|
    /**
 | 
						|
     * Notifies the server of the maximum number of in-flight Qos 1 and 2 messages the client is willing to handle.  If
 | 
						|
     * omitted, then no limit is requested.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Receive Maximum](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901049)
 | 
						|
     */
 | 
						|
    receiveMaximum?: number;
 | 
						|
    /**
 | 
						|
     * Notifies the server of the maximum packet size the client is willing to handle.  If
 | 
						|
     * omitted, then no limit beyond the natural limits of MQTT packet size is requested.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Maximum Packet Size](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901050)
 | 
						|
     */
 | 
						|
    maximumPacketSizeBytes?: number;
 | 
						|
    /**
 | 
						|
     * A time interval, in seconds, that the server should wait (for a session reconnection) before sending the
 | 
						|
     * will message associated with the connection's session.  If omitted, the server will send the will when the
 | 
						|
     * associated session is destroyed.  If the session is destroyed before a will delay interval has elapsed, then
 | 
						|
     * the will must be sent at the time of session destruction.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Will Delay Interval](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901062)
 | 
						|
     */
 | 
						|
    willDelayIntervalSeconds?: number;
 | 
						|
    /**
 | 
						|
     * The definition of a message to be published when the connection's session is destroyed by the server or when
 | 
						|
     * the will delay interval has elapsed, whichever comes first.  If undefined, then nothing will be sent.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Will](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901040)
 | 
						|
     */
 | 
						|
    will?: PublishPacket;
 | 
						|
    /**
 | 
						|
     * Set of MQTT5 user properties included with the packet.
 | 
						|
     *
 | 
						|
     * See [MQTT5 User Property](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901054)
 | 
						|
     */
 | 
						|
    userProperties?: Array<UserProperty>;
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Data model of an [MQTT5 CONNACK](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901074) packet.
 | 
						|
 */
 | 
						|
export interface ConnackPacket extends IPacket {
 | 
						|
    /**
 | 
						|
     * True if the client rejoined an existing session on the server, false otherwise.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Session Present](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901078)
 | 
						|
     */
 | 
						|
    sessionPresent: boolean;
 | 
						|
    /**
 | 
						|
     * Indicates either success or the reason for failure for the connection attempt.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Connect Reason Code](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901079)
 | 
						|
     */
 | 
						|
    reasonCode: ConnectReasonCode;
 | 
						|
    /**
 | 
						|
     * A time interval, in seconds, that the server will persist this connection's MQTT session state
 | 
						|
     * for.  If present, this value overrides any session expiry specified in the preceding CONNECT packet.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Session Expiry Interval](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901082)
 | 
						|
     */
 | 
						|
    sessionExpiryInterval?: number;
 | 
						|
    /**
 | 
						|
     * The maximum amount of in-flight QoS 1 or 2 messages that the server is willing to handle at once.  If omitted,
 | 
						|
     * the limit is based on the valid MQTT packet id space (65535).
 | 
						|
     *
 | 
						|
     * See [MQTT5 Receive Maximum](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901083)
 | 
						|
     */
 | 
						|
    receiveMaximum?: number;
 | 
						|
    /**
 | 
						|
     * The maximum message delivery quality of service that the server will allow on this connection.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Maximum QoS](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901084)
 | 
						|
     */
 | 
						|
    maximumQos?: QoS;
 | 
						|
    /**
 | 
						|
     * Indicates whether the server supports retained messages.  If undefined, retained messages are
 | 
						|
     * supported.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Retain Available](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901085)
 | 
						|
     */
 | 
						|
    retainAvailable?: boolean;
 | 
						|
    /**
 | 
						|
     * Specifies the maximum packet size, in bytes, that the server is willing to accept.  If undefined, there
 | 
						|
     * is no limit beyond what is imposed by the MQTT spec itself.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Maximum Packet Size](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901086)
 | 
						|
     */
 | 
						|
    maximumPacketSize?: number;
 | 
						|
    /**
 | 
						|
     * Specifies a client identifier assigned to this connection by the server.  Only valid when the client id of
 | 
						|
     * the preceding CONNECT packet was left empty.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Assigned Client Identifier](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901087)
 | 
						|
     */
 | 
						|
    assignedClientIdentifier?: string;
 | 
						|
    /**
 | 
						|
     * Specifies the maximum topic alias value that the server will accept from the client.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Topic Alias Maximum](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901088)
 | 
						|
     */
 | 
						|
    topicAliasMaximum?: number;
 | 
						|
    /**
 | 
						|
     * Additional diagnostic information about the result of the connection attempt.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Reason String](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901089)
 | 
						|
     */
 | 
						|
    reasonString?: string;
 | 
						|
    /**
 | 
						|
     * Indicates whether the server supports wildcard subscriptions.  If undefined, wildcard subscriptions
 | 
						|
     * are supported.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Wildcard Subscriptions Available](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901091)
 | 
						|
     */
 | 
						|
    wildcardSubscriptionsAvailable?: boolean;
 | 
						|
    /**
 | 
						|
     * Indicates whether the server supports subscription identifiers.  If undefined, subscription identifiers
 | 
						|
     * are supported.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Subscription Identifiers Available](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901092)
 | 
						|
     */
 | 
						|
    subscriptionIdentifiersAvailable?: boolean;
 | 
						|
    /**
 | 
						|
     * Indicates whether the server supports shared subscription topic filters.  If undefined, shared subscriptions
 | 
						|
     * are supported.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Shared Subscriptions Available](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901093)
 | 
						|
     */
 | 
						|
    sharedSubscriptionsAvailable?: boolean;
 | 
						|
    /**
 | 
						|
     * Server-requested override of the keep alive interval, in seconds.  If undefined, the keep alive value sent
 | 
						|
     * by the client should be used.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Server Keep Alive](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901094)
 | 
						|
     */
 | 
						|
    serverKeepAlive?: number;
 | 
						|
    /**
 | 
						|
     * A value that can be used in the creation of a response topic associated with this connection.  MQTT5-based
 | 
						|
     * request/response is outside the purview of the MQTT5 spec and this client.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Response Information](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901095)
 | 
						|
     */
 | 
						|
    responseInformation?: string;
 | 
						|
    /**
 | 
						|
     * Property indicating an alternate server that the client may temporarily or permanently attempt
 | 
						|
     * to connect to instead of the configured endpoint.  Will only be set if the reason code indicates another
 | 
						|
     * server may be used (ServerMoved, UseAnotherServer).
 | 
						|
     *
 | 
						|
     * See [MQTT5 Server Reference](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901096)
 | 
						|
     */
 | 
						|
    serverReference?: string;
 | 
						|
    /**
 | 
						|
     * Set of MQTT5 user properties included with the packet.
 | 
						|
     *
 | 
						|
     * See [MQTT5 User Property](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901090)
 | 
						|
     */
 | 
						|
    userProperties?: Array<UserProperty>;
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Data model of an [MQTT5 DISCONNECT](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901205) packet.
 | 
						|
 */
 | 
						|
export interface DisconnectPacket extends IPacket {
 | 
						|
    /**
 | 
						|
     * Value indicating the reason that the sender is closing the connection
 | 
						|
     *
 | 
						|
     * See [MQTT5 Disconnect Reason Code](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901208)
 | 
						|
     */
 | 
						|
    reasonCode: DisconnectReasonCode;
 | 
						|
    /**
 | 
						|
     * Requests a change to the session expiry interval negotiated at connection time as part of the disconnect.  Only
 | 
						|
     * valid for  DISCONNECT packets sent from client to server.  It is not valid to attempt to change session expiry
 | 
						|
     * from zero to a non-zero value.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Session Expiry Interval](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901211)
 | 
						|
     */
 | 
						|
    sessionExpiryIntervalSeconds?: number;
 | 
						|
    /**
 | 
						|
     * Additional diagnostic information about the reason that the sender is closing the connection
 | 
						|
     *
 | 
						|
     * See [MQTT5 Reason String](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901212)
 | 
						|
     */
 | 
						|
    reasonString?: string;
 | 
						|
    /**
 | 
						|
     * Set of MQTT5 user properties included with the packet.
 | 
						|
     *
 | 
						|
     * See [MQTT5 User Property](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901213)
 | 
						|
     */
 | 
						|
    userProperties?: Array<UserProperty>;
 | 
						|
    /**
 | 
						|
     * Property indicating an alternate server that the client may temporarily or permanently attempt
 | 
						|
     * to connect to instead of the configured endpoint.  Will only be set if the reason code indicates another
 | 
						|
     * server may be used (ServerMoved, UseAnotherServer).
 | 
						|
     *
 | 
						|
     * See [MQTT5 Server Reference](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901214)
 | 
						|
     */
 | 
						|
    serverReference?: string;
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Configures a single subscription within a Subscribe operation
 | 
						|
 *
 | 
						|
 * See [MQTT5 Subscription Options](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901169)
 | 
						|
 */
 | 
						|
export interface Subscription {
 | 
						|
    /**
 | 
						|
     * Topic filter to subscribe to
 | 
						|
     *
 | 
						|
     * See [MQTT5 Subscription Options](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901169)
 | 
						|
     */
 | 
						|
    topicFilter: string;
 | 
						|
    /**
 | 
						|
     * Maximum QoS on which the subscriber will accept publish messages.  Negotiated QoS may be different.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Subscription Options](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901169)
 | 
						|
     */
 | 
						|
    qos: QoS;
 | 
						|
    /**
 | 
						|
     * Should the server not send publishes to a client when that client was the one who sent the publish?  If
 | 
						|
     * undefined, this is assumed to be false.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Subscription Options](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901169)
 | 
						|
     */
 | 
						|
    noLocal?: boolean;
 | 
						|
    /**
 | 
						|
     * Should messages sent due to this subscription keep the retain flag preserved on the message?  If undefined,
 | 
						|
     * this is assumed to be false.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Subscription Options](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901169)
 | 
						|
     */
 | 
						|
    retainAsPublished?: boolean;
 | 
						|
    /**
 | 
						|
     * Should retained messages on matching topics be sent in reaction to this subscription?  If undefined,
 | 
						|
     * this is assumed to be RetainHandlingType.SendOnSubscribe.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Subscription Options](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901169)
 | 
						|
     */
 | 
						|
    retainHandlingType?: RetainHandlingType;
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Data model of an [MQTT5 SUBSCRIBE](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901161) packet.
 | 
						|
 */
 | 
						|
export interface SubscribePacket extends IPacket {
 | 
						|
    /**
 | 
						|
     * List of topic filter subscriptions that the client wishes to listen to
 | 
						|
     *
 | 
						|
     * See [MQTT5 Subscribe Payload](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901168)
 | 
						|
     */
 | 
						|
    subscriptions: Array<Subscription>;
 | 
						|
    /**
 | 
						|
     * A positive integer to associate with all subscriptions in this request.  Publish packets that match
 | 
						|
     * a subscription in this request should include this identifier in the resulting message.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Subscription Identifier](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901166)
 | 
						|
     */
 | 
						|
    subscriptionIdentifier?: number;
 | 
						|
    /**
 | 
						|
     * Set of MQTT5 user properties included with the packet.
 | 
						|
     *
 | 
						|
     * See [MQTT5 User Property](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901167)
 | 
						|
     */
 | 
						|
    userProperties?: Array<UserProperty>;
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Data model of an [MQTT5 SUBACK](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901171) packet.
 | 
						|
 */
 | 
						|
export interface SubackPacket extends IPacket {
 | 
						|
    /**
 | 
						|
     * A list of reason codes indicating the result of each individual subscription entry in the
 | 
						|
     * associated SUBSCRIBE packet.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Suback Payload](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901178)
 | 
						|
     */
 | 
						|
    reasonCodes: Array<SubackReasonCode>;
 | 
						|
    /**
 | 
						|
     * Additional diagnostic information about the result of the SUBSCRIBE attempt.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Reason String](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901176)
 | 
						|
     */
 | 
						|
    reasonString?: string;
 | 
						|
    /**
 | 
						|
     * Set of MQTT5 user properties included with the packet.
 | 
						|
     *
 | 
						|
     * See [MQTT5 User Property](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901177)
 | 
						|
     */
 | 
						|
    userProperties?: Array<UserProperty>;
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Data model of an [MQTT5 UNSUBSCRIBE](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901179) packet.
 | 
						|
 */
 | 
						|
export interface UnsubscribePacket extends IPacket {
 | 
						|
    /**
 | 
						|
     * List of topic filters that the client wishes to unsubscribe from.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Unsubscribe Payload](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901185)
 | 
						|
     */
 | 
						|
    topicFilters: Array<string>;
 | 
						|
    /**
 | 
						|
     * Set of MQTT5 user properties included with the packet.
 | 
						|
     *
 | 
						|
     * See [MQTT5 User Property](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901184)
 | 
						|
     */
 | 
						|
    userProperties?: Array<UserProperty>;
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Data model of an [MQTT5 UNSUBACK](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901187) packet.
 | 
						|
 */
 | 
						|
export interface UnsubackPacket extends IPacket {
 | 
						|
    /**
 | 
						|
     * A list of reason codes indicating the result of unsubscribing from each individual topic filter entry in the
 | 
						|
     * associated UNSUBSCRIBE packet.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Unsuback Payload](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901194)
 | 
						|
     */
 | 
						|
    reasonCodes: Array<UnsubackReasonCode>;
 | 
						|
    /**
 | 
						|
     * Additional diagnostic information about the result of the UNSUBSCRIBE attempt.
 | 
						|
     *
 | 
						|
     * See [MQTT5 Reason String](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901192)
 | 
						|
     */
 | 
						|
    reasonString?: string;
 | 
						|
    /**
 | 
						|
     * Set of MQTT5 user properties included with the packet.
 | 
						|
     *
 | 
						|
     * See [MQTT5 User Property](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901193)
 | 
						|
     */
 | 
						|
    userProperties?: Array<UserProperty>;
 | 
						|
}
 |