import { Sink } from "@effect/core/stream/Sink/definition/base";
/**
 * Runs this sink until it yields a result, then uses that result to create
 * another sink from the provided function which will continue to run until it
 * yields a result.
 *
 * This function essentially runs sinks in sequence.
 * @tsplus fluent ets/Sink flatMap
 * @tsplus location "@effect/core/stream/Sink/operations/flatMap"
 */
export declare function flatMap_<R, R1, E, E1, In, In1 extends In, L, L1 extends L, Z, Z1>(self: Sink<R, E, In, L, Z>, f: (z: Z) => Sink<R1, E1, In1, L1, Z1>): Sink<R | R1, E | E1, In & In1, L1, Z1>;
/**
 * Runs this sink until it yields a result, then uses that result to create
 * another sink from the provided function which will continue to run until it
 * yields a result.
 *
 * This function essentially runs sinks in sequence.
 * @tsplus static ets/Sink/Aspects flatMap
 * @tsplus pipeable ets/Sink flatMap
 * @tsplus location "@effect/core/stream/Sink/operations/flatMap"
 */
export declare const flatMap: <R1, E1, In, In1 extends In, L, L1 extends L, Z, Z1>(f: (z: Z) => import("../definition").Sink<R1, E1, In1, L1, Z1>) => <R, E>(self: import("../definition").Sink<R, E, In, L, Z>) => import("../definition").Sink<R | R1, E | E1, In & In1, L1, Z1>;
//# sourceMappingURL=flatMap.d.ts.map