import { Take } from "@effect/core/stream/Take/definition";
import { Effect } from "@effect/core/io/Effect/definition";
import { Cause } from "@effect/core/io/Cause/definition";
import { Chunk } from "@tsplus/stdlib/collections/Chunk/definition";
/**
 * Effectful version of `Take.fold`.
 *
 * Folds over the failure cause, success value and end-of-stream marker to
 * yield an effect.
 * @tsplus fluent ets/Take foldEffect
 * @tsplus location "@effect/core/stream/Take/operations/foldEffect"
 */
export declare function foldEffect_<R, R1, R2, E, E1, E2, E3, A, Z>(self: Take<E, A>, end: Effect<R, E1, Z>, error: (cause: Cause<E>) => Effect<R1, E2, Z>, value: (chunk: Chunk<A>) => Effect<R2, E3, Z>, __tsplusTrace?: string): Effect<R | R1 | R2, E1 | E2 | E3, Z>;
/**
 * Effectful version of `Take.fold`.
 *
 * Folds over the failure cause, success value and end-of-stream marker to
 * yield an effect.
 * @tsplus static ets/Take/Aspects foldEffect
 * @tsplus pipeable ets/Take foldEffect
 * @tsplus location "@effect/core/stream/Take/operations/foldEffect"
 */
export declare const foldEffect: <R, R1, R2, E, E1, E2, E3, A, Z>(end: import("../../../io/Effect").Effect<R, E1, Z>, error: (cause: import("../../../io/Cause").Cause<E>) => import("../../../io/Effect").Effect<R1, E2, Z>, value: (chunk: import("@tsplus/stdlib/collections/Chunk").Chunk<A>) => import("../../../io/Effect").Effect<R2, E3, Z>, __tsplusTrace?: string) => (self: import("../definition").Take<E, A>) => import("../../../io/Effect").Effect<R | R1 | R2, E1 | E2 | E3, Z>;
//# sourceMappingURL=foldEffect.d.ts.map