import { Channel } from "@effect/core/stream/Channel/definition/base";
/**
 * @tsplus fluent ets/Channel bind
 * @tsplus location "@effect/core/stream/Channel/operations/do"
 */
export declare function bind_<Env, Env1, InErr, InErr1, InElem, InElem1, InDone, InDone1, OutErr, OutErr1, OutElem, OutElem1, OutDone, K, N extends string>(self: Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, K>, tag: Exclude<N, keyof K>, f: (_: K) => Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>): Channel<Env | Env1, InErr & InErr1, InElem & InElem1, InDone & InDone1, OutErr | OutErr1, OutElem | OutElem1, K & {
    [k in N]: OutDone;
}>;
/**
 * @tsplus static ets/Channel/Aspects bind
 * @tsplus pipeable ets/Channel bind
 * @tsplus location "@effect/core/stream/Channel/operations/do"
 */
export declare const bind: <Env_1, InErr, InElem, InDone, OutErr, OutElem, OutDone, K, N extends string>(tag: Exclude<N, keyof K>, f: (_: K) => import("../definition").Channel<Env_1, InErr, InElem, InDone, OutErr, OutElem, OutDone>) => <Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1>(self: import("../definition").Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, K>) => import("../definition").Channel<Env_1 | Env1, InErr & InErr1, InElem & InElem1, InDone & InDone1, OutErr | OutErr1, OutElem | OutElem1, K & { [k in N]: OutDone; }>;
/**
 * @tsplus fluent ets/Channel bindValue
 * @tsplus location "@effect/core/stream/Channel/operations/do"
 */
export declare function bindValue_<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone, K, N extends string>(self: Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, K>, tag: Exclude<N, keyof K>, f: (_: K) => OutDone): Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, K & {
    [k in N]: OutDone;
}>;
/**
 * @tsplus static ets/Channel/Aspects bindValue
 * @tsplus pipeable ets/Channel bindValue
 * @tsplus location "@effect/core/stream/Channel/operations/do"
 */
export declare const bindValue: <OutDone, K, N extends string>(tag: Exclude<N, keyof K>, f: (_: K) => OutDone) => <Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1>(self: import("../definition").Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, K>) => import("../definition").Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, K & { [k in N]: OutDone; }>;
/**
 * @tsplus static ets/Channel/Ops Do
 * @tsplus location "@effect/core/stream/Channel/operations/do"
 */
export declare function Do(): Channel<never, unknown, unknown, unknown, never, never, {}>;
//# sourceMappingURL=do.d.ts.map