import { CurriedFunction2 } from '../typings/types'; type MapFunc = (a: U, b: V) => R; interface ZipWith { (fn: MapFunc, list1: ArrayLike, list2: ArrayLike): R[]; (fn: MapFunc, list1: ArrayLike): (list2: ArrayLike) => R[]; (fn: MapFunc): CurriedFunction2, ArrayLike, R[]>; } /** * Creates a new list out of the two supplied by applying the function to each * equally-positioned pair in the lists. The returned list is truncated to the * length of the shorter of the two input lists. * * @param {Function} fn The function used to combine the two elements into one value. * @param {Array} a The first array to consider. * @param {Array} b The second array to consider. * @return {Array} The list made by combining same-indexed elements of `a` and `b` * using `fn`. * @example * * var f = (x, y) => { * // ... * }; * zipWith(f, [1, 2, 3], ['a', 'b', 'c']); * //=> [f(1, 'a'), f(2, 'b'), f(3, 'c')] */ declare const _default: ZipWith; export default _default;