import { AsyncWrappable } from '../../types/async-iterable'; declare function asyncReduce(reducer: (result: T, value: T, i: number) => T | Promise): (iterable: AsyncWrappable) => Promise; declare function asyncReduce(reducer: (result: O, value: T, i: number) => O | Promise): (iterable: AsyncWrappable) => Promise; declare function asyncReduce(initial: O, reducer: (result: O, value: T, i: number) => O | Promise): (iterable: AsyncWrappable) => Promise; declare function asyncReduce(reducer: (result: T, value: T, i: number) => T | Promise, iterable: AsyncWrappable): Promise; declare function asyncReduce(reducer: (result: O, value: T, i: number) => O | Promise, iterable: AsyncWrappable): Promise; declare function asyncReduce(initial: O, reducer: (result: O, value: T, i: number) => O | Promise, iterable: AsyncWrappable): Promise; export { asyncReduce };