import { ItIt } from '../utils/types'; type It = Iterable; type Opt = T | undefined; /** * @short * Yields tuples of several iterators in parallel, as if *zipping* values together. * * @categories * static * * @description * The first yielded value of all given iterables are yielded as a single tuple from the * resulting iterable. The same happens for the second, third, etc. This happens as long * as at least one iterable has values to yield. `undefined` will be used for missing * values. * * To ensure all iterables are of the same size (at runtime), use {@link ZipStrict}. * * @since * 0.0.1 * * @parameter * ...iterables * Iterable[] * Iterables to zip together. * * @returns * IterableIterator<[...T]> * * @example * j.Zip( * [1, 2, 3, 4], * [a, b, c, d], * ) * // => [[1, a], [2, b], [3, c], [4, d]] * * @example * j.Zip( * [1, 2, 3], * [a, b], * [A, B, C, D], * ) * // => [ * [ 1, a, A], * [ 2, b, B], * [ 3, undefined, C], * [undefined, undefined, D], * ] */ export declare function Zip(itA: It): ItIt<[Opt]>; export declare function Zip(itA: It, itB: It): ItIt<[Opt, Opt]>; export declare function Zip(itA: It, itB: It, itC: It): ItIt<[Opt, Opt, Opt]>; export declare function Zip(itA: It, itB: It, itC: It, itD: It): ItIt<[Opt, Opt, Opt, Opt]>; export declare function Zip(itA: It, itB: It, itC: It, itD: It, itE: It): ItIt<[Opt, Opt, Opt, Opt, Opt]>; export declare function Zip(itA: It, itB: It, itC: It, itD: It, itE: It, itF: It): ItIt<[Opt, Opt, Opt, Opt, Opt, Opt]>; export declare function Zip(itA: It, itB: It, itC: It, itD: It, itE: It, itF: It, itG: It): ItIt<[Opt, Opt, Opt, Opt, Opt, Opt, Opt]>; export declare function Zip(itA: It, itB: It, itC: It, itD: It, itE: It, itF: It, itG: It, itH: It): ItIt<[Opt, Opt, Opt, Opt, Opt, Opt, Opt, Opt]>; export declare function Zip(itA: It, itB: It, itC: It, itD: It, itE: It, itF: It, itG: It, itH: It, itI: It): ItIt<[Opt, Opt, Opt, Opt, Opt, Opt, Opt, Opt, Opt]>; export declare function Zip(itA: It, itB: It, itC: It, itD: It, itE: It, itF: It, itG: It, itH: It, itI: It, itJ: It): ItIt<[Opt, Opt, Opt, Opt, Opt, Opt, Opt, Opt, Opt, Opt]>; export declare function Zip(...iterables: Array>): ItIt>; export declare function ZipStrict(itA: It): ItIt<[A]>; export declare function ZipStrict(itA: It, itB: It): ItIt<[A, B]>; export declare function ZipStrict(itA: It, itB: It, itC: It): ItIt<[A, B, C]>; export declare function ZipStrict(itA: It, itB: It, itC: It, itD: It): ItIt<[A, B, C, D]>; export declare function ZipStrict(itA: It, itB: It, itC: It, itD: It, itE: It): ItIt<[A, B, C, D, E]>; export declare function ZipStrict(itA: It, itB: It, itC: It, itD: It, itE: It, itF: It): ItIt<[A, B, C, D, E, F]>; export declare function ZipStrict(itA: It, itB: It, itC: It, itD: It, itE: It, itF: It, itG: It): ItIt<[A, B, C, D, E, F, G]>; export declare function ZipStrict(itA: It, itB: It, itC: It, itD: It, itE: It, itF: It, itG: It, itH: It): ItIt<[A, B, C, D, E, F, G, H]>; export declare function ZipStrict(itA: It, itB: It, itC: It, itD: It, itE: It, itF: It, itG: It, itH: It, itI: It): ItIt<[A, B, C, D, E, F, G, H, I]>; export declare function ZipStrict(itA: It, itB: It, itC: It, itD: It, itE: It, itF: It, itG: It, itH: It, itI: It, itJ: It): ItIt<[A, B, C, D, E, F, G, H, I, J]>; export declare function ZipStrict(...iterables: Array>): ItIt>; export {};