declare module 'memoizee/weak.js' { import type Memoize from 'memoizee'; type FirstArg = T extends (arg1: infer U) => any ? U : any; type RestArgs = T extends (arg1: any, ...args: infer U) => any ? U : any[]; export interface MemoizeWeakOptions any> { length?: number | false; maxAge?: number; max?: number; preFetch?: number | true; promise?: boolean; dispose?(value: any): void; async?: boolean; primitive?: boolean; normalizer?(firstArg: FirstArg, restArgs: RestArgs): any; resolvers?: Array<(arg: any) => any>; } function memoizeWeak any>( f: F, options?: MemoizeWeakOptions, ): F & Memoize.Memoized; export = memoizeWeak; }