export interface SearchReplaceResult {
    content: string;
    applied: boolean;
    matchLevel: 'exact' | 'trimEnd' | 'indentNormalize' | 'none';
}
/**
 * 通用「搜索-替换」工具
 *
 * 适用场景：AI Agent / Code Mod 需要根据"搜索-替换对"对源文件进行原地修改的场景。
 *
 * 提供两个函数：
 *   - cleanLineNumberPrefix：清理 AI 输出 search/replace 块时常带的行号前缀（如 "12| " "12 | "）
 *   - applySearchReplace：在源代码中查找 search 并替换为 replace，按 "精确 → 行级 → 子串" 三级策略匹配
 */
/**
 * 清理 AI 输出 search/replace 块时常带的行号前缀
 *
 * AI 在生成搜索字符串时，有时会无意把行号也带上，导致与源文件无法精确匹配。
 * 本函数支持 5 种常见格式：
 *   - "12| code"   → "code"
 *   - "12 | code"  → "code"
 *   - "12  code"   → "code"  (多空格分隔，仅当首行匹配且行号递增时才认为是行号)
 *   - "12: code"   → "code"
 *   - "12. code"   → "code"
 *
 * 为避免误删（如某些 markdown / 注释开头是数字），仅当：
 *   - 首行能匹配到行号格式
 *   - 后续行行号严格递增（差值为 1）
 * 时才视为带行号前缀，全部清理。
 *
 * @param text 原始字符串（来自 AI 输出的 search/replace 块）
 * @returns 清理后的字符串；不像行号前缀时原样返回
 */
export declare function cleanLineNumberPrefix(text: string): string;
/**
 * 在源代码中查找 search 并替换为 replace，按 3 级策略匹配
 *
 * 策略：
 *   1. 精确匹配：原样查找 search
 *   2. 行级匹配：去除每行首尾空白后逐行对比（应对 AI 输出与源文件缩进不一致）
 *   3. 子串匹配：查找首行 trim 后的子串位置，从该位置开始截取与 search 等长的范围替换
 *
 * @param source 源代码字符串
 * @param search 要查找的字符串（可能被 AI 带了行号前缀，函数会自动清理）
 * @param replace 替换为的新字符串（同上，自动清理行号前缀）
 * @returns 替换后的字符串；查找失败返回 null
 */
export declare function applySearchReplace(fileContent: string, rawSearch: string, rawReplace: string): SearchReplaceResult;
