import { Layer } from "@effect/core/io/Layer/definition";
import { Erase } from "@tsplus/stdlib/utilities/Types";
/**
 * Feeds the output services of this builder into the input of the specified
 * builder, resulting in a new builder with the inputs of this builder as
 * well as any leftover inputs, and the outputs of the specified builder.
 * @tsplus operator ets/Layer <<
 * @tsplus fluent ets/Layer using
 * @tsplus location "@effect/core/io/Layer/operations/using"
 */
export declare function using_<RIn, E, ROut, RIn2, E2, ROut2>(that: Layer<RIn2, E2, ROut2>, self: Layer<RIn, E, ROut>): Layer<RIn | Erase<RIn2, ROut>, E | E2, ROut2>;
/**
 * Feeds the output services of this builder into the input of the specified
 * builder, resulting in a new builder with the inputs of this builder as
 * well as any leftover inputs, and the outputs of the specified builder.
 * @tsplus static ets/Layer/Aspects using
 * @tsplus pipeable ets/Layer using
 * @tsplus location "@effect/core/io/Layer/operations/using"
 */
export declare const using: <RIn, E, ROut>(self: import("@effect/core/io/Layer/definition").Layer<RIn, E, ROut>) => <RIn2, E2, ROut2>(that: import("@effect/core/io/Layer/definition").Layer<RIn2, E2, ROut2>) => import("@effect/core/io/Layer/definition").Layer<RIn | import("@tsplus/stdlib/utilities/Types").Erase<RIn2, ROut>, E | E2, ROut2>;
//# sourceMappingURL=using.d.ts.map