import { Sink } from "@effect/core/stream/Sink/definition/base";
import { Chunk } from "@tsplus/stdlib/collections/Chunk/definition";
/**
 * @tsplus fluent ets/Sink foldSink
 * @tsplus location "@effect/core/stream/Sink/operations/foldSink"
 */
export declare function foldSink_<R, R1, R2, E, E1, E2, In, In1 extends In, In2 extends In, L, L1 extends L, L2 extends L, Z, Z1, Z2>(self: Sink<R, E, In, L, Z>, failure: (err: E) => Sink<R1, E1, In1, L1, Z1>, success: (z: Z) => Sink<R2, E2, In2, L2, Z2>, __tsplusTrace?: string): Sink<R | R1 | R2, E1 | E2, In1 & In2, L1 | L2, Z1 | Z2>;
/**
 * @tsplus static ets/Sink/Aspects foldSink
 * @tsplus pipeable ets/Sink foldSink
 * @tsplus location "@effect/core/stream/Sink/operations/foldSink"
 */
export declare const foldSink: <R1, R2, E, E1, E2, In, In1 extends In, In2 extends In, L, L1 extends L, L2 extends L, Z, Z1, Z2>(failure: (err: E) => import("../definition").Sink<R1, E1, In1, L1, Z1>, success: (z: Z) => import("../definition").Sink<R2, E2, In2, L2, Z2>, __tsplusTrace?: string) => <R>(self: import("../definition").Sink<R, E, In, L, Z>) => import("../definition").Sink<R | R1 | R2, E1 | E2, In1 & In2, L1 | L2, Z1 | Z2>;
//# sourceMappingURL=foldSink.d.ts.map