/** * Canonical Candidate Collector * * Walks a list of installed FHIR packages on disk and emits a * `CanonicalCandidate[]` per canonical URL. The result feeds * `pinCanonicals()` in `canonical-pinner.ts`, which picks one version * per URL deterministically; that pinned map is what * `generateLockFile()` serialises into `.records-lock.json`. * * Package layout — HL7 NPM convention: * * /#/package/-.json * * Callers pass the package search roots explicitly. The first matching * `name#version` wins, so callers can put downloaded package caches * before bundled fallback packages. */ import type { CanonicalCandidate } from './types'; export interface CollectorOptions { /** Package search root list in priority order. */ searchPaths: string[]; /** When set, the collector skips packages it cannot find on disk silently. */ skipMissing?: boolean; } export interface CollectorResult { candidatesByUrl: Map; /** Total number of candidate entries (sum across all URLs) before any pinning. */ totalCandidates: number; /** Packages that were requested but could not be located on disk. */ missingPackages: string[]; /** Packages that were located but contained no canonical resources. */ emptyPackages: string[]; } /** * Top-level collector. Given a list of `name#version` package ids, * returns the candidate map ready for `pinCanonicals()`. */ export declare function collectCanonicalCandidates(packages: string[], options: CollectorOptions): CollectorResult; //# sourceMappingURL=candidate-collector.d.ts.map