/**
 * change-classifier.ts — 文件变更分类器（Phase 2A）
 *
 * 将文件变更分类为三种动作之一：
 *   - `cold`   — 冷重启（配置文件、插件、package.json、tsconfig.json、.env 等）
 *   - `soft`   — 热替换（src/ 下的源码文件：.ts/.js/.mjs/.cjs）
 *   - `ignore` — 忽略（node_modules、dist、.git、测试文件、文档等）
 *
 * 分类器在 FileWatcher 的 onFileChange 回调中调用，
 * 决定变更文件应触发 Cold Restart 还是 Soft Reload。
 *
 * 支持用户自定义分类规则：
 *   - coldPatterns: 额外的冷重启文件模式（glob 字符串）
 *   - ignorePatterns: 额外的忽略文件模式（glob 字符串）
 *
 * @module lib/dev/change-classifier
 * @see 11c-file-watcher.md §2（变更分类器）
 * @see 11-hot-reload.md §3（文件分类规则）
 * @see IMPLEMENTATION-PLAN.md 任务 2.3
 */
/**
 * 变更分类结果
 */
export interface ChangeClassification {
    /** 应执行的动作：cold=冷重启, soft=热替换, ignore=忽略 */
    action: "cold" | "soft" | "ignore";
    /** 分类原因（调试/日志用） */
    reason: string;
}
/**
 * 用户自定义分类选项
 *
 * 通过 config.dev.coldPatterns / config.dev.ignorePatterns 配置。
 * 用户自定义规则优先级高于内置规则。
 */
export interface ClassifierOptions {
    /**
     * 额外的冷重启文件模式（glob 风格字符串）
     *
     * 匹配的文件将触发冷重启而非热替换。
     * 适用于业务中需要冷重启的特殊文件（如数据库 schema 变更文件）。
     *
     * 示例: `['src/lib/database-schema.ts', 'src/lib/migrations/...']`
     */
    coldPatterns?: string[];
    /**
     * 额外的忽略文件模式（glob 风格字符串）
     *
     * 匹配的文件不会触发任何重载动作。
     * 适用于自动生成的文件或不需要监听的文件。
     *
     * 示例: `['src/generated/...', 'src/.../*.generated.ts']`
     */
    ignorePatterns?: string[];
}
/**
 * classifyChange — 对单个文件变更进行分类
 *
 * 分类优先级（从高到低）：
 *   1. 用户自定义 ignorePatterns → ignore
 *   2. 用户自定义 coldPatterns → cold
 *   3. 内置 IGNORE_PATTERNS → ignore
 *   4. 内置 COLD_PATTERNS → cold
 *   5. src/ 下的源码文件 → soft
 *   6. 其他 → ignore
 *
 * @param relativePath 相对于项目根目录的文件路径（使用 / 分隔符）
 * @param options 用户自定义分类选项（可选）
 * @returns 分类结果（action + reason）
 *
 * @example
 * ```ts
 * classifyChange('src/routes/user.ts')
 * // → { action: 'soft', reason: 'source code change' }
 *
 * classifyChange('src/config/default.ts')
 * // → { action: 'cold', reason: 'config/plugin change: /^src\\/config\\//' }
 *
 * classifyChange('node_modules/express/index.js')
 * // → { action: 'ignore', reason: 'matched ignore pattern: /^node_modules\\//' }
 * ```
 */
export declare function classifyChange(relativePath: string, options?: ClassifierOptions): ChangeClassification;
/**
 * matchGlobPattern — 简易 glob 模式匹配
 *
 * 支持的 glob 语法（覆盖 vext 用户常见需求）：
 *   - `*`  — 匹配路径段内的任意字符（不含 /）
 *   - `**` — 匹配任意层级的路径（含 /）
 *   - 字面量 — 精确匹配
 *
 * 不支持的高级语法：
 *   - `?`（单字符）、`[abc]`（字符集）、`{a,b}`（分支）
 *   - 这些在 dev 配置场景中极少使用，如需支持可后续扩展
 *
 * @param filePath 被匹配的文件路径（已规范化为 / 分隔符）
 * @param pattern glob 模式字符串
 * @returns 是否匹配
 */
export declare function matchGlobPattern(filePath: string, pattern: string): boolean;
/**
 * 获取内置冷重启模式列表的副本
 *
 * 仅供测试和调试使用，生产代码应使用 classifyChange() 函数。
 */
export declare function getColdPatterns(): readonly RegExp[];
/**
 * 获取内置忽略模式列表的副本
 *
 * 仅供测试和调试使用，生产代码应使用 classifyChange() 函数。
 */
export declare function getIgnorePatterns(): readonly RegExp[];
