import { Spreadable } from "@tsplus/stdlib/utilities/Types";
import { Channel } from "@effect/core/stream/Channel/definition/base";
import { LazyArg } from "@tsplus/stdlib/data/Function";
import { Layer } from "@effect/core/io/Layer/definition";
/**
 * Splits the environment into two parts, providing one part using the
 * specified layer and leaving the remainder `Env0`.
 * @tsplus fluent ets/Channel provideSomeLayer
 * @tsplus location "@effect/core/stream/Channel/operations/provideSomeLayer"
 */
export declare function provideSomeLayer_<R0 extends Spreadable, R extends Spreadable, R2 extends Spreadable, InErr, InElem, InDone, OutErr, OutErr2, OutElem, OutDone>(self: Channel<R, InErr, InElem, InDone, OutErr, OutElem, OutDone>, layer: LazyArg<Layer<R0, OutErr2, R2>>): Channel<R0 | Exclude<R, R2>, InErr, InElem, InDone, OutErr | OutErr2, OutElem, OutDone>;
/**
 * @tsplus static ets/Channel/Aspects provideSomeLayer
 * @tsplus pipeable ets/Channel provideSomeLayer
 * @tsplus location "@effect/core/stream/Channel/operations/provideSomeLayer"
 */
export declare const provideSomeLayer: <R0 extends import("@tsplus/stdlib/utilities/Types").Spreadable, R2 extends import("@tsplus/stdlib/utilities/Types").Spreadable, OutErr2>(layer: import("@tsplus/stdlib/data/Function").LazyArg<import("../../../io/Layer").Layer<R0, OutErr2, R2>>) => <R extends import("@tsplus/stdlib/utilities/Types").Spreadable, InErr, InElem, InDone, OutErr, OutElem, OutDone>(self: import("../definition").Channel<R, InErr, InElem, InDone, OutErr, OutElem, OutDone>) => import("../definition").Channel<R0 | Exclude<R, R2>, InErr, InElem, InDone, OutErr | OutErr2, OutElem, OutDone>;
//# sourceMappingURL=provideSomeLayer.d.ts.map