/** 自定义脚手架项目级合同 — 定义模板集级别的约束 */
export interface CustomScaffoldContract {
    /** 必需的模板变量名，缺失则阻断渲染 */
    required_template_vars?: string[];
    /** 允许的技术栈关键词（匹配 tech_stack.backend.framework 或 frontend.framework），为空则不限 */
    tech_stack?: string[];
    /** 输出边界约束 */
    output_boundary?: {
        /** 禁止出现的正则模式（如 ["System\\.exit", "Runtime\\.exec"]） */
        forbidden_patterns?: string[];
        /** 单文件最大字节数 */
        max_file_size?: number;
    };
}
/** 构建命令配置 */
export interface BuildCommands {
    /** 构建命令 */
    build: string;
    /** 测试命令 */
    test: string;
    /** 全量构建（含测试）命令 */
    full: string;
}
/** 仓库配置 */
export interface RepoConfig {
    /** 仓库名称 */
    name: string;
    /** 仓库路径 */
    path: string;
    /** 编程语言 */
    lang: string;
    /** 框架 */
    framework: string;
    /** 作用域路径列表 */
    scope: string[];
}
/** 项目配置 */
export interface ProjectConfig {
    /** 配置 schema 版本 */
    schema_version?: number;
    /** 项目名称 */
    name: string;
    /** 技术栈 */
    tech_stack: {
        backend: {
            lang: string;
            framework: string;
            version: string;
        };
        frontend: {
            lang: string;
            framework: string;
            version: string;
        };
    };
    /** 产品画像 */
    product_profile: string;
    /** 仓库配置列表 */
    repos: RepoConfig[];
    /** 构建命令 */
    build_commands: {
        backend: BuildCommands;
        frontend: BuildCommands;
    };
    /** 作用域范围 */
    scope: {
        backend: string[];
        frontend: string[];
    };
    /** 约定文件路径 */
    conventions_file?: string;
    /** 验证超时设置 */
    verify_timeout?: {
        /** 构建超时（秒） */
        build: number;
        /** 测试超时（秒） */
        test: number;
    };
    /** 产品映射（功能点到模块的映射） */
    product_mapping?: Record<string, string>;
    /** 脚手架配置 */
    scaffold?: {
        /** 基础包名 */
        base_package?: string;
        /** 模板名称 */
        templates?: string;
        /** 自定义模板目录 */
        custom_templates_dir?: string;
        /** 自定义脚手架项目级合同（按模板集名称索引） */
        contracts?: Record<string, CustomScaffoldContract>;
    };
    /** @internal resolved at runtime, not from config file */
    _projectPath?: string;
    /** @internal 知识索引降级标记 — 索引构建失败时设为 true */
    _knowledgeDegraded?: boolean;
}
/** 解析后的项目配置（含来源信息） */
export interface ResolvedConfig {
    config: ProjectConfig;
    source: "config_file" | "inferred";
}
/** 脚手架文件 */
export interface ScaffoldFile {
    /** 文件路径 */
    path: string;
    /** 文件内容 */
    content: string;
    /** 文件描述 */
    description: string;
    /** 是否为模板文件 */
    is_template: boolean;
    /** 模板变量 */
    template_vars?: Record<string, string>;
}
/** 脚手架生成结果 */
export interface ScaffoldResult {
    /** 任务 ID */
    task_id: string;
    /** 模块名称 */
    module_name: string;
    /** 生成的文件列表 */
    files: ScaffoldFile[];
    /** 生成摘要 */
    summary: string;
    /** 生成文件总数 */
    total_files: number;
    /** 警告信息列表 */
    warnings: string[];
}
//# sourceMappingURL=config.d.ts.map