import { Layer } from "@effect/core/io/Layer/definition";
import { Env } from "@tsplus/stdlib/service/Env";
import { Effect } from "@effect/core/io/Effect/definition";
/**
 * Performs the specified effect if this layer succeeds.
 * @tsplus fluent ets/Layer tap
 * @tsplus location "@effect/core/io/Layer/operations/tap"
 */
export declare function tap_<RIn, E, ROut, RIn2, E2, X>(self: Layer<RIn, E, ROut>, f: (_: Env<ROut>) => Effect<RIn2, E2, X>): Layer<RIn | RIn2, E | E2, ROut>;
/**
 * Performs the specified effect if this layer succeeds.
 * @tsplus static ets/Layer/Aspects tap
 * @tsplus pipeable ets/Layer tap
 * @tsplus location "@effect/core/io/Layer/operations/tap"
 */
export declare const tap: <ROut, RIn2, E2, X>(f: (_: import("@tsplus/stdlib/service/Env").Env<ROut>) => import("../../Effect").Effect<RIn2, E2, X>) => <RIn, E>(self: import("../definition").Layer<RIn, E, ROut>) => import("../definition").Layer<RIn | RIn2, E | E2, ROut>;
//# sourceMappingURL=tap.d.ts.map