import { Effect } from "@effect/core/io/Effect/definition";
import { Cause } from "@effect/core/io/Cause/definition";
/**
 * Runs the specified effect if this effect is terminated, either because of a
 * defect or because of interruption.
 * @tsplus fluent ets/Effect onTermination
 * @tsplus location "@effect/core/io/Effect/operations/onTermination"
 */
export declare function onTermination_<R, E, A, R2, X>(self: Effect<R, E, A>, cleanup: (cause: Cause<never>) => Effect<R2, never, X>, __tsplusTrace?: string): Effect<R | R2, E, A>;
/**
 * Runs the specified effect if this effect is terminated, either because of a
 * defect or because of interruption.
 * @tsplus static ets/Effect/Aspects onTermination
 * @tsplus pipeable ets/Effect onTermination
 * @tsplus location "@effect/core/io/Effect/operations/onTermination"
 */
export declare const onTermination: <R2, X>(cleanup: (cause: Cause<never>) => import("../definition").Effect<R2, never, X>, __tsplusTrace?: string) => <R, E, A>(self: import("../definition").Effect<R, E, A>) => import("../definition").Effect<R | R2, E, A>;
//# sourceMappingURL=onTermination.d.ts.map