import { AsyncIterableLike } from "../async-like"; export type ReduceFn = (this: This, value: T, parent: Parent) => Accumulator; export type ReduceAsyncFn = (this: This, value: T, parent: Parent) => Promise | Accumulator; export declare function reduce(iterable: Iterable, callbackFn: ReduceFn, initialValue?: Accumulator, thisValue?: This, parent?: Parent): Accumulator; export declare function asyncReduce(iterable: AsyncIterableLike, callbackFn: ReduceAsyncFn, initialValue?: Accumulator, thisValue?: This, parent?: Parent): Promise;