// Type definitions for Async 0.1.23 // Project: https://github.com/caolan/async // Definitions by: Boris Yankov // Definitions: https://github.com/borisyankov/DefinitelyTyped interface AsyncMultipleResultsCallback { (err: string, results: T[]): any; } interface AsyncSingleResultCallback { (err: string, result: T): any; } interface AsyncTimesCallback { (n: number, callback: AsyncMultipleResultsCallback): void; } interface AsyncIterator { (item: T, callback: AsyncMultipleResultsCallback): void; } interface AsyncMemoIterator { (memo: T, item: T, callback: AsyncSingleResultCallback): void; } interface AsyncWorker { (task: T, callback: Function): void; } interface AsyncQueue { length(): number; concurrency: number; push(task: T, callback: AsyncMultipleResultsCallback): void; saturated: AsyncMultipleResultsCallback; empty: AsyncMultipleResultsCallback; drain: AsyncMultipleResultsCallback; } interface Async { // Collections forEach(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): void; forEachSeries(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): void; forEachLimit(arr: T[], limit: number, iterator: AsyncIterator, callback: AsyncMultipleResultsCallback): void; map(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback); mapSeries(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback); filter(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback); select(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback); filterSeries(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback); selectSeries(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback); reject(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback); rejectSeries(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback); reduce(arr: T[], memo: T, iterator: AsyncMemoIterator, callback: AsyncSingleResultCallback); inject(arr: T[], memo: T, iterator: AsyncMemoIterator, callback: AsyncSingleResultCallback); foldl(arr: T[], memo: T, iterator: AsyncMemoIterator, callback: AsyncSingleResultCallback); reduceRight(arr: T[], memo: T, iterator: AsyncMemoIterator, callback: AsyncSingleResultCallback); foldr(arr: T[], memo: T, iterator: AsyncMemoIterator, callback: AsyncSingleResultCallback); detect(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback); detectSeries(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback); sortBy(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback); some(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback); any(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback); every(arr: T[], iterator: AsyncIterator, callback: (result: boolean) => any); all(arr: T[], iterator: AsyncIterator, callback: (result: boolean) => any); concat(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback); concatSeries(arr: T[], iterator: AsyncIterator, callback: AsyncMultipleResultsCallback); // Control Flow series(tasks: T[], callback?: AsyncMultipleResultsCallback): void; series(tasks: T, callback?: AsyncMultipleResultsCallback): void; parallel(tasks: T[], callback?: AsyncMultipleResultsCallback): void; parallel(tasks: T, callback?: AsyncMultipleResultsCallback): void; whilst(test: Function, fn: Function, callback: Function): void; until(test: Function, fn: Function, callback: Function): void; waterfall(tasks: T[], callback?: AsyncMultipleResultsCallback): void; waterfall(tasks: T, callback?: AsyncMultipleResultsCallback): void; queue(worker: AsyncWorker, concurrency: number): AsyncQueue; // auto(tasks: any[], callback?: AsyncMultipleResultsCallback): void; auto(tasks: any, callback?: AsyncMultipleResultsCallback): void; iterator(tasks: Function[]): Function; apply(fn: Function, ...arguments: any[]): void; nextTick(callback: Function): void; times (n: number, callback: AsyncTimesCallback): void; timesSeries (n: number, callback: AsyncTimesCallback): void; // Utils memoize(fn: Function, hasher?: Function): Function; unmemoize(fn: Function): Function; log(fn: Function, ...arguments: any[]): void; dir(fn: Function, ...arguments: any[]): void; noConflict(): Async; } declare var async: Async; declare module "async" { export = async; }