import { Layer } from "@effect/core/io/Layer/definition";
import { Env } from "@tsplus/stdlib/service/Env";
/**
 * Feeds the error or output services of this layer into the input of either
 * the specified `failure` or `success` layers, resulting in a new layer with
 * the inputs of this layer, and the error or outputs of the specified layer.
 * @tsplus fluent ets/Layer foldLayer
 * @tsplus location "@effect/core/io/Layer/operations/foldLayer"
 */
export declare function foldLayer_<R, E, A, R2, E2, A2, R3, E3, A3>(self: Layer<R, E, A>, failure: (e: E) => Layer<R2, E2, A2>, success: (a: Env<A>) => Layer<R3, E3, A3>): Layer<R | R2 | R3, E2 | E3, A2 & A3>;
/**
 * Feeds the error or output services of this layer into the input of either
 * the specified `failure` or `success` layers, resulting in a new layer with
 * the inputs of this layer, and the error or outputs of the specified layer.
 * @tsplus static ets/Layer/Aspects foldLayer
 * @tsplus pipeable ets/Layer foldLayer
 * @tsplus location "@effect/core/io/Layer/operations/foldLayer"
 */
export declare const foldLayer: <E, A, R2, E2, A2, R3, E3, A3>(failure: (e: E) => import("../definition").Layer<R2, E2, A2>, success: (a: import("@tsplus/stdlib/service/Env").Env<A>) => import("../definition").Layer<R3, E3, A3>) => <R>(self: import("../definition").Layer<R, E, A>) => import("../definition").Layer<R | R2 | R3, E2 | E3, A2 & A3>;
//# sourceMappingURL=foldLayer.d.ts.map