import type { Fn0, FnAny } from "@thi.ng/api";
import type { IReducible, Reducer, ReductionFn } from "./api.js";
export declare function reduce(rfn: Reducer, src: Iterable): B;
export declare function reduce(rfn: Reducer, acc: B, src: Iterable): B;
export declare function reduce(rfn: Reducer, src: IReducible): B;
export declare function reduce(rfn: Reducer, acc: A, src: IReducible): B;
export declare function reduceRight(rfn: Reducer, src: ArrayLike): B;
export declare function reduceRight(rfn: Reducer, acc: B, src: ArrayLike): B;
/**
* Convenience helper for building a full {@link Reducer} using the identity
* function (i.e. `(x) => x`) as completion step (true for 90% of all
* bundled transducers).
*
* @param init - init step of reducer
* @param rfn - reduction step of reducer
*/
export declare const reducer: (init: Fn0, rfn: ReductionFn) => Reducer;
export declare const $$reduce: (rfn: FnAny>, args: any[]) => any;
//# sourceMappingURL=reduce.d.ts.map