/** orphan 清理依赖的 process-state 状态/操作(参数注入破循环)。 * Task 2(设计 §4.4):spawnedPids 归属化 Map(pid → projectKey);排除集合从 * runningPid 单值改为 activePids(全部桶内活进程)——多桶并存时周期扫描不误杀非活跃窗口。 */ export interface OrphanCleanupCtx { spawnedPids: Map; activePids: number[]; isPidAlive: (pid: number) => boolean; killPidTree: (pid: number) => void; } /** 测试隔离用:重置 per-project 30s 节流表(由 process-state.resetState 调用)。 */ export declare function resetOrphanScanTime(): void; /** * 清理本会话 orphan Godot 进程(V-01 第二层,会话隔离版)。状态经 ctx 注入。 * * 默认(第一层):遍历 ctx.spawnedPids,清"脱离 activePids 管理且仍存活"的 PID。 * - 跳过 activePids(任一桶正在管理的进程不杀) * - 已退出 PID 惰性移除 * - 存活且脱离管理 → killPidTree(双平台清整树) * * opt-in(第二层,崩溃恢复兜底):options.fullSystemScan === true 且 projectDir 时, * 走全系统扫描(清命令行含 projectDir 的所有 Godot,跳过 activePids)。 * * IPC-R1/R5:显式 options 参数,不读 process.env(消除 env 全局状态竞态)。 * 30s 节流(per-project:按 projectDir 参数分 key,设计 §4.4 M-5——多桶并存时 * A 的周期扫描不节流 B 的 orphan 清理)。返回清理数。 */ export declare function killOrphanGodotProcesses(ctx: OrphanCleanupCtx, projectDir?: string, options?: { fullSystemScan?: boolean; }): Promise;