import { LazyArg } from "@tsplus/stdlib/data/Function";
import { Predicate } from "@tsplus/stdlib/data/Predicate";
import { Sink } from "@effect/core/stream/Sink/definition/base";
import { Channel } from "@effect/core/stream/Channel/definition/base";
import { Chunk } from "@tsplus/stdlib/collections/Chunk/definition";
import { Tuple } from "@tsplus/stdlib/data/Tuple/definition";
/**
 * A sink that folds its inputs with the provided function, termination
 * predicate and initial state.
 * @tsplus static ets/Sink/Ops fold
 * @tsplus location "@effect/core/stream/Sink/operations/fold"
 */
export declare function fold<In, S>(z: LazyArg<S>, cont: Predicate<S>, f: (s: S, input: In) => S, __tsplusTrace?: string): Sink<never, never, In, In, S>;
//# sourceMappingURL=fold.d.ts.map