import { syncMemoizer } from './sync'; import { INodeStyleCallBack as CB, ResultBase, IParamsBase0, IParamsBase1, IParamsBase2, IParamsBase3, IParamsBase4, IParamsBase5, IParamsBase6 } from './util'; export interface IMemoized extends ResultBase { (cb: CB): void; (a1: T1, cb: CB): void; (a1: T1, a2: T2, cb: CB): void; (a1: T1, a2: T2, a3: T3, cb: CB): void; (a1: T1, a2: T2, a3: T3, a4: T4, cb: CB): void; (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, cb: CB): void; (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, cb: CB): void; } interface IMemoizableFunction0 { (cb: CB): void; } interface IMemoizableFunction1 { (a1: T1, cb: CB): void; } interface IMemoizableFunction2 { (a1: T1, a2: T2, cb: CB): void; } interface IMemoizableFunction3 { (a1: T1, a2: T2, a3: T3, cb: CB): void; } interface IMemoizableFunction4 { (a1: T1, a2: T2, a3: T3, a4: T4, cb: CB): void; } interface IMemoizableFunction5 { (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, cb: CB): void; } interface IMemoizableFunction6 { (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, cb: CB): void; } interface AsyncParams0 extends IParamsBase0 { load: IMemoizableFunction0; } interface AsyncParams1 extends IParamsBase1 { load: IMemoizableFunction1; } interface AsyncParams2 extends IParamsBase2 { load: IMemoizableFunction2; } interface AsyncParams3 extends IParamsBase3 { load: IMemoizableFunction3; } interface AsyncParams4 extends IParamsBase4 { load: IMemoizableFunction4; } interface AsyncParams5 extends IParamsBase5 { load: IMemoizableFunction5; } interface AsyncParams6 extends IParamsBase6 { /** * The function that loads the resource when is not in the cache. */ load: IMemoizableFunction6; } declare function asyncMemoizer(options: AsyncParams0): IMemoized; declare namespace asyncMemoizer { var sync: typeof syncMemoizer; } declare function asyncMemoizer(options: AsyncParams1): IMemoized; declare namespace asyncMemoizer { var sync: typeof syncMemoizer; } declare function asyncMemoizer(options: AsyncParams2): IMemoized; declare namespace asyncMemoizer { var sync: typeof syncMemoizer; } declare function asyncMemoizer(options: AsyncParams3): IMemoized; declare namespace asyncMemoizer { var sync: typeof syncMemoizer; } declare function asyncMemoizer(options: AsyncParams4): IMemoized; declare namespace asyncMemoizer { var sync: typeof syncMemoizer; } declare function asyncMemoizer(options: AsyncParams5): IMemoized; declare namespace asyncMemoizer { var sync: typeof syncMemoizer; } declare function asyncMemoizer(options: AsyncParams6): IMemoized; declare namespace asyncMemoizer { var sync: typeof syncMemoizer; } export { asyncMemoizer };