import { TArray } from "@effect/core/stm/TArray/definition";
import { USTM } from "@effect/core/stm/STM/definition/base";
/**
 * Atomically folds using a pure function.
 * @tsplus fluent ets/TArray reduce
 * @tsplus location "@effect/core/stm/TArray/operations/reduce"
 */
export declare function reduce_<A, Z>(self: TArray<A>, zero: Z, f: (z: Z, a: A) => Z): USTM<Z>;
/**
 * Atomically folds using a pure function.
 * @tsplus static ets/TArray/Aspects reduce
 * @tsplus pipeable ets/TArray reduce
 * @tsplus location "@effect/core/stm/TArray/operations/reduce"
 */
export declare const reduce: <A, Z>(zero: Z, f: (z: Z, a: A) => Z) => (self: import("../definition").TArray<A>) => import("../../STM").USTM<Z>;
//# sourceMappingURL=reduce.d.ts.map