import { Predicate } from "@tsplus/stdlib/data/Predicate";
import { Ref } from "@effect/core/io/Ref/definition";
import { Channel } from "@effect/core/stream/Channel/definition/base";
/**
 * Creates a channel backed by a buffer. When the buffer is empty, the channel
 * will simply passthrough its input as output. However, when the buffer is
 * non-empty, the value inside the buffer will be passed along as output.
 * @tsplus static ets/Channel/Ops buffer
 * @tsplus location "@effect/core/stream/Channel/operations/buffer"
 */
export declare function buffer<InElem, InErr, InDone>(empty: InElem, isEmpty: Predicate<InElem>, ref: Ref<InElem>): Channel<never, InErr, InElem, InDone, InErr, InElem, InDone>;
//# sourceMappingURL=buffer.d.ts.map