import { syncMemoizer } from './sync'; import { INodeStyleCallBack, ResultBase, IParamsBase } from './util'; interface IMemoized extends ResultBase { (arg1: T1, cb: INodeStyleCallBack): void; (arg1: T1, arg2: T2, cb: INodeStyleCallBack): void; (arg1: T1, arg2: T2, arg3: T3, cb: INodeStyleCallBack): void; (arg1: T1, arg2: T2, arg3: T3, arg4: T4, cb: INodeStyleCallBack): void; (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, cb: INodeStyleCallBack): void; (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, cb: INodeStyleCallBack): void; } interface IMemoizableFunction { (cb: INodeStyleCallBack): void; (arg1: T1, cb: INodeStyleCallBack): void; (arg1: T1, arg2: T2, cb: INodeStyleCallBack): void; (arg1: T1, arg2: T2, arg3: T3, cb: INodeStyleCallBack): void; (arg1: T1, arg2: T2, arg3: T3, arg4: T4, cb: INodeStyleCallBack): void; (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, cb: INodeStyleCallBack): void; (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, cb: INodeStyleCallBack): void; (...rest: any[]): void; } interface AsyncParams extends IParamsBase { /** * The function that loads the resource when is not in the cache. */ load: IMemoizableFunction; } declare function asyncMemoizer(options: AsyncParams): IMemoized; declare namespace asyncMemoizer { var sync: typeof syncMemoizer; } export { asyncMemoizer };