
---@class mqtt_protocol4*
---@field suback_rc table<integer, string> SUBACK Return code description.
---@field suback_packet_mt table SUBACK Package metatable.
---@type mqtt_protocol4*
local M = {}

M.suback_rc = nil
M.suback_packet_mt = nil

--- Create control packages as per MQTT v3.1.1.
---@param args mqtt_packet* package parameters.
---@return mqtt_combined_packet* packet Sendable package.
function M.make_packet(args) end

--- Parse control packets as per MQTT v3.1.1.
---@param read_func mqtt_read_func Read function.
---@return mqtt_packet*|false packet
---@return string? errMsg
function M.parse_packet(read_func) end

return M
