import { Channel } from "@effect/core/stream/Channel/definition/base";
import { Effect } from "@effect/core/io/Effect/definition";
import { Either } from "@tsplus/stdlib/data/Either/definition";
import { Deferred } from "@effect/core/io/Deferred/definition";
import { Maybe } from "@tsplus/stdlib/data/Maybe/definition";
import { MergeStrategy } from "@effect/core/stream/Channel/MergeStrategy";
/**
 * @tsplus static ets/Channel/Ops mergeAllWith
 * @tsplus location "@effect/core/stream/Channel/operations/mergeAllWith"
 */
export declare function mergeAllWith_<Env, Env1, InErr, InErr1, InElem, InElem1, InDone, InDone1, OutErr, OutErr1, OutElem, OutDone>(channels: Channel<Env, InErr, InElem, InDone, OutErr, Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem, OutDone>, OutDone>, n: number, f: (o1: OutDone, o2: OutDone) => OutDone, bufferSize?: number, mergeStrategy?: MergeStrategy): Channel<Env | Env1, InErr & InErr1, InElem & InElem1, InDone & InDone1, OutErr | OutErr1, OutElem, OutDone>;
/**
 * @tsplus static ets/Channel/Aspects mergeAllWith
 */
export declare const mergeAllWith: <OutDone>(n: number, f: (o1: OutDone, o2: OutDone) => OutDone, bufferSize?: number, mergeStrategy?: MergeStrategy) => <Env_1, Env1, InErr, InErr1, InElem, InElem1, InDone, InDone1, OutErr, OutErr1, OutElem>(channels: import("../definition").Channel<Env_1, InErr, InElem, InDone, OutErr, import("../definition").Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem, OutDone>, OutDone>) => import("../definition").Channel<Env_1 | Env1, InErr & InErr1, InElem & InElem1, InDone & InDone1, OutErr | OutErr1, OutElem, OutDone>;
//# sourceMappingURL=mergeAllWith.d.ts.map