/** * DedupMap — Map with deduplication for concurrent async creation. * * When multiple callers request the same key concurrently, only one * factory call runs — all callers share the same inflight promise. * * Usage: * const map = new DedupMap(); * const conn = await map.getOrCreate('redis', () => connect('redis://...')); */ export declare class DedupMap { private _values; private _inflight; /** Number of resolved entries. */ get size(): number; /** Check if a resolved value exists for key. */ has(key: K): boolean; /** Get a resolved value (undefined if not yet created). */ get(key: K): V | undefined; /** Set a value directly (bypasses factory). */ set(key: K, value: V): void; /** * Get existing value or create one. Concurrent calls for the same * key join the same inflight promise instead of spawning duplicates. */ getOrCreate(key: K, factory: () => Promise): Promise; /** Delete a key (cancels inflight if pending). */ delete(key: K): boolean; /** Clear all entries and inflight promises. */ clear(): void; /** Iterate over resolved entries. Returns a snapshot (safe across await). */ entries(): [K, V][]; /** Iterate over resolved keys. Returns a snapshot. */ keys(): K[]; /** Iterate over resolved values. Returns a snapshot. */ values(): V[]; /** Iterate resolved entries via for...of. Returns snapshot array. */ [Symbol.iterator](): IterableIterator<[K, V]>; } //# sourceMappingURL=dedup-map.d.ts.map