export interface UserSettings { version: 1; /** Godot 可执行文件绝对路径(空/缺席 = 用启动时 env 快照) */ godotPath?: string; /** 项目白名单根(绝对路径数组;空/缺席 = 用启动时 env 快照) */ allowedProjectPaths?: string[]; } /** 测试隔离出口(对齐 godot-finder clearGodotPathCache 模式):重置快照,下次 ensure 重定格。 */ export declare function resetUserSettingsSnapshotForTest(): void; /** settings.json 路径;dir 注入为测试隔离通道。 */ export declare function getUserSettingsFile(dir?: string): string; /** 容错读:文件缺失/JSON 损坏/结构异常 → 空 settings(warn 留痕,对齐 projects.json 容错)。 */ export declare function readUserSettings(dir?: string): Promise; /** 原子写(tmp + rename + 0o600,projects-store.ts writeRaw 同款)。 */ export declare function writeUserSettings(s: UserSettings, dir?: string): Promise; /** * 应用设置到当前进程(热生效)。 * 字段非空 → 覆盖 env;字段空/缺席 → 恢复启动快照(快照有值则恢复,无则删除 env)。 * 末尾清 godot 路径缓存(_pathCache 命中只验存在性+白名单,不重读 GODOT_PATH env, * 故 env 变更后必须 clearGodotPathCache 才会被下次 findGodot 重新解析)。 */ export declare function applyUserSettings(s: UserSettings): void; /** * server 启动重放:定格快照 → 读 settings.json → 应用。 * 文件缺失/为空时 apply 空对象 = 恢复快照 = 幂等无害(启动时 env === 快照)。 * 必须在 index.ts 的「ALLOWED_PROJECT_PATHS 未配置」提示之前调用(否则提示按旧 env 误报)。 */ export declare function applyUserSettingsAtStartup(dir?: string): Promise; /** env 侧判定:env 是否已配置任一 Godot 生效配置(GODOT_PATH 或 ALLOWED_PROJECT_PATHS)。 * ALLOWED_PROJECT_PATHS 解析对齐 path-utils getAllowedProjectPaths 的 split(';')+ * filter 语义(纯函数不引 path-utils,防依赖面扩张;语义变更须两处同步)。 * 空洞值(空串/纯分号)不算配置。 */ export declare function hasEnvGodotConfig(env: NodeJS.ProcessEnv): boolean; /** settings.json 与 env 合并判定首启预检:两者均无有效 Godot 路径/白名单 → true * (调用方显示显著提示;daemon 照常起,不阻断)。消费方: * - cli/daemon.ts 的 start 壳(CLI 进程不经启动序重放,须 settings+env 合并读); * - web-gui/server.ts 的 hello.settingsConfigured 经 hasEnvGodotConfig(daemon/stdio * 入口都经 applyUserSettingsAtStartup 重放,env 即合并生效视图,判 env 即完备)。 * 两消费方共用本族纯函数,防 CLI 与面板判定漂移(V1 验收发现实缺的根因之一)。 */ export declare function isGodotConfigMissing(s: UserSettings, env: NodeJS.ProcessEnv): boolean;