import { Sink } from "@effect/core/stream/Sink/definition/base";
import { Effect } from "@effect/core/io/Effect/definition";
import { Maybe } from "@tsplus/stdlib/data/Maybe/definition";
import { Channel } from "@effect/core/stream/Channel/definition/base";
import { Chunk } from "@tsplus/stdlib/collections/Chunk/definition";
/**
 * Creates a sink that produces values until one verifies the predicate `f`.
 * @tsplus fluent ets/Sink untilOutputEffect
 * @tsplus location "@effect/core/stream/Sink/operations/untilOutputEffect"
 */
export declare function untilOutputEffect_<R, E, R2, E2, In, L extends In, Z>(self: Sink<R, E, In, L, Z>, f: (z: Z) => Effect<R2, E2, boolean>, __tsplusTrace?: string): Sink<R | R2, E | E2, In, L, Maybe<Z>>;
/**
 * Creates a sink that produces values until one verifies the predicate `f`.
 * @tsplus static ets/Sink/Aspects untilOutputEffect
 * @tsplus pipeable ets/Sink untilOutputEffect
 * @tsplus location "@effect/core/stream/Sink/operations/untilOutputEffect"
 */
export declare const untilOutputEffect: <R2, E2, Z>(f: (z: Z) => import("../../../io/Effect").Effect<R2, E2, boolean>, __tsplusTrace?: string) => <R, E, In, L extends In>(self: import("../definition").Sink<R, E, In, L, Z>) => import("../definition").Sink<R | R2, E | E2, In, L, import("@tsplus/stdlib/data/Maybe").Maybe<Z>>;
//# sourceMappingURL=untilOutputEffect.d.ts.map