/** * Advisor Rules Engine * * User-configurable post-validation rules that transform, suppress, or * override validation issue severity. Compatible with gematik * Referenzvalidator plugin YAML v2.0 format (severityLevelFrom/To, * locatorString, messageId matching). * * Advisor rules run AFTER the validator returns raw issues and AFTER * strictness-severity is applied. They are the last transform before * results are persisted. * * Rules are loaded from: * 1. ValidationSettings.advisorRules (loaded from advisor_rules, managed via UI) * 2. .records-advisor.yaml (project-local file) * 3. CLI --advisor-rules flag */ import type { AdvisorRule, AdvisorRuleMatch, AdvisorRuleTransform, ValidationIssue } from '@records-fhir/validation-types'; export type { AdvisorRule, AdvisorRuleMatch, AdvisorRuleTransform }; export interface AdvisorRuleSet { version: '1.0'; rules: AdvisorRule[]; } export interface AdvisorRuleApplicationResult { originalIssues: number; suppressedCount: number; overriddenCount: number; resultIssues: ValidationIssue[]; appliedRules: Array<{ ruleId: string; issueCode: string; action: string; }>; } export interface GematikPluginYaml { configSpecVersion: '2.0'; fhirPackage?: Array<{ packageName: string; packageVersion: string; }>; validationMessageTransformations?: GematikTransformation[]; } export interface GematikTransformation { severityLevelFrom: string; severityLevelTo: string; locatorString?: string; messageId?: string; } export declare function applyAdvisorRules(issues: ValidationIssue[], rules: AdvisorRule[]): AdvisorRuleApplicationResult; export declare function convertGematikRules(gematik: GematikPluginYaml): AdvisorRule[]; export interface FirelyQCRule { action: 'suppress' | 'error'; issue?: string; expression?: string; } export declare function convertFirelyQCRules(rules: FirelyQCRule[]): AdvisorRule[]; //# sourceMappingURL=advisor-rules.d.ts.map