import { Layer } from "@effect/core/io/Layer/definition";
import { Env } from "@tsplus/stdlib/service/Env";
/**
 * Constructs a layer dynamically based on the output of this layer.
 * @tsplus fluent ets/Layer flatMap
 * @tsplus location "@effect/core/io/Layer/operations/flatMap"
 */
export declare function flatMap_<R, E, A, R2, E2, A2>(self: Layer<R, E, A>, f: (a: Env<A>) => Layer<R2, E2, A2>): Layer<R | R2, E | E2, A2>;
/**
 * Constructs a layer dynamically based on the output of this layer.
 * @tsplus static ets/Layer/Aspects flatMap
 * @tsplus pipeable ets/Layer flatMap
 * @tsplus location "@effect/core/io/Layer/operations/flatMap"
 */
export declare const flatMap: <A, R2, E2, A2>(f: (a: import("@tsplus/stdlib/service/Env").Env<A>) => import("../definition").Layer<R2, E2, A2>) => <R, E>(self: import("../definition").Layer<R, E, A>) => import("../definition").Layer<R | R2, E | E2, A2>;
//# sourceMappingURL=flatMap.d.ts.map