import { Cause } from "@effect/core/io/Cause/definition";
import { LazyArg } from "@tsplus/stdlib/data/Function";
import { Trace } from "@effect/core/io/Trace/definition";
import { FiberId } from "@effect/core/io/FiberId/definition";
import { Eval } from "@tsplus/stdlib/io/Eval/definition";
/**
 * Folds over the cases of this cause with the specified functions.
 * @tsplus fluent ets/Cause fold
 * @tsplus location "@effect/core/io/Cause/operations/fold"
 */
export declare function fold_<E, Z>(self: Cause<E>, onEmptyCause: LazyArg<Z>, onFailCause: (e: E, trace: Trace) => Z, onDieCause: (e: unknown, trace: Trace) => Z, onInterruptCause: (fiberId: FiberId, trace: Trace) => Z, onThenCause: (x: Z, y: Z) => Z, onBothCause: (x: Z, y: Z) => Z, onStacklessCause: (z: Z, stackless: boolean) => Z): Z;
/**
 * Folds over the cases of this cause with the specified functions.
 * @tsplus static ets/Cause/Aspects fold
 * @tsplus pipeable ets/Cause fold
 * @tsplus location "@effect/core/io/Cause/operations/fold"
 */
export declare const fold: <E, Z>(onEmptyCause: import("@tsplus/stdlib/data/Function").LazyArg<Z>, onFailCause: (e: E, trace: Trace) => Z, onDieCause: (e: unknown, trace: Trace) => Z, onInterruptCause: (fiberId: FiberId, trace: Trace) => Z, onThenCause: (x: Z, y: Z) => Z, onBothCause: (x: Z, y: Z) => Z, onStacklessCause: (z: Z, stackless: boolean) => Z) => (self: import("@effect/core/io/Cause/definition").Cause<E>) => Z;
//# sourceMappingURL=fold.d.ts.map