declare type Tuple = N extends N ? number extends N ? T[] : TupleOf : never; declare type TupleOf = R["length"] extends N ? R : TupleOf; /** * Branches the given async iterable into the n branches. * * Example: * * ```ts * import { tee } from "./tee.ts"; * * const gen = async function* gen() { * yield 1; * yield 2; * yield 3; * } * * const [branch1, branch2] = tee(gen()); * * (async () => { * for await (const n of branch1) { * console.log(n); // => 1, 2, 3 * } * })(); * * (async () => { * for await (const n of branch2) { * console.log(n); // => 1, 2, 3 * } * })(); * ``` */ export declare function tee(iterable: AsyncIterable, n?: N): Tuple, N>; export {};