---@meta profile

--------------------------------------------------------------------------------
-- iOS Profile C 模块
--------------------------------------------------------------------------------

---@alias profile_filter_flags integer

---@class profile_info*
---@field PayloadIdentifier? string 描述文件标识
---@field PayloadUUID? string 描述文件 UUID
---@field PayloadDisplayName? string 显示名称
---@field PayloadDescription? string 描述
---@field PayloadOrganization? string 组织名称
---@field PayloadType? string payload 类型
---@field PayloadVersion? integer payload 版本
---@field PayloadRemovalDisallowed? boolean 是否禁止移除
---@field PayloadContent? table payload 内容
---@field [string] any 其他系统返回字段

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

--- 导入描述文件，交由系统确认安装。
---@param path string 描述文件路径
---@param install? boolean 是否直接安装；默认 false
---@return string? taskIdentifier 任务标识
---@return string? errMsg 错误信息
function M.import(path, install) end

--- 安装描述文件。
---@param path string 描述文件路径
---@param install? boolean 是否直接安装；默认 true
---@return string? taskIdentifier 任务标识
---@return string? errMsg 错误信息
function M.install(path, install) end

--- 列出已安装描述文件。
---@param filterFlags? profile_filter_flags 过滤标记，默认 1
---@return profile_info*[] profiles 描述文件列表
function M.list(filterFlags) end

--- 按过滤标记列出已安装描述文件。
---@param filterFlags? profile_filter_flags 过滤标记，默认 1
---@return profile_info*[] profiles 描述文件列表
function M.filter(filterFlags) end

--- 获取指定标识的描述文件。
---@param identifier string 描述文件标识
---@return profile_info*? profile 描述文件信息
function M.fetch(identifier) end

--- 移除指定标识的描述文件。
---@param identifier string 描述文件标识
function M.remove(identifier) end

--- 清除匹配过滤标记的描述文件。
---@param filterFlags? profile_filter_flags 过滤标记，默认 1
---@return integer count 移除数量
function M.clear(filterFlags) end

return M
