import type { EntityMetadata } from '../typings.js'; import type { Logger } from '../logging/Logger.js'; import type { SyncCacheAdapter } from '../cache/CacheAdapter.js'; import type { Platform } from '../platforms/Platform.js'; export interface IConfiguration { get(key: string, defaultValue?: any): any; getLogger(): Logger; getMetadataCacheAdapter(): SyncCacheAdapter; getPlatform(): Platform; } /** Base metadata provider that resolves entity type information and manages metadata caching. */ export declare class MetadataProvider { protected readonly config: IConfiguration; constructor(config: IConfiguration); /** Resolves entity references and type information for all properties in the given metadata. */ loadEntityMetadata(meta: EntityMetadata): void; /** * Resolves the entity name for a given class or schema, respecting explicit names * set via `defineEntity({ name })` + `setClass()`. */ private resolveEntityName; /** Merges cached metadata into the given entity metadata, preserving function expressions. */ loadFromCache(meta: EntityMetadata, cache: EntityMetadata): void; /** Whether this provider class uses metadata caching by default. */ static useCache(): boolean; /** Whether metadata caching is enabled for this instance. */ useCache(): boolean; saveToCache(meta: EntityMetadata): void; /** Attempts to load metadata from cache, returning undefined if not available. */ getCachedMetadata(meta: Pick, 'className' | 'path' | 'root'>, root: EntityMetadata): EntityMetadata | undefined; /** Combines individual metadata cache entries into a single file. */ combineCache(): void; /** Returns the cache key for the given entity metadata. */ getCacheKey(meta: Pick): string; }