/**
 * 产物 Schema 注册中心 — 集中管理所有 19 种产物类型的结构定义。
 *
 * 职责：
 * 1. 定义 ArtifactSchema 接口（必填章节、表格、字段、附属产物）
 * 2. 注册所有 19 种 ArtifactKind 的完整 schema
 * 3. 提供按 kind 查询、格式化为 prompt 注入文本的能力
 *
 * 设计决策：
 * - Schema 是结构契约（强制），与模板正文（参考范例）解耦
 * - Section 名称取自模板 ## 标题的关键文本，匹配时容许编号前缀
 * - P0 契约（standard_asset_contract.ts）中不完整的 sections 已从此处补齐
 */
import type { ArtifactKind } from "./artifact_contract_registry.js";
/** 产物结构 Schema — 定义输出文档必须满足的结构约束 */
export interface ArtifactSchema {
    /** 产物类型 */
    kind: ArtifactKind;
    /** 必填章节标题（关键文本，用于 markdown heading 匹配） */
    required_sections: string[];
    /** 必填表格关键词（用于 markdown table 匹配） */
    required_tables: string[];
    /** 表格内必填列名（tableName → columnName[]） */
    required_fields?: Record<string, string[]>;
    /** 必填附属产物（文件路径模式或关键词描述） */
    required_artifacts?: string[];
    /** 禁止出现的空白/占位标记 */
    forbidden_gaps?: string[];
    /** 对应的模板文件名（在 templates/artifacts/shared/ 目录下） */
    template_file?: string;
}
/**
 * 获取指定产物类型的 Schema。
 * @returns Schema 或 undefined（未知类型）
 */
export declare function getArtifactSchema(kind: ArtifactKind): ArtifactSchema | undefined;
/**
 * 检查指定产物类型是否有已注册的 Schema。
 */
export declare function hasArtifactSchema(kind: string): boolean;
/**
 * 获取所有已注册的 Schema（不含 custom 和 knowledge_rule）。
 */
export declare function getAllArtifactSchemas(): ArtifactSchema[];
/**
 * 获取所有已注册 Schema 的 kind 列表。
 */
export declare function getRegisteredSchemaKinds(): ArtifactKind[];
/**
 * 获取有实质结构约束的 Schema 列表（required_sections 或 required_tables 非空）。
 */
export declare function getStructuralSchemas(): ArtifactSchema[];
/**
 * 灵活的章节标题匹配 — 容许编号前缀（如 "1. "、"2.1 "）。
 *
 * 匹配规则：
 * - `## 页面元数据` → 匹配 section "页面元数据"
 * - `## 1. 页面元数据` → 匹配 section "页面元数据"
 * - `### 2.1 色彩` → 匹配 section "色彩"
 */
export declare function matchSection(content: string, sectionName: string): boolean;
/**
 * 在内容中查找所有缺失的必填章节。
 * @returns 缺失的章节名称列表
 */
export declare function findMissingSections(content: string, schema: ArtifactSchema): string[];
/**
 * 在内容中查找所有缺失的必填表格。
 * @returns 缺失的表格名称列表
 */
export declare function findMissingTables(content: string, schema: ArtifactSchema): string[];
/**
 * 将 ArtifactSchema 格式化为可注入 prompt 的结构约束文本。
 *
 * 输出格式：
 * ```
 * ## 产物结构约束：prototype_spec
 * 必填章节：页面元数据、设计令牌、页面布局树...
 * 必填表格：色彩令牌表、间距与圆角表...
 * 表格必填列：
 *   色彩令牌表 → 令牌名、色值、用途
 *   ...
 * ```
 */
export declare function formatSchemaForPrompt(schema: ArtifactSchema): string;
/** 空洞章节 — 标题存在但正文内容 < threshold 字符 */
export interface HollowSection {
    /** 章节名（与 schema.required_sections 中的名称一致） */
    section_name: string;
    /** 标题所在行号（1-based） */
    line_number: number;
    /** 章节正文（去除标题行和空行后） */
    body_chars: number;
}
/** 占位符发现 */
export interface PlaceholderFinding {
    /** 占位符文本 */
    placeholder: string;
    /** 所在行号（1-based） */
    line_number: number;
    /** 上下文片段（前 80 字符） */
    context: string;
}
/** 空表格发现 */
export interface EmptyTableFinding {
    /** 表格 header 关键词 */
    table_keyword: string;
    /** 表格起始行号（1-based） */
    line_number: number;
    /** 是否为必填表格 */
    is_required: boolean;
}
/**
 * 检测空洞章节 — 标题存在但正文内容不足阈值。
 *
 * 算法：
 * 1. 按行提取所有 ## 级别的标题
 * 2. 对每个标题，取其到下一个同级标题之间的正文
 * 3. 正文预处理：去掉 markdown 格式标记、代码块行、表格行、空行
 * 4. 用 matchSection() 与 schema.required_sections 匹配
 * 5. 匹配成功的章节，正文长度 < threshold → 空洞
 */
export declare function findHollowSections(content: string, schema: ArtifactSchema, threshold?: number): HollowSection[];
/**
 * 检测占位符 — 正文中的"待补充"、"TODO"等空洞标记。
 *
 * 维护代码围栏状态机，跳过代码块内行，避免误报。
 * 可追加自定义占位符模式。
 */
export declare function findPlaceholders(content: string, extraPatterns?: RegExp[]): PlaceholderFinding[];
/**
 * 检测空表格 — 表格有 header 和 separator 但无数据行。
 *
 * 与 schema.required_tables 做关键词匹配，必填表格空 → is_required=true。
 */
export declare function findEmptyTables(content: string, schema: ArtifactSchema): EmptyTableFinding[];
//# sourceMappingURL=artifact_schema_registry.d.ts.map