export interface MemoizeOptions<F extends (...args: any) => unknown, T = unknown> {
    /**
     * @defaultValue undefined
     */
    thisContext?: T | undefined;
    /**
     *
     * @defaultValue JSON.stringify
     */
    argHasher?: (args: Parameters<F>) => string;
    /**
     * @defaultValue Infinity
     */
    maxCacheEntries?: number;
    cache?: Map<string, ReturnType<F>>;
}
export type NormalizedMemoizeOptions<F extends (...args: any) => unknown, T = unknown> = Required<Omit<MemoizeOptions<F, T>, 'thisContext'>> & Pick<MemoizeOptions<F, T>, 'thisContext'>;
export declare const normalizeMemoizeOptions: <F extends (...args: any) => unknown, T>(options?: MemoizeOptions<F, T>) => NormalizedMemoizeOptions<F, T>;
//# sourceMappingURL=memoize.function.options.d.ts.map