import { LazyArg } from "@tsplus/stdlib/data/Function";
import { Effect } from "@effect/core/io/Effect/definition";
import { Exit } from "@effect/core/io/Exit/definition";
import { Scope } from "@effect/core/io/Scope/definition";
/**
 * A more powerful variant of `acquireReleaseInterruptible` that allows the
 * `release` effect to depend on the `Exit` value specified when the scope
 * is closed.
 * @tsplus static ets/Effect/Ops acquireReleaseInterruptibleExit
 * @tsplus fluent ets/Effect acquireReleaseInterruptibleExit
 * @tsplus location "@effect/core/io/Effect/operations/acquireReleaseInterruptibleExit"
 */
export declare function acquireReleaseInterruptibleExit<R, E, A, R2, X>(acquire: LazyArg<Effect<R, E, A>>, release: (exit: Exit<unknown, unknown>) => Effect<R2, never, X>, __tsplusTrace?: string): Effect<R | R2 | Scope, E, A>;
//# sourceMappingURL=acquireReleaseInterruptibleExit.d.ts.map