export type ConfirmFn = (toolName: string, args: Record) => Promise; export declare class PermissionManager { private approved; private promptLock; private confirmFn; constructor(confirmFn: ConfirmFn); /** * 检查工具是否获得执行许可。 * - 已在本会话批准 → 直接放行(记忆生效,fast-path 无锁同步读,JS 单线程安全) * - 未批准 → 双检锁:锁内 re-check 后再询问,避免并发触发同一工具时重复弹窗; * 确认则记入 approved 并放行,拒绝则返回 false */ check(toolName: string, args: Record): Promise; isApproved(toolName: string): boolean; /** 直接批准某工具(会话重载时恢复已批准记忆,不走 confirmFn)。 */ approve(toolName: string): void; /** 本会话已批准的工具名列表(供 /permissions 命令展示) */ getApproved(): string[]; /** 清空记忆(/clear 时调用) */ reset(): void; private runLocked; } //# sourceMappingURL=permission-manager.d.ts.map