interface AsyncLoader { (key: string): Promise; } export interface AsyncCachedLoader extends AsyncLoader { getLength: () => number; getCount: () => number; } interface CacheOptions { max?: number; maxAge?: number; length?: (value: T, key?: string) => number; } /** * Memoize an async function that takes a single string key. * Backed by async-cache. */ export default function asyncMemoize(func: AsyncLoader, options?: CacheOptions): AsyncCachedLoader; export {};