/**
 * 模板 Schema 加载器 — 从模板 frontmatter 中解析 artifact_schema 和 process_rules。
 *
 * 职责：
 * 1. 解析模板文件 YAML frontmatter 中的 artifact_schema 字段
 * 2. 解析模板文件 YAML frontmatter 中的 process_rules 字段
 * 3. 提供运行时重载能力（开发时修改模板立即生效）
 *
 * 设计决策：
 * - 模板 frontmatter 中的 schema 定义会覆盖 registry 中的硬编码数据
 * - 无 frontmatter 的模板不报错，使用 registry 默认值
 * - 解析失败时 fallback 到 registry，不阻断流程
 */
import type { ArtifactKind } from "./artifact_contract_registry.js";
import type { ArtifactSchema } from "./artifact_schema_registry.js";
/** 模板 frontmatter 中的 artifact_schema 结构 */
export interface TemplateArtifactSchema {
    kind: string;
    required_sections?: string[];
    required_tables?: string[];
    required_fields?: Record<string, string[]>;
    required_artifacts?: string[];
    forbidden_gaps?: string[];
}
/** 模板 frontmatter 中的单操作类型规则 */
export interface TemplateProcessRules {
    instructions?: string[];
    constraints?: string[];
    input_materials?: string[];
}
/** 模板 frontmatter 中的完整 process_rules 结构 */
export interface TemplateProcessRuleSet {
    extract?: TemplateProcessRules;
    review?: TemplateProcessRules;
    fix?: TemplateProcessRules;
    iterate?: TemplateProcessRules;
}
/** 解析结果 */
export interface ParsedTemplateSchema {
    /** 模板文件名 */
    template_file: string;
    /** 产物类型 */
    kind: ArtifactKind;
    /** 从 frontmatter 解析的 artifact_schema（无则为 null） */
    artifact_schema: TemplateArtifactSchema | null;
    /** 从 frontmatter 解析的 process_rules（无则为 null） */
    process_rules: TemplateProcessRuleSet | null;
    /** 解析错误 */
    error?: string;
}
/**
 * 解析模板文件的 YAML frontmatter。
 *
 * @returns frontmatter 文本（不含 --- 分隔符），无 frontmatter 时返回 null
 */
export declare function extractFrontmatter(content: string): string | null;
/**
 * 从 YAML frontmatter 中解析 artifact_schema 字段。
 *
 * 使用简单的行解析（不依赖 yaml 库），适用于我们控制的结构化格式。
 */
export declare function parseArtifactSchemaFromFrontmatter(frontmatter: string): TemplateArtifactSchema | null;
/**
 * 从 YAML frontmatter 中解析 process_rules 字段。
 */
export declare function parseProcessRulesFromFrontmatter(frontmatter: string): TemplateProcessRuleSet | null;
/**
 * 解析单个模板文件的 schema 和 process_rules。
 */
export declare function parseTemplateFile(templatePath: string): ParsedTemplateSchema | null;
/**
 * 批量加载目录下所有模板的 schema。
 */
export declare function loadTemplateSchemas(templatesDir: string): ParsedTemplateSchema[];
/**
 * 将 ArtifactSchema 转换为可注册到 registry 的格式。
 */
export declare function toArtifactSchema(parsed: ParsedTemplateSchema): ArtifactSchema | null;
//# sourceMappingURL=template_schema_loader.d.ts.map