export interface MapLike { has(key: K): boolean; get(key: K): V | undefined; set(key: K, value: V): void; } export declare function memoize(cache: MapLike, func: (arg: Arg) => Return): (arg: Arg) => Return; export declare const weakMemoize: (cache: WeakMap, fn: (arg: Arg) => Return) => (arg: Arg) => Return;