import { LazyArg } from "@tsplus/stdlib/data/Function";
import { Effect } from "@effect/core/io/Effect/definition";
/**
 * Returns an effect that performs the outer effect first, followed by the
 * inner effect, yielding the value of the inner effect.
 *
 * This method can be used to "flatten" nested effects.
 * @tsplus static ets/Effect/Ops flatten
 * @tsplus location "@effect/core/io/Effect/operations/flatten"
 */
export declare function flatten<R, E, R1, E1, A>(effect: LazyArg<Effect<R, E, Effect<R1, E1, A>>>, __tsplusTrace?: string): Effect<R | R1, E | E1, A>;
/**
 * Returns an effect that performs the outer effect first, followed by the
 * inner effect, yielding the value of the inner effect.
 *
 * This method can be used to "flatten" nested effects.
 * @tsplus fluent ets/Effect flatten
 * @tsplus location "@effect/core/io/Effect/operations/flatten"
 */
export declare function flattenNow<R, E, R1, E1, A>(self: Effect<R, E, Effect<R1, E1, A>>, __tsplusTrace?: string): Effect<R | R1, E | E1, A>;
//# sourceMappingURL=flatten.d.ts.map