
--------------------------------------------------------------------------------
-- 大漠点阵识别兼容模块
--------------------------------------------------------------------------------

---@alias dm_color_offset string
---@alias dm_matrix_string string

---@class dm_box*
---@field word? string 识别到的字符
---@field x integer 横坐标
---@field y integer 纵坐标
---@field w integer 宽度
---@field h integer 高度

---@class dm*
---@field _VERSION string 模块版本
---@field _AUTHOR string 作者
local dm = {}

dm._VERSION = "0.1.2"
dm._AUTHOR = "苏泽"

--- 设置字库查找目录
--- 默认目录为 XXT_RES_PATH
---@param dictRootPath string 字库目录路径
function dm.SetPath(dictRootPath) end

--- 设置一个编号对应的字库文件
--- 字库文件路径相对于 SetPath 设置的目录
---@param index integer 字库编号
---@param filename string 字库文件名
function dm.SetDict(index, filename) end

--- 从字符串加载点阵字库到指定编号
---@param index integer 字库编号
---@param dictString string 点阵字库内容
function dm.LoadDict(index, dictString) end

--- 选择当前使用的字库编号
---@param index integer 字库编号
function dm.UseDict(index) end

--- 在指定区域查找字符串
--- 区域为 0, 0, 0, 0 时表示全屏；颜色偏移字符串支持用逗号或竖线分隔多组 `RRGGBB-DDDDDD`
---@param left number 搜索区域左边界
---@param top number 搜索区域上边界
---@param right number 搜索区域右边界
---@param bottom number 搜索区域下边界
---@param text string 待查找文本，多个目标可用 `|` 分隔
---@param colorOffset dm_color_offset 颜色偏移字符串
---@param sim number 相似度，通常为 0.0 到 1.0
---@return boolean found 是否找到
---@return integer x 命中横坐标，未找到返回 -1
---@return integer y 命中纵坐标，未找到返回 -1
---@return dm_box*[] boxes 命中的字符信息
function dm.FindStr(left, top, right, bottom, text, colorOffset, sim) end

--- 识别指定区域文字
--- 区域为 0, 0, 0, 0 时表示全屏；颜色偏移字符串支持用逗号或竖线分隔多组 `RRGGBB-DDDDDD`
---@param left number 识别区域左边界
---@param top number 识别区域上边界
---@param right number 识别区域右边界
---@param bottom number 识别区域下边界
---@param colorOffset dm_color_offset 颜色偏移字符串
---@param sim number 相似度，通常为 0.0 到 1.0
---@return string text 识别结果
---@return dm_box*[] boxes 识别到的字符信息
function dm.Ocr(left, top, right, bottom, colorOffset, sim) end

--- 在指定区域查找点阵字符串
--- 区域为 0, 0, 0, 0 时表示全屏；matrixString 可包含多行点阵
---@param left number 搜索区域左边界
---@param top number 搜索区域上边界
---@param right number 搜索区域右边界
---@param bottom number 搜索区域下边界
---@param matrixString dm_matrix_string 点阵字符串
---@param colorOffset dm_color_offset 颜色偏移字符串
---@param sim number 相似度，通常为 0.0 到 1.0
---@return boolean found 是否找到
---@return integer x 命中横坐标，未找到返回 -1
---@return integer y 命中纵坐标，未找到返回 -1
---@return string text 命中的文字，未找到返回空字符串
---@return dm_box*[] boxes 命中的字符信息
function dm.FindMatrix(left, top, right, bottom, matrixString, colorOffset, sim) end

--- 设置字库查找目录
---@param dictRootPath string 字库目录路径
function dm.setPath(dictRootPath) end

--- 设置一个编号对应的字库文件
---@param index integer 字库编号
---@param filename string 字库文件名
function dm.setDict(index, filename) end

--- 从字符串加载点阵字库到指定编号
---@param index integer 字库编号
---@param dictString string 点阵字库内容
function dm.loadDict(index, dictString) end

