/** * Profile Executor * * Validates FHIR profile conformance: * - StructureDefinition conformance * - Extension validation * - Slicing validation * - Profile constraint validation */ import type { ValidationIssue } from '../../types'; import type { StructureDefinition } from '../structure-definition-types'; import { ExtensionValidator } from '../../validators/extension-validator'; import { SlicingValidator, type ReferenceResolver } from '../../validators/slicing-validator'; import { ConstraintValidator } from '../../validators/constraint-validator'; export interface ProfileValidationContext { resource: any; resourceType: string; profileUrl: string; fhirVersion: 'R4' | 'R5' | 'R6'; structureDef: StructureDefinition; strictMode: boolean; getValueAtPath: (resource: any, path: string) => any; referenceResolver?: ReferenceResolver | null; enclosingBundle?: Record; } export declare class ProfileExecutor { private extensionValidator; private slicingValidator; private constraintValidator; private germanIdentifierValidator; private germanExtensionValidator; constructor(extensionValidator: ExtensionValidator, slicingValidator: SlicingValidator, constraintValidator: ConstraintValidator); /** * Validate profile conformance aspects */ validate(context: ProfileValidationContext): Promise; /** * Walk every sliced element in the snapshot and delegate to the slicing * validator — handling both globally-sliced paths and slices nested under * array ancestors (cardinality checked per parent item). */ private validateAllSlicing; private elementMin; private slicedElementParentExists; private coerceToArray; private suppressDuplicateExtensionSliceMinimum; private normalizePath; private isExtensionPath; /** * When a sliced element is nested inside an array parent * (e.g. Medication.ingredient.item[x]), return the individual parent items * so slicing cardinality can be checked per item. * Returns null if no array ancestor exists. */ private resolveParentArrayItems; private isRepeatingMax; } //# sourceMappingURL=profile-executor.d.ts.map