import { LazyArg } from "@tsplus/stdlib/data/Function";
import { Effect } from "@effect/core/io/Effect/definition";
import { Scope } from "@effect/core/io/Scope/definition";
/**
 * Constructs a scoped resource from an `acquire` and `release` workflow. If
 * `acquire` successfully completes execution then `release` will be added to
 * the finalizers associated with the scope of this workflow and is guaranteed
 * to be run when the scope is closed.
 *
 * The `acquire` and `release` workflows will be run uninterruptibly.
 * @tsplus static ets/Effect/Ops acquireRelease
 * @tsplus fluent ets/Effect acquireRelease
 * @tsplus location "@effect/core/io/Effect/operations/acquireRelease"
 */
export declare function acquireRelease<R, E, A, R2, X>(acquire: LazyArg<Effect<R, E, A>>, release: (a: A) => Effect<R2, never, X>, __tsplusTrace?: string): Effect<R | R2 | Scope, E, A>;
//# sourceMappingURL=acquireRelease.d.ts.map