/** * Turn a function into a memoized function. An optional resolver function can be passed which allows custom cache key generation. * * Example: * const memoized_function = memoize((a) => djb2(a)); * * @param fn - Function to memoize * @param resolver - Optional resolver function to generate cache key. If not passed the first argument is used as map key * @param {false|number?} cache_duration_ms - Memoize for X milliseconds, if passed false will indefinitely memoize (default = false) * @param {number?} cache_max_size - Memoize at max X entries, defaults to 100 */ declare function memoize unknown>(fn: T, resolver?: (...args: Parameters) => any, cache_duration_ms?: number | false, cache_max_size?: number): T; export { memoize, memoize as default };