import { Effect } from "@effect/core/io/Effect/definition";
import { Cause } from "@effect/core/io/Cause/definition";
/**
 * A more powerful version of `fold` that allows recovering from any kind of
 * failure except interruptions.
 * @tsplus fluent ets/Effect foldCause
 * @tsplus location "@effect/core/io/Effect/operations/foldCause"
 */
export declare function foldCause_<R, E, A, A2, A3>(self: Effect<R, E, A>, failure: (cause: Cause<E>) => A2, success: (a: A) => A3, __tsplusTrace?: string): Effect<R, never, A2 | A3>;
/**
 * A more powerful version of `fold` that allows recovering from any kind of
 * failure except interruptions.
 * @tsplus static ets/Effect/Aspects foldCause
 * @tsplus pipeable ets/Effect foldCause
 * @tsplus location "@effect/core/io/Effect/operations/foldCause"
 */
export declare const foldCause: <E, A, A2, A3>(failure: (cause: import("../../Cause").Cause<E>) => A2, success: (a: A) => A3, __tsplusTrace?: string) => <R>(self: import("../definition").Effect<R, E, A>) => import("../definition").Effect<R, never, A2 | A3>;
//# sourceMappingURL=foldCause.d.ts.map