import { Effect } from "@effect/core/io/Effect/definition";
import { Cause } from "@effect/core/io/Cause/definition";
/**
 * Runs the specified effect if this effect fails, providing the error to the
 * effect if it exists. The provided effect will not be interrupted.
 * @tsplus fluent ets/Effect onError
 * @tsplus location "@effect/core/io/Effect/operations/onError"
 */
export declare function onError_<R, E, A, R2, X>(self: Effect<R, E, A>, cleanup: (cause: Cause<E>) => Effect<R2, never, X>, __tsplusTrace?: string): Effect<R | R2, E, A>;
/**
 * Runs the specified effect if this effect fails, providing the error to the
 * effect if it exists. The provided effect will not be interrupted.
 * @tsplus static ets/Effect/Aspects onError
 * @tsplus pipeable ets/Effect onError
 * @tsplus location "@effect/core/io/Effect/operations/onError"
 */
export declare const onError: <E, R2, X>(cleanup: (cause: import("../../Cause").Cause<E>) => import("../definition").Effect<R2, never, X>, __tsplusTrace?: string) => <R, A>(self: import("../definition").Effect<R, E, A>) => import("../definition").Effect<R | R2, E, A>;
//# sourceMappingURL=onError.d.ts.map