/** CLI 壳(spawn)与受控交接(§3.7 respawn)传入的进程参数。 */ export interface DaemonArgs { /** --port N:面板+/mcp 共用监听端口(spec §3.2 单端口双路由);缺席走面板端口链。 */ port?: number; /** --respawn-of <旧pid>:单例检测豁免旗标(§3.4 交接窗口)。 */ respawnOf?: number; } /** 参数解析(纯函数,测试直测)。值缺失/非数字 → undefined(Number→NaN 过滤), * 不抛——拼参失误的兜底语义是"按未传处理",非法端口值让 listen 阶段显式失败。 */ export declare function parseDaemonArgs(args: string[]): DaemonArgs; /** * 工具档位解析(终审 Fix-2 收口):与 index.ts startMcpServer 的 stdio 生产语义同链—— * `GODOT_MCP_PROFILE` 优先,缺席落 `GODOT_MCP_MODE` 的 minimal/lite/full legacy 档, * 兜底 basic(G7 默认)。daemon 无 --profile/--minimal/--lite CLI 参数面(配置入口唯一 * 防两通道漂移,spec §3.10 ⑦),故只接 env。此前 daemon 构造 GodotServer 不传 options, * 落 GodotServer 兜底 full 档(GodotServer.ts `mode ?? 'full'`),与 stdio 默认 basic * 决策悬空——本函数即构造入参的唯一来源。纯函数注入 env 直测;两处解析链若单侧 * 变更需同步另一侧(index.ts :111-125 ↔ 此处,无机械门禁靠注释互指)。 */ export declare function resolveDaemonToolMode(env: NodeJS.ProcessEnv): string; /** 启动门依赖(可测性拆分:决策段零副作用注入,组装段才碰真实进程设施)。 */ export interface DaemonStartupGateDeps { /** env 注入(缺省生产侧传 process.env;测试传字面量对象)。 */ env: NodeJS.ProcessEnv; respawnOf?: number; /** registry 目录注入(测试隔离);缺省 ~/.godot-mcp/web-gui/。 */ registryDir?: string; } /** * daemon 启动门(spec §3.3 面板必起 + §3.4 入口层单例检测,双层之②;CLI 壳是①)。 * 违规抛 Error(拒绝启动);通过则 resolve。零副作用——不构造 server、不监听端口, * 单测直接覆盖决策分支;runDaemon 在一切组装之前调它。 * 活 daemon 判定复用 listRegistrations 内置探活(默认 process.kill(pid,0) 同款 * try/catch,死条目顺手清)——返回集内即已探活,不另抄一份 isPidAlive。 */ export declare function runDaemonStartupGate(deps: DaemonStartupGateDeps): Promise; /** * daemon 进程组装(薄壳,批 A;端到端真机验收批 C)。 * 顺序(spec §3.1):启动门 → 启动序裁剪(无 TUI/无 self-update/无 stdin 钩子,m-1/m-2) * → token → GodotServer(daemon 模式,不 connect stdio)→ 面板(单端口双路由) * → /mcp 端点 → 保活/审计/退出链。 */ export declare function runDaemon(args: string[]): Promise;