import { LazyArg } from "@tsplus/stdlib/data/Function";
import { Sink } from "@effect/core/stream/Sink/definition/base";
/**
 * Creates a sink that folds elements of type `In` into a structure of type
 * `S`, until `max` worth of elements (determined by the `costFn`) have been
 * folded.
 * @note Elements that have an individual cost larger than `max` will force
the sink to cross the `max` cost. See `foldWeightedDecompose` for a variant
that can handle these cases.
 * @tsplus static ets/Sink/Ops foldWeighted
 * @tsplus location "@effect/core/stream/Sink/operations/foldWeighted"
 */
export declare function foldWeighted<In, S>(z: LazyArg<S>, costFn: (s: S, input: In) => number, max: number, f: (s: S, input: In) => S, __tsplusTrace?: string): Sink<never, never, In, In, S>;
//# sourceMappingURL=foldWeighted.d.ts.map