import { Layer } from "@effect/core/io/Layer/definition";
/**
 * Feeds the output services of this layer into the input of the specified
 * layer, resulting in a new layer with the inputs of this layer, and the
 * outputs of both layers.
 * @tsplus operator ets/Layer <
 * @tsplus fluent ets/Layer andUsing
 * @tsplus location "@effect/core/io/Layer/operations/andUsing"
 */
export declare function andUsing_<RIn, E, ROut, RIn2, E2, ROut2>(that: Layer<RIn2, E2, ROut2>, self: Layer<RIn, E, ROut>): Layer<RIn | Exclude<RIn2, ROut>, E2 | E, ROut | ROut2>;
/**
 * Feeds the output services of this layer into the input of the specified
 * layer, resulting in a new layer with the inputs of this layer, and the
 * outputs of both layers.
 * @tsplus static ets/Layer/Aspects andUsing
 * @tsplus pipeable ets/Layer andUsing
 * @tsplus location "@effect/core/io/Layer/operations/andUsing"
 */
export declare const andUsing: <RIn, E, ROut>(self: import("../definition").Layer<RIn, E, ROut>) => <RIn2, E2, ROut2>(that: import("../definition").Layer<RIn2, E2, ROut2>) => import("../definition").Layer<RIn | Exclude<RIn2, ROut>, E | E2, ROut | ROut2>;
//# sourceMappingURL=andUsing.d.ts.map