/**
 * autoApproveInjector.js — Cursor MCP autoApprove 自动注入
 *
 * "首次手动授权，后续自动" 的安全实现：
 *
 *   1. 首次 bootstrap 成功 → 写标记文件 `.autosnippet/.auto-approve-pending`
 *      （不碰 mcp.json，避免 Cursor 检测配置变更重启 MCP Server 中断当前 session）
 *   2. 下次 MCP Server 启动 → 检查标记 → 注入 autoApprove → 删标记
 *      （写入发生在连接建立前，安全无副作用）
 *   3. `asd upgrade` → 直接注入（不在 MCP session 中执行，无中断风险）
 *
 * 为什么不在 bootstrap 期间直接写 mcp.json？
 *   Cursor 监听 .cursor/mcp.json 变更，可能触发 MCP Server 重启，
 *   导致内存中的 BootstrapSession 丢失，后续 submit/complete 全部失败。
 *
 * @module external/mcp/autoApproveInjector
 */
/** Minimal logger interface for auto-approve operations */
interface AutoApproveLogger {
    info?(...args: unknown[]): void;
    warn?(...args: unknown[]): void;
}
/**
 * 所有 agent 层工具（用户日常使用的 15 个）
 * admin 层工具（enrich_candidates, knowledge_lifecycle, validate_candidate, check_duplicate）
 * 不加入自动授权 — 保留对高级操作的手动确认。
 */
declare const AUTO_APPROVE_TOOLS: string[];
/**
 * 写入标记文件 — 标记首次 bootstrap 已完成，下次启动时注入 autoApprove
 *
 * 在 bootstrap handler 中调用。只写一个轻量标记文件到 .autosnippet/，
 * 不触碰 .cursor/mcp.json，避免 Cursor 检测配置变更重启 MCP Server。
 *
 * @param projectRoot 项目根目录
 */
export declare function markAutoApproveNeeded(projectRoot: string, logger?: AutoApproveLogger): boolean;
/**
 * 向 .cursor/mcp.json 中 autosnippet 服务器注入 autoApprove 工具列表
 *
 * @param projectRoot 项目根目录
 * @param [logger] 日志实例（可选）
 * @returns 是否成功写入（false = 文件不存在或无 autosnippet 配置）
 */
export declare function injectAutoApprove(projectRoot: string, logger?: AutoApproveLogger): boolean;
/**
 * MCP Server 启动时调用 — 检查标记文件，如有则注入 autoApprove 并清除标记
 *
 * 注入发生在 MCP 连接建立之前，写入 mcp.json 不影响当前启动。
 * Cursor 下次读取 mcp.json 时（重启或新窗口）即生效。
 */
export declare function applyPendingAutoApprove(projectRoot: string, logger?: AutoApproveLogger): void;
export { AUTO_APPROVE_TOOLS };
