import { Stream } from "@effect/core/stream/Stream/definition";
import { LazyArg } from "@tsplus/stdlib/data/Function";
import { Enqueue } from "@effect/core/io/Queue/definition/common";
import { Exit } from "@effect/core/io/Exit/definition";
import { Maybe } from "@tsplus/stdlib/data/Maybe/definition";
import { Effect } from "@effect/core/io/Effect/definition";
import { Scope } from "@effect/core/io/Scope/definition";
import { Channel } from "@effect/core/stream/Channel/definition/base";
import { Chunk } from "@tsplus/stdlib/collections/Chunk/definition";
/**
 * Like `Stream.runIntoQueue`, but provides the result as a scoped effect to
 * allow for scope composition.
 * @tsplus fluent ets/Stream runIntoQueueElementsScoped
 * @tsplus location "@effect/core/stream/Stream/operations/runIntoQueueElementsScoped"
 */
export declare function runIntoQueueElementsScoped_<R, E extends E1, A, E1>(self: Stream<R, E, A>, queue: LazyArg<Enqueue<Exit<Maybe<E1>, A>>>, __tsplusTrace?: string): Effect<R | Scope, E | E1, void>;
/**
 * Like `Stream.runIntoQueue`, but provides the result as a scoped effect to
 * allow for scope composition.
 * @tsplus static ets/Stream/Aspects runIntoQueueElementsScoped
 * @tsplus pipeable ets/Stream runIntoQueueElementsScoped
 * @tsplus location "@effect/core/stream/Stream/operations/runIntoQueueElementsScoped"
 */
export declare const runIntoQueueElementsScoped: <A, E1>(queue: import("@tsplus/stdlib/data/Function").LazyArg<import("../../../io/Queue").Enqueue<import("../../../io/Exit").Exit<import("@tsplus/stdlib/data/Maybe").Maybe<E1>, A>>>, __tsplusTrace?: string) => <R, E extends E1>(self: import("../definition").Stream<R, E, A>) => import("../../../io/Effect").Effect<import("../../../io/Scope").Scope | R, E1 | E, void>;
//# sourceMappingURL=runIntoQueueElementsScoped.d.ts.map