import { Effect } from "@effect/core/io/Effect/definition"; import { Chunk } from "@tsplus/stdlib/collections/Chunk/definition"; import { Sink } from "@effect/core/stream/Sink/definition/base"; import { Channel } from "@effect/core/stream/Channel/definition/base"; /** * Creates a sink that effectfully folds elements of type `In` into a * structure of type `S`, until `max` worth of elements (determined by the * `costFn`) have been folded. * * The `decompose` function will be used for decomposing elements that cause * an `S` aggregate to cross `max` into smaller elements. Be vigilant with * this function, it has to generate "simpler" values or the fold may never * end. A value is considered indivisible if `decompose` yields the empty * chunk or a single-valued chunk. In these cases, there is no other choice * than to yield a value that will cross the threshold. * @tsplus static effect/core/stream/Sink.Ops foldWeightedDecomposeEffect * @tsplus location "@effect/core/stream/Sink/operations/foldWeightedDecomposeEffect" */ export declare function foldWeightedDecomposeEffect(z: S, costFn: (s: S, input: In) => Effect, max: number, decompose: (input: In) => Effect>, f: (s: S, input: In) => Effect): Sink; //# sourceMappingURL=foldWeightedDecomposeEffect.d.ts.map