/**
 * Rule Build System - Compile individual rule files into consolidated AGENTS.md
 * Inspired by agent-skills architecture
 */
export type ImpactLevel = 'CRITICAL' | 'HIGH' | 'MEDIUM-HIGH' | 'MEDIUM' | 'LOW-MEDIUM' | 'LOW';
export declare const IMPACT_ORDER: Record<ImpactLevel, number>;
export interface CodeExample {
    label: string;
    description?: string;
    code: string;
    language?: string;
    additionalText?: string;
}
export interface Rule {
    id: string;
    title: string;
    section: number;
    subsection?: number;
    impact: ImpactLevel;
    impactDescription?: string;
    explanation: string;
    examples: CodeExample[];
    references?: string[];
    tags?: string[];
}
export interface Section {
    number: number;
    title: string;
    impact: ImpactLevel;
    impactDescription?: string;
    introduction?: string;
    rules: Rule[];
}
export interface RulesDocument {
    version: string;
    title: string;
    organization?: string;
    date: string;
    abstract: string;
    sections: Section[];
    references?: string[];
}
export interface RuleFile {
    section: number;
    subsection?: number;
    rule: Rule;
}
export interface TestCase {
    ruleId: string;
    ruleTitle: string;
    type: 'bad' | 'good';
    code: string;
    language: string;
    description?: string;
}
export interface RulePressureTestConfig {
    minExamples: number;
    requireBothTypes: boolean;
    requireRationalization: boolean;
    minCodeLength: number;
}
export interface RuleTDDScores {
    hasExamples: boolean;
    hasBothTypes: boolean;
    hasRationalization: boolean;
    hasEdgeCases: boolean;
    exampleQuality: number;
    coverageScore: number;
}
export interface RuleTDDResult {
    ruleId: string;
    ruleTitle: string;
    scores: RuleTDDScores;
    issues: string[];
    passed: boolean;
}
export interface RulePressureTestSummary {
    total: number;
    passed: number;
    failed: number;
    results: RuleTDDResult[];
}
/**
 * Parse a rule markdown file
 */
export declare function parseRuleFile(filePath: string): Promise<RuleFile>;
/**
 * Generate markdown from sections
 */
export declare function generateMarkdown(sections: Section[], metadata: {
    version: string;
    title: string;
    organization?: string;
    date: string;
    abstract: string;
    references?: string[];
}): string;
/**
 * Build AGENTS.md from individual rule files
 */
export declare function buildRulesDocument(rulesDir: string, outputFile: string, metadata: {
    version: string;
    title: string;
    organization?: string;
    date?: string;
    abstract: string;
    references?: string[];
    sectionMeta?: Record<number, {
        title: string;
        impact: ImpactLevel;
        introduction?: string;
    }>;
}): Promise<{
    sections: number;
    rules: number;
}>;
/**
 * Extract test cases from rules for LLM evaluation
 */
export declare function extractTestCases(rules: Rule[]): TestCase[];
/**
 * Extract test cases from rules directory
 */
export declare function extractTestCasesFromDir(rulesDir: string, outputFile: string): Promise<{
    total: number;
    bad: number;
    good: number;
}>;
/**
 * Validate rule file structure
 */
export declare function validateRule(rule: Rule): {
    valid: boolean;
    errors: string[];
};
/**
 * Get impact level color for display
 */
export declare function getImpactColor(impact: ImpactLevel): string;
/**
 * Compare two impact levels
 */
export declare function compareImpact(a: ImpactLevel, b: ImpactLevel): number;
/**
 * Pressure-test a single rule for completeness and quality
 * Returns weighted score (0-100) with 70+ = passed
 */
export declare function pressureTestRule(rule: Rule, config?: Partial<RulePressureTestConfig>): RuleTDDResult;
/**
 * Batch pressure-test all rules in a directory
 */
export declare function pressureTestRulesDirectory(rulesDir: string, config?: Partial<RulePressureTestConfig>): Promise<RulePressureTestSummary>;
/**
 * Format pressure test results as markdown report
 */
export declare function formatPressureTestReport(summary: RulePressureTestSummary): string;
//# sourceMappingURL=RuleBuildSystem.d.ts.map