import { AbstractModuleRecord, CyclicModuleRecord, Realm, ScriptRecord, type ModuleRequestRecord, type PlainCompletion } from '#self'; export type ModuleCacheKeyObject = Pick; export type ModuleCacheKey = string & { __ModuleCacheKey: never; }; export type ModuleCacheLoader = (setCache: (value: PlainCompletion, cacheKey?: ModuleCacheKey) => void) => void; export declare class ModuleCache { #private; static fromReferer(referrer: CyclicModuleRecord | ScriptRecord | Realm): ModuleCache; static toCacheKey(moduleRequest: ModuleCacheKeyObject): ModuleCacheKey; toCacheKey(moduleRequest: ModuleCacheKeyObject): ModuleCacheKey; set(key: ModuleCacheKey, result: PlainCompletion): void; load(key: ModuleCacheKey, loader: ModuleCacheLoader, callback: (result: PlainCompletion) => void): void; hasUnfinishedRequests(): boolean; untilAllRequestFinished(): Promise[]>; } //# sourceMappingURL=module.d.mts.map