import type { ParsedDocument } from '../model/parser-utils.js'; /** A consistency rule extracted from SysML ontology */ export interface RuleRegistryEntry { /** Rule ID from SysML attribute */ id: string; /** Human-readable name */ name: string; /** Description */ description: string; /** Entity kind this rule applies to */ appliesTo: string; /** Predicate kind (requireRelationship, requireAttribute, etc.) */ predicate: string; /** Rule strength (optional, recommended, required, forbidden) */ strength: string; /** Severity (error, warning, info) */ severity: string; /** Rationale text */ rationaleText: string; /** Rule category (closure, coverage, lifecycle, crossLayer, quantitative) */ category: string; /** All raw attributes from the SysML instance */ attributes: Record; /** Source file path */ file: string; /** Supertype chain (e.g. RelationshipConsistencyRule, ConsistencyRule) */ superType?: string; } /** * Registry that discovers ConsistencyRule instances from SysML AST. * Walks part usages whose type specializes ConsistencyRule. */ export declare class RuleRegistry { private readonly rules; /** Known ConsistencyRule type hierarchy */ private static readonly RULE_TYPES; /** Number of registered rules */ get size(): number; /** Get a rule by ID */ getRule(id: string): RuleRegistryEntry | undefined; /** Get all rules */ entries(): RuleRegistryEntry[]; /** Get rules filtered by category */ byCategory(category: string): RuleRegistryEntry[]; /** Get rules filtered by standard (for coverage rules) */ byStandard(standard: string): RuleRegistryEntry[]; /** Check if a rule is registered */ has(id: string): boolean; /** Register a rule manually (for testing) */ register(entry: RuleRegistryEntry): void; /** * Populate registry from parsed SysML documents. * Looks for part usages whose type is a known ConsistencyRule subtype. */ populateFromDocuments(docs: ParsedDocument[]): void; private walkPackage; private tryExtractRule; private extractAttributes; private extractValue; } //# sourceMappingURL=rule-registry.d.ts.map