/** returns any type value */
export declare type CallBackReduce<T, R> = (accumulator: T | R, value: T, index?: number, collection?: T[]) => Promise<T | R>;
/**
 * Async Reduce function
 *
 * @export
 * @template T
 * @template R
 * @param {T[]} elements
 * @param {CallBackReduce<T, R>} cb
 * @param {R} [initialValue]
 * @returns {Promise<T | R>}
 */
export declare function aReduce<T, R>(elements: T[], cb: CallBackReduce<T, R>, initialValue?: R): Promise<T | R>;
