import { ServerConfig } from './types.js'; /** * 设置工作区根目录(来自 MCP roots/list 或 tool 参数 workspaceRoot)。 */ export declare function setClientProjectRoot(path: string | null): void; /** * 扩展配置类型(包含 Charles 相关配置) */ export interface ExtendedConfig extends ServerConfig { /** 单个域名(兼容旧配置) */ charlesTargetDomain?: string; /** 多环境域名数组:线上、预发、测试等,生成 Charles 时为每个域名精准映射 */ charlesTargetDomains?: string[]; charlesTargetPort?: number; } /** * 加载配置 * 配置文件查找顺序:项目根 mockCharlesConfig.json → 项目根 config.json → mockServe 包根 mockCharlesConfig.json * 这样在 MCP 运行时 cwd 不是工作区根目录时,仍能读到包内的配置文件 */ export declare function loadConfig(): ServerConfig; /** * 确保规则目录存在 */ export declare function ensureRulesDirectory(rulesPath: string): void; /** * 检查端口是否可用(在 127.0.0.1 上检测,与实际绑定地址一致,避免 0.0.0.0 vs 127.0.0.1 的误判) */ export declare function isPortAvailable(port: number): Promise; /** * 查找可用端口 */ export declare function findAvailablePort(startPort: number, maxAttempts?: number): Promise; /** * 获取配置实例(每次调用时重新加载,确保使用最新的项目根目录) * 注意:不再在此处自动创建目录,目录仅在真正写入文件时按需创建 */ export declare function getConfig(): ServerConfig; /** * 检查用户项目根目录下是否存在 mockCharlesConfig.json 配置文件。 * 若不存在,返回包含错误信息和配置模版的提示字符串;存在则返回 null。 */ export declare function checkProjectConfig(): string | null; /** * 获取工作区根目录(供其他模块使用)。 * 仅由 MCP Roots 或 tool 参数 workspaceRoot(WORKSPACE_ROOT_PARAM)设置,未设置时回退 process.cwd()。 */ export declare function getWorkspaceRoot(): string; export declare function setActualProxyPort(port: number): void; /** 返回当前进程实际监听的代理端口,未启动时返回 null */ export declare function getActualProxyPort(): number | null; /** * 将当前实际代理端口写入项目 _mock-rules 目录,供生成 Charles 配置时读取(含跨进程场景)。 * 若目录尚未创建(用户还未使用任何 tool),写入会静默失败,不产生副作用。 */ export declare function writeActualProxyPortFile(port: number): void; /** * 从项目 _mock-rules 目录读取已保存的实际代理端口(用于生成 Charles 时与当前进程不一致的情况) * @param workspaceRoot 工作区根目录,不传则用 getWorkspaceRoot() */ export declare function readActualProxyPortFromFile(workspaceRoot?: string): number | null; /** * 生成 Charles 映射时使用的「有效代理端口」:当前进程实际端口 → 项目内保存的端口文件 → 配置端口 → 7979 */ export declare function getEffectiveProxyPortForCharles(workspaceRoot?: string): number; /** * 获取占用端口的进程 PID */ export declare function getProcessIdByPort(port: number): Promise; /** * 关闭占用端口的进程 */ export declare function killProcessByPort(port: number): Promise; //# sourceMappingURL=config.d.ts.map