import { Layer } from "@effect/core/io/Layer/definition";
import { LazyArg } from "@tsplus/stdlib/data/Function";
/**
 * Combines this layer with the specified layer, producing a new layer that
 * has the inputs and outputs of both.
 * @tsplus operator ets/Layer +
 * @tsplus fluent ets/Layer and
 * @tsplus location "@effect/core/io/Layer/operations/and"
 */
export declare function and_<RIn, E, ROut, RIn2, E2, ROut2>(self: Layer<RIn, E, ROut>, that: LazyArg<Layer<RIn2, E2, ROut2>>): Layer<RIn | RIn2, E | E2, ROut | ROut2>;
/**
 * Combines this layer with the specified layer, producing a new layer that
 * has the inputs and outputs of both.
 * @tsplus static ets/Layer/Aspects and
 * @tsplus pipeable ets/Layer and
 * @tsplus location "@effect/core/io/Layer/operations/and"
 */
export declare const and: <RIn2, E2, ROut2>(that: import("@tsplus/stdlib/data/Function").LazyArg<import("@effect/core/io/Layer/definition").Layer<RIn2, E2, ROut2>>) => <RIn, E, ROut>(self: import("@effect/core/io/Layer/definition").Layer<RIn, E, ROut>) => import("@effect/core/io/Layer/definition").Layer<RIn | RIn2, E | E2, ROut | ROut2>;
//# sourceMappingURL=and.d.ts.map