import { R as RandomFn, c as FhirResource } from '../../types-CRTS25wG.js'; /** * Concrete fault types — each maps to a specific FHIR violation. */ type ConcreteFaultType = "missing-resource-type" | "invalid-resource-type" | "missing-id" | "invalid-gender" | "malformed-date" | "empty-name" | "wrong-type-on-field" | "duplicate-identifier" | "invalid-telecom-system" | "missing-status" | "invalid-status-value"; /** * Full fault type including the "random" convenience alias. * "random" expands to one concrete fault chosen by the seeded RNG. */ type FaultType = ConcreteFaultType | "random"; /** All valid fault type strings, for CLI validation. */ declare const FAULT_TYPES: FaultType[]; /** * A fault strategy receives a resource as a plain object and an RNG, * and returns a new object with the fault applied. Never mutates the input. */ type FaultStrategy = (resource: Record, rng: RandomFn) => Record; /** * Apply a list of fault types to a FHIR resource. * * - "random" expands to one concrete fault chosen by the seeded RNG. * - Duplicate fault types in the list are applied once each (deduped by type). * - Faults targeting fields not present on the resource are silent no-ops. * - The original resource is never mutated; a new object is returned. */ declare function injectFaults(resource: FhirResource, faults: FaultType[], rng: RandomFn): FhirResource; declare const FAULT_REGISTRY: Record; declare const CONCRETE_FAULT_TYPES: ConcreteFaultType[]; export { CONCRETE_FAULT_TYPES, type ConcreteFaultType, FAULT_REGISTRY, FAULT_TYPES, type FaultStrategy, type FaultType, injectFaults };