/** * Rule registry — collects metadata from all rule sources into a flat, sortable array. * Used for documentation generation and programmatic rule introspection. */ import type { LintRule, Severity, Category } from "./rule.js"; import type { PostSynthCheck } from "./post-synth.js"; export interface RuleEntry { /** Unique rule ID (e.g. "COR001", "WAW018") */ id: string; /** Human-readable description of what this rule checks */ description: string; /** Rule category */ category: Category; /** Default severity level */ defaultSeverity: Severity; /** Source of the rule ("core" or lexicon name) */ source: "core" | string; /** Phase the rule runs in */ phase: "pre-synth" | "post-synth"; /** Whether this rule provides automatic fixes */ hasAutoFix: boolean; /** Link to rule documentation */ helpUri?: string; } /** * Build a rule registry from core rules and plugin-provided rules/checks. * * @param coreRules - Core LintRules (COR/EVL rules from packages/core) * @param plugins - Array of plugin contributions with name, rules, and post-synth checks * @returns Flat array of RuleEntry sorted by ID */ export declare function buildRuleRegistry(coreRules: LintRule[], plugins?: Array<{ name: string; rules?: LintRule[]; postSynthChecks?: PostSynthCheck[]; }>): RuleEntry[]; //# sourceMappingURL=rule-registry.d.ts.map