import { MockRule, RuleMatchResult } from './types.js'; /** * 规则管理器 */ export declare class RulesManager { private rules; private rulesPath; private fileWatcher; private reloadTimeout; /** 上次从磁盘加载时的文件 mtimeMs,用于请求前检测文件是否被外部修改 */ private lastLoadMtimeMs; constructor(); /** * 启动文件监听 */ private startFileWatcher; /** * 停止文件监听 */ private stopFileWatcher; /** * 从文件加载规则 */ private loadRules; /** * 磁盘上的 rules.json 是否比上次加载时更新(外部修改了文件需重载) * 部分编辑器原子写入会导致 watchFile 不触发,请求前用此兜底 */ isFileNewerThanLoad(): boolean; /** * 当前规则文件路径(供代理等判断是否需重载) */ getRulesPath(): string; /** * 重新加载规则(用于文件修改后手动刷新) */ reloadRules(): void; /** * 销毁规则管理器(清理资源) */ destroy(): void; /** * 保存规则到文件 */ private saveRulesToFile; /** * 持久化所有规则到 mockCharlesConfig.json 中 rulesPath 指向的文件(项目 _mock-rules/rules.json) */ private persistRules; /** * 生成 Charles 配置文件 * 如果配置中指定了目标域名,则自动生成 */ private generateCharlesConfig; /** * 添加规则 */ addRule(rule: Omit): MockRule; /** * 删除规则 */ removeRule(id: string): boolean; /** * 更新规则 */ updateRule(id: string, updates: Partial>): MockRule | null; /** * 获取所有规则 */ getAllRules(): MockRule[]; /** * 根据 ID 获取规则 */ getRuleById(id: string): MockRule | undefined; /** * 根据 URL 和方法精确查找规则(用于添加时判断是否已存在,避免重复) */ getRuleByUrlAndMethod(url: string, method: string): MockRule | undefined; /** * 添加或更新规则:若已存在相同 url+method 的规则则覆盖,否则新增(避免同一接口多条) */ addOrUpdateRule(rule: Omit): MockRule; /** * 匹配规则 */ matchRule(url: string, method: string): RuleMatchResult; /** * URL 匹配(支持通配符) */ private matchUrl; /** * 根据 URL 和方法删除规则 */ removeRuleByUrlAndMethod(url: string, method: string): boolean; } /** * 获取规则管理器实例 */ export declare function getRulesManager(): RulesManager; /** * 重新加载规则(供外部调用) */ export declare function reloadRules(): void; //# sourceMappingURL=rules.d.ts.map