
--------------------------------------------------------------------------------
-- LuaSocket MIME 模块
--------------------------------------------------------------------------------

---@type ltn12*
local ltn12 = require("ltn12")

---@type mime_core*
local core = require("mime.core")

---@class mime*: mime_core*
---@field encodet table 编码过滤器表
---@field decodet table 解码过滤器表
---@field wrapt table 换行过滤器表
---@type mime*
local M = core

--- Base64 编码块过滤器
---@param chunk string 数据块
---@param context? string 上下文
---@return string output 输出
---@return string context 新上下文
function M.b64(chunk, context) end

--- Base64 解码块过滤器
---@param chunk string 数据块
---@param context? string 上下文
---@return string output 输出
---@return string context 新上下文
function M.unb64(chunk, context) end

--- Quoted-printable 编码块过滤器
---@param chunk string 数据块
---@param context? string 上下文
---@param marker? string 换行标记
---@return string output 输出
---@return string context 新上下文
function M.qp(chunk, context, marker) end

--- Quoted-printable 解码块过滤器
---@param chunk string 数据块
---@param context? string 上下文
---@return string output 输出
---@return string context 新上下文
function M.unqp(chunk, context) end

--- 文本换行过滤器
---@param chunk string 数据块
---@param length? integer 行长度
---@param left? integer 剩余长度
---@return string output 输出
---@return integer left 剩余长度
function M.wrp(chunk, length, left) end

--- Quoted-printable 换行过滤器
---@param chunk string 数据块
---@param length? integer 行长度
---@param left? integer 剩余长度
---@return string output 输出
---@return integer left 剩余长度
function M.qpwrp(chunk, length, left) end

--- 行尾规范化过滤器
---@param chunk string 数据块
---@param context? any 上下文
---@param marker? string 行尾标记
---@return string output 输出
---@return any context 新上下文
function M.eol(chunk, context, marker) end

--- SMTP 点转义过滤器
---@param chunk string 数据块
---@param context? any 上下文
---@return string output 输出
---@return any context 新上下文
function M.dot(chunk, context) end

--- 创建编码过滤器
---@param name? 'base64'|'quoted-printable' 编码名称
---@param opt1? any 选项 1
---@param opt2? any 选项 2
---@return function filter LTN12 过滤器
function M.encode(name, opt1, opt2) end

--- 创建解码过滤器
---@param name? 'base64'|'quoted-printable' 解码名称
---@param opt1? any 选项 1
---@param opt2? any 选项 2
---@return function filter LTN12 过滤器
function M.decode(name, opt1, opt2) end

--- 创建换行过滤器
---@param name? 'text'|'base64'|'quoted-printable' 换行模式
---@param opt1? any 选项 1
---@param opt2? any 选项 2
---@return function filter LTN12 过滤器
function M.wrap(name, opt1, opt2) end

--- 创建行尾规范化过滤器
---@param marker? string 行尾标记，默认 CRLF
---@return function filter LTN12 过滤器
function M.normalize(marker) end

--- 创建 SMTP 点转义过滤器
---@return function filter LTN12 过滤器
function M.stuff() end

return M
