import type { ValidationIssue, ValidationSettings } from '../types'; import { StructureDefinitionLoader } from './structure-definition-loader'; import type { StructureDefinition } from './structure-definition-types'; import { type TerminologyResolutionConfig } from '../validators/valueset-validator'; import { type FhirClientLike } from './profile-loader-utils'; import type { BatchValidationOptions } from './batch-validator'; import { type AnomalyFinding, type AnomalyDetectorConfig } from '../validators/anomaly-detector'; import { type RecordsValidatorConfig } from './validator-engine-config'; import { type RecordsValidatorComponents } from './validator-engine-components'; import type { ReferenceResolver } from '../validators/slicing-validator'; export type { RecordsValidatorConfig } from './validator-engine-config'; export interface ValidationContext { resource: any; resourceType: string; profileUrl?: string; fhirVersion: 'R4' | 'R5' | 'R6'; strictMode: boolean; } export declare class RecordsValidator { private config; private profileCache; private sdLoader; private valuesetValidator; private constraintValidator; private snapshotGenerator; private available; private initializationPromise; private structuralExecutor; private profileExecutor; private terminologyExecutor; private referenceExecutor; private invariantExecutor; private customRuleExecutor; private metadataExecutor; private bestPracticeValidator; private anomalyDetector; private questionnaireRegistry; constructor(config?: RecordsValidatorConfig); private initialize; waitForInitialization(): Promise; isAvailable(): boolean; validateBatch(resources: any[], options?: BatchValidationOptions): Promise | Map>; validate(resource: any, profileUrl?: string, fhirVersion?: 'R4' | 'R5' | 'R6', settings?: ValidationSettings, fhirClient?: FhirClientLike, referenceResolver?: ReferenceResolver | null, organizationId?: number, serverId?: number, recursionDepth?: number): Promise; private validateContainedResourcesIfNeeded; private validateBundleEntriesIfNeeded; private static readonly BUNDLE_ENTRY_MAX_DEPTH; validateStructure(resource: any, fhirVersion?: 'R4' | 'R5' | 'R6', recursionDepth?: number): Promise; private validateBundleEntries; validateMetadata(resource: any): Promise; validateReferences(resource: any, fhirClient?: FhirClientLike, fhirVersion?: 'R4' | 'R5' | 'R6'): Promise; isProfileSupported(profileUrl: string, fhirVersion?: 'R4' | 'R5' | 'R6'): Promise; getSupportedProfiles(): string[]; getSdLoader(): StructureDefinitionLoader; loadProfileWithSnapshot(profileUrl: string, fhirVersion?: 'R4' | 'R5' | 'R6'): Promise; registerQuestionnaire(questionnaire: any): boolean; getQuestionnaire(canonicalOrRef: string | undefined | null): any | null; private applyRuntimeSettings; configureTerminologyResolution(config: TerminologyResolutionConfig): void; clearTerminologyCache(): void; getConstraintDiagnostics(): ReturnType; clearConstraintDiagnostics(): void; clearProfileCache(): void; evictProfile(profileUrl: string, fhirVersion?: 'R4' | 'R5' | 'R6'): void; setPinnedCanonicals(pinned: Map): void; getPinnedCanonicalCount(): number; detectAnomalies(resources: any[], config?: Partial): AnomalyFinding[]; } //# sourceMappingURL=validator-engine.d.ts.map