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