--- 选择当前使用的字库编号
---@param index integer 字库编号
function dm.useDict(index) end

--- 在指定区域查找字符串
---@param left number 搜索区域左边界
---@param top number 搜索区域上边界
---@param right number 搜索区域右边界
---@param bottom number 搜索区域下边界
---@param text string 待查找文本，多个目标可用 `|` 分隔
---@param colorOffset dm_color_offset 颜色偏移字符串
---@param sim number 相似度，通常为 0.0 到 1.0
---@return boolean found 是否找到
---@return integer x 命中横坐标，未找到返回 -1
---@return integer y 命中纵坐标，未找到返回 -1
---@return dm_box*[] boxes 命中的字符信息
function dm.findStr(left, top, right, bottom, text, colorOffset, sim) end

--- 识别指定区域文字
---@param left number 识别区域左边界
---@param top number 识别区域上边界
---@param right number 识别区域右边界
---@param bottom number 识别区域下边界
---@param colorOffset dm_color_offset 颜色偏移字符串
---@param sim number 相似度，通常为 0.0 到 1.0
---@return string text 识别结果
---@return dm_box*[] boxes 识别到的字符信息
function dm.ocr(left, top, right, bottom, colorOffset, sim) end

--- 在指定区域查找点阵字符串
---@param left number 搜索区域左边界
---@param top number 搜索区域上边界
---@param right number 搜索区域右边界
---@param bottom number 搜索区域下边界
---@param matrixString dm_matrix_string 点阵字符串
---@param colorOffset dm_color_offset 颜色偏移字符串
---@param sim number 相似度，通常为 0.0 到 1.0
---@return boolean found 是否找到
---@return integer x 命中横坐标，未找到返回 -1
---@return integer y 命中纵坐标，未找到返回 -1
---@return string text 命中的文字，未找到返回空字符串
---@return dm_box*[] boxes 命中的字符信息
function dm.findMatrix(left, top, right, bottom, matrixString, colorOffset, sim) end

--- 设置字库查找目录
---@param dictRootPath string 字库目录路径
function dm.set_path(dictRootPath) end

--- 设置一个编号对应的字库文件
---@param index integer 字库编号
---@param filename string 字库文件名
function dm.set_dict(index, filename) end

--- 从字符串加载点阵字库到指定编号
---@param index integer 字库编号
---@param dictString string 点阵字库内容
function dm.load_dict(index, dictString) end

--- 选择当前使用的字库编号
---@param index integer 字库编号
function dm.use_dict(index) end

--- 在指定区域查找字符串
---@param left number 搜索区域左边界
---@param top number 搜索区域上边界
---@param right number 搜索区域右边界
---@param bottom number 搜索区域下边界
---@param text string 待查找文本，多个目标可用 `|` 分隔
---@param colorOffset dm_color_offset 颜色偏移字符串
---@param sim number 相似度，通常为 0.0 到 1.0
---@return boolean found 是否找到
---@return integer x 命中横坐标，未找到返回 -1
---@return integer y 命中纵坐标，未找到返回 -1
---@return dm_box*[] boxes 命中的字符信息
function dm.find_str(left, top, right, bottom, text, colorOffset, sim) end

--- 在指定区域查找点阵字符串
---@param left number 搜索区域左边界
---@param top number 搜索区域上边界
---@param right number 搜索区域右边界
---@param bottom number 搜索区域下边界
---@param matrixString dm_matrix_string 点阵字符串
---@param colorOffset dm_color_offset 颜色偏移字符串
---@param sim number 相似度，通常为 0.0 到 1.0
---@return boolean found 是否找到
---@return integer x 命中横坐标，未找到返回 -1
---@return integer y 命中纵坐标，未找到返回 -1
---@return string text 命中的文字，未找到返回空字符串
---@return dm_box*[] boxes 命中的字符信息
function dm.find_matrix(left, top, right, bottom, matrixString, colorOffset, sim) end

return dm
