interface CacheItem { lastUsed: number; waiting: number; abortController?: AbortController; item: Promise; } /** * LRU Cache for CancelablePromises. * The underlying request is only canceled when all callers have canceled their usage of it. */ export default class AsyncCache { maxSize: number; items: Map>; constructor(maxSize?: number); size: () => number; get: (key: K, supplier: (key: K, abortController: AbortController) => Promise, abortController: AbortController) => Promise; prune(): void; clear: () => void; } export {};