/**
 * FileProtection — 非 AutoSnippet 独有文件的写入保护
 *
 * 保护逻辑：
 *   - 如果目标文件不存在 → 直接写入（首次生成）
 *   - 如果目标文件存在且包含 AutoSnippet 签名 → 允许覆盖（我们生成的）
 *   - 如果目标文件存在但不包含 AutoSnippet 签名 → 拒绝覆盖（用户原有文件）
 *
 * 签名标记（任意一个匹配即视为 AutoSnippet 所有）：
 *   - "Auto-generated by AutoSnippet"
 *   - "Auto-generated by [AutoSnippet]"
 *   - "auto-generated by autosnippet" (case-insensitive)
 */
/**
 * 检查文件是否可以被 AutoSnippet 安全写入
 *
 * @param filePath 目标文件绝对路径
 * @returns }
 *   - canWrite: true  → 可以安全写入
 *   - canWrite: false → 文件存在且非 AutoSnippet 生成，不应覆盖
 */
export declare function checkWriteSafety(filePath: string): {
    canWrite: boolean;
    reason: string;
};
/**
 * 安全写入文件 — 带保护机制
 *
 * @param filePath 目标文件绝对路径
 * @param content 文件内容
 * @param [options.force=false] 强制覆盖（忽略保护）
 * @param [options.logger] 日志器
 * @returns }
 */
export declare function safeWriteFile(filePath: string, content: string, options?: {
    force?: boolean;
    logger?: {
        info?: (...args: unknown[]) => void;
    };
}): {
    written: boolean;
    reason: string;
    filePath: string;
};
/**
 * 安全复制文件 — 带保护机制
 *
 * @param srcPath 源文件路径
 * @param destPath 目标文件路径
 * @param [options.force=false] 强制覆盖
 * @param [options.logger] 日志器
 * @returns }
 */
export declare function safeCopyFile(srcPath: string, destPath: string, options?: {
    force?: boolean;
    logger?: {
        info?: (...args: unknown[]) => void;
    };
}): {
    written: boolean;
    reason: string;
    filePath: string;
};
export type MergeStrategy = 'create' | 'replace-section' | 'rewrite-legacy' | 'append-section';
/**
 * 智能合并 AutoSnippet 管理区段到目标文件
 *
 * 四种场景：
 *   1. 文件不存在          → 创建完整文件（header + markers）
 *   2. 文件有 begin/end 标记 → 仅替换标记区段（增量更新）
 *   3. 文件有旧版 AutoSnippet 签名但无标记 → 全量重写并加标记（旧版迁移）
 *   4. 文件无签名无标记（用户文件）→ 追加标记区段到末尾（共存）
 */
export declare function mergeSection(filePath: string, section: string, options?: {
    header?: string;
    logger?: {
        info?: (...args: unknown[]) => void;
    };
}): {
    written: boolean;
    strategy: MergeStrategy;
    filePath: string;
};
