import type { ValueSet, CodeSystem } from './valueset-types'; import { ValueSetCache } from './valueset-cache'; import { type FhirVersion } from './valueset-package-utils'; import { type ValueSetConceptFilter } from './valueset-package-expansion'; export type { ValueSetConceptFilter }; export declare class ValueSetPackageLoader { private cache; private packageDirectories; private missingCodeSystemKeys; private pendingCodeSystemLoads; constructor(cache?: ValueSetCache); /** * Determine package directories to search for ValueSet resources */ private computePackageDirectories; /** * Get package directories (for testing) */ getPackageDirectories(): string[]; /** Clear loader-local negative/single-flight state after packages change. */ clearLookupState(): void; /** * Scan all package directories for a FHIR resource matching the given * canonical URL. When `preferredFhirMajor` is set, prefer packages whose * directory name contains the FHIR version (e.g. "r5"). When * `requestedVersion` is set, an exact match on `resource.version` wins * immediately. */ private findInPackages; private findByCanonicalScan; /** * Attempt to load a ValueSet definition from local packages and return its codes */ loadValueSet(valueSetUrl: string, fhirVersion?: FhirVersion): Promise; /** * Return include filters from a ValueSet definition. This lets callers * distinguish a complete local expansion from a partial one where a * CodeSystem filter needs terminology-server evaluation. */ getIncludeConceptFilters(valueSetUrl: string, fhirVersion?: FhirVersion): Promise; /** * Load a CodeSystem from local packages by its canonical URL */ loadCodeSystem(systemUrl: string, preferredFhirMajor?: string, requestedVersion?: string): Promise; private loadCodeSystemUncached; /** * Extract codes from a ValueSet resource (expansion or compose/include). * * Supports: * - Pre-expanded `expansion.contains` (including hierarchical `contains`) * - `compose.include` with explicit concepts * - `compose.include` referencing a CodeSystem (full system inclusion) * - `compose.include.valueSet` — recursive ValueSet composition * - `compose.include.filter` — basic `concept is-a ` + `=` filters * - `compose.exclude` — removes codes from the result set * - CodeSystem supplements (merges extra properties without contributing * codes, which is the correct FHIR semantics) */ extractCodesFromValueSet(valueSet: ValueSet): Promise; /** * Load a ValueSet resource (not just its codes) for use in recursive * composition. Uses the same package search path as `loadValueSet`. */ loadValueSetResource(valueSetUrl: string, fhirVersion?: FhirVersion): Promise; /** * Extract all codes from a CodeSystem (including nested concepts). * * Supplements are ignored here — per FHIR semantics, a supplement adds * properties/designations to another CodeSystem but does not contribute * new codes. The base CodeSystem should be loaded separately. */ extractCodesFromCodeSystem(codeSystem: CodeSystem): string[]; } //# sourceMappingURL=valueset-package-loader.d.ts.map