import type { StructureDefinition, ElementDefinition } from './structure-definition-types'; import { StructureDefinitionLoader } from './structure-definition-loader'; export interface SnapshotGenerationOptions { includeBaseElements?: boolean; applyConstraints?: boolean; cacheResults?: boolean; } export declare class SnapshotGenerator { private sdLoader; private snapshotCache; private readonly maxCacheEntries; constructor(sdLoader: StructureDefinitionLoader, maxCacheEntries?: number); generateSnapshot(profileSD: StructureDefinition, options?: SnapshotGenerationOptions): Promise; private getSnapshotCacheKey; private loadBaseProfile; private mergeElements; /** * Older differentials may omit ElementDefinition.id. Slice children are * then associated by their position after the named slice root. Give those * entries stable synthetic ids so they remain scoped to that slice instead * of being merged into (and overwriting) the base path. */ private inferLegacySliceIds; private isSliceScopedElement; private findExistingSliceIndex; private sliceParentScope; private mergeElementProperties; private restrictMax; private mergeTypes; private applyConstraints; clearCache(): void; evict(profileUrl: string): boolean; getCacheStats(): { size: number; profiles: string[]; }; } //# sourceMappingURL=snapshot-generator.d.ts.map