
---@class mbox_header*
---@field name string header 名。
---@field value string header 值。

---@class mbox_message*
---@field headers table<string, string|string[]> headers。
---@field body string 正文。

---@class mbox*
---@type mbox*
local M = {}

--- 拆分单封 mbox 消息。
---@param message string 消息文本。
---@return string headers headers 文本。
---@return string body 正文。
function M.split_message(message) end

--- 拆分 headers 文本。
---@param headers string headers 文本。
---@return string[] lines header 行。
function M.split_headers(headers) end

--- 解析单个 header。
---@param header string header 文本。
---@return string name header 名。
---@return string value header 值。
function M.parse_header(header) end

--- 解析 headers。
---@param headers string headers 文本。
---@return table<string, string|string[]> result headers 表。
function M.parse_headers(headers) end

--- 解析 From 行。
---@param from string From 行。
---@return table result 解析结果。
function M.parse_from(from) end

--- 拆分 mbox 文本。
---@param mbox string mbox 文本。
---@return string[] messages 消息列表。
function M.split_mbox(mbox) end

--- 解析 mbox 文本。
---@param mbox string mbox 文本。
---@return mbox_message[] messages 消息列表。
function M.parse(mbox) end

--- 解析单封消息。
---@param message string 消息文本。
---@return mbox_message parsed 解析结果。
function M.parse_message(message) end

return M
