
---@class socket_tp_connection*
local socket_tp_connection = {}

---@class socket_tp*
---@field TIMEOUT number 默认超时。
---@type socket_tp*
local M = {}

M.TIMEOUT = 60

--- 连接 TCP 文本协议服务器。
---@param host string 主机名。
---@param port integer 端口。
---@param timeout? number 超时。
---@param create? function socket 创建函数。
---@return socket_tp_connection*? connection 连接对象。
---@return string? errMsg 错误信息。
function M.connect(host, port, timeout, create) end

--- 检查服务器回复码。
---@param ok string|string[]|fun(code:integer, reply:string):any 期望回复码。
---@return integer|nil code 回复码。
---@return string? reply 回复文本或错误。
function socket_tp_connection:check(ok) end

--- 发送命令。
---@param command string 命令。
---@param argument? string 参数。
---@return integer|nil sent 已发送字节数。
---@return string? errMsg 错误信息。
function socket_tp_connection:command(command, argument) end

--- 发送数据。
---@param data string 数据。
---@return integer|nil sent 已发送字节数。
---@return string? errMsg 错误信息。
function socket_tp_connection:send(data) end

--- 接收数据。
---@param pattern? string|integer 接收模式。
---@return string|nil data 数据。
---@return string? errMsg 错误信息。
function socket_tp_connection:receive(pattern) end

--- 关闭连接。
---@return integer ok 成功返回 1。
function socket_tp_connection:close() end

return M
