import { Context } from 'koishi';
import { Config, PendingCave } from '..';
import { IdManager } from './IdManager';
/**
 * 管理洞审核相关操作的类
 */
export declare class AuditManager {
    private ctx;
    private config;
    private idManager;
    private logger;
    /**
     * 创建审核管理器实例
     * @param ctx - Koishi 上下文
     * @param config - 配置对象
     * @param idManager - ID 管理器实例
     */
    constructor(ctx: Context, config: Config, idManager: IdManager);
    /**
     * 处理审核操作
     * @param pendingData - 待审核的洞数据数组
     * @param isApprove - 是否通过审核
     * @param caveFilePath - 洞数据文件路径
     * @param resourceDir - 资源目录路径
     * @param pendingFilePath - 待审核数据文件路径
     * @param session - 会话对象
     * @param targetId - 目标洞ID（可选）
     * @returns 处理结果消息
     */
    processAudit(pendingData: PendingCave[], isApprove: boolean, caveFilePath: string, resourceDir: string, pendingFilePath: string, session: any, targetId?: number): Promise<string>;
    /**
     * 处理单条审核
     * @param pendingData - 待审核的洞数据数组
     * @param isApprove - 是否通过审核
     * @param caveFilePath - 洞数据文件路径
     * @param resourceDir - 资源目录路径
     * @param pendingFilePath - 待审核数据文件路径
     * @param targetId - 目标洞ID
     * @param session - 会话对象
     * @returns 处理结果消息
     * @private
     */
    private handleSingleAudit;
    /**
     * 处理批量审核
     * @param pendingData - 待审核的洞数据数组
     * @param isApprove - 是否通过审核
     * @param caveFilePath - 洞数据文件路径
     * @param resourceDir - 资源目录路径
     * @param pendingFilePath - 待审核数据文件路径
     * @param session - 会话对象
     * @returns 处理结果消息
     * @private
     */
    private handleBatchAudit;
    /**
     * 发送审核消息给管理员
     * @param cave - 待审核的洞数据
     * @param content - 消息内容
     * @param session - 会话对象
     */
    sendAuditMessage(cave: PendingCave, content: string, session: any): Promise<void>;
    /**
     * 删除媒体文件
     * @param cave - 洞数据
     * @param resourceDir - 资源目录路径
     * @private
     */
    private deleteMediaFiles;
    /**
     * 清理元素数据用于保存
     * @param elements - 元素数组
     * @param keepIndex - 是否保留索引
     * @returns 清理后的元素数组
     * @private
     */
    private cleanElementsForSave;
    /**
     * 发送消息
     * @param session - 会话对象
     * @param key - 消息key
     * @param params - 消息参数
     * @param isTemp - 是否为临时消息
     * @param timeout - 临时消息超时时间
     * @returns 空字符串
     * @private
     */
    private sendMessage;
}
