/**
 * 模板清单 I/O — 哈希计算、清单构建、持久化。
 *
 * 供 CLI sync-templates 和测试消费。
 * 不改动已有引擎函数签名，纯新增工具层。
 */
import type { TemplateManifestEntry } from "../knowledge/knowledge_template_contracts.js";
export type { TemplateManifestEntry };
/** 计算内容的 SHA-256 十六进制摘要 */
export declare function sha256Hex(content: string | Buffer): string;
/** 计算单个文件的 SHA-256，文件不存在返回 null */
export declare function hashFile(filePath: string): string | null;
/** 批量计算文件哈希，跳过不存在的文件 */
export declare function computeFileHashes(filePaths: string[]): Map<string, string>;
/** 递归创建目录并写入文件 */
export declare function writeFileSyncRecursive(filePath: string, content: string | Buffer): void;
/**
 * 从模板源目录构建清单。
 *
 * 扫描 templates/ 目录下的文件，交叉引用 BUILTIN_CONSUMABLE_ASSETS
 * 获取 asset_id 和 asset_kind，计算源文件哈希。
 *
 * target_path 映射规则：
 *   templates/{sub} → .soloforge/knowledge/{sub}
 *   templates/patterns/{file} → .soloforge/knowledge/patterns/{file}（全局模式项目级副本）
 *   templates/scaffolds/* → 不纳入模板同步（由 scaffold 命令管理）
 */
export interface ManifestBuildStats {
    included: number;
    skipped_internal: number;
    skipped_unregistered: number;
    skipped_scaffold: string[];
}
export declare function buildTemplateManifestFromSource(sourceDir: string, packageVersion: string): TemplateManifestEntry[];
export declare function buildTemplateManifestWithStats(sourceDir: string, packageVersion: string): {
    manifest: TemplateManifestEntry[];
    stats: ManifestBuildStats;
};
/** 读取项目已安装清单，不存在返回 null */
export declare function loadProjectManifest(projectPath: string): TemplateManifestEntry[] | null;
/** 写入项目已安装清单 */
export declare function saveProjectManifest(projectPath: string, manifest: TemplateManifestEntry[]): void;
/** 版本文件结构 */
export interface ProjectVersionInfo {
    project_schema_version: string;
    soloforge_package_version: string;
    contract_registry_version: string;
    template_manifest_version: string;
    adapter_prompt_version: string;
    created_at: string;
    last_migrated_at: string;
}
/** 读取项目版本信息，不存在返回 null */
export declare function loadProjectVersion(projectPath: string): ProjectVersionInfo | null;
/** 写入项目版本信息 */
export declare function saveProjectVersion(projectPath: string, version: ProjectVersionInfo): void;
//# sourceMappingURL=template_manifest_io.d.ts.map