import { Scope } from "@effect/core/io/Scope/definition";
import { LazyArg } from "@tsplus/stdlib/data/Function";
import { Effect } from "@effect/core/io/Effect/definition";
import { Env } from "@tsplus/stdlib/service/Env";
/**
 * Extends the scope of an `Effect` workflow that needs a scope into this
 * scope by providing it to the workflow but not closing the scope when the
 * workflow completes execution. This allows extending a scoped value into a
 * larger scope.
 * @tsplus fluent ets/Scope extend
 * @tsplus fluent ets/Scope/Closeable extend
 * @tsplus location "@effect/core/io/Scope/operations/extend"
 */
export declare function extend_<R, E, A>(self: Scope, effect: LazyArg<Effect<R, E, A>>): Effect<Exclude<R, Scope>, E, A>;
/**
 * Extends the scope of an `Effect` workflow that needs a scope into this
 * scope by providing it to the workflow but not closing the scope when the
 * workflow completes execution. This allows extending a scoped value into a
 * larger scope.
 * @tsplus static ets/Scope/Aspects extend
 * @tsplus pipeable ets/Scope extend
 * @tsplus location "@effect/core/io/Scope/operations/extend"
 */
export declare const extend: <R, E, A>(effect: import("@tsplus/stdlib/data/Function").LazyArg<import("../../Effect").Effect<R, E, A>>) => (self: Scope) => import("../../Effect").Effect<Exclude<R, import("../definition").Scope>, E, A>;
//# sourceMappingURL=extend.d.ts.map