/** * compliesWithProfile slicing helpers. * * Java raises three slicing-related diagnostics when a derived profile * fails to honour the slicing structure declared by the claimed parent: * * • Mismatch in slicing rules at : '' when the claimed * profile has '' (open/closed mismatch) * • Mismatch in slicing at : no slice found for the * discriminator : with the values [] * • Mismatch in slicing at : extra slice '' not found in * the claimed profile (closed-rule violation) * * This module computes those diagnostics from the differentials. It does * not attempt full snapshot reconstruction — the conformance fixtures * carry only differentials. */ interface DiscriminatorValue { type: string; path: string; fhirType: string; value: string; } interface SliceRecord { id: string; parentPath: string; sliceName: string; min?: number; discriminatorValues: DiscriminatorValue[]; } interface SlicingParent { parentPath: string; rules?: string; discriminators: Array<{ type?: string; path?: string; }>; slices: SliceRecord[]; } /** * Index slicing parents and the slice records below them out of an * SD's differential / snapshot element list. */ export declare function indexSlicingParents(elements: any[]): Map; interface SlicingDiff { rulesMismatchPath?: string; rulesMismatchBase?: string; rulesMismatchDerived?: string; missingRequiredSlices: SliceRecord[]; extraInClosedSlices: SliceRecord[]; } /** * Compare slicing parents between derived and base differentials and * report rule-level / slice-level mismatches. Slice matching uses the * discriminator values declared on each side rather than slice names. */ export declare function diffSlicing(baseElements: any[], derivedElements: any[]): SlicingDiff[]; export declare function describeMissingRequiredSlice(slice: SliceRecord): string; export declare function describeExtraSlice(parentPath: string, slice: SliceRecord): string; export declare function describeRulesMismatch(diff: SlicingDiff): string; export {}; //# sourceMappingURL=complies-with-slicing.d.ts.map