type AnyFunction<TArgs extends unknown[] = unknown[], TReturn = unknown> = (...args: TArgs) => TReturn;
interface MemoizeOptions<TArgs extends unknown[]> {
    maxSize?: number;
    serializer?: (...args: TArgs) => string;
}
declare const memoize: <TArgs extends unknown[], TReturn>(fn: AnyFunction<TArgs, TReturn>, options?: MemoizeOptions<TArgs>) => AnyFunction<TArgs, TReturn>;
export default memoize;
