import * as Tp from "../../Collections/Immutable/Tuple"
import type { Stream } from "./definitions"
/**
 * Zips this stream with another point-wise, creating a new stream of pairs of elements
 * from both sides.
 *
 * The defaults `defaultLeft` and `defaultRight` will be used if the streams have different lengths
 * and one of the streams has ended before the other.
 */
export declare function zipAll_<R, R1, E, E1, O, O2>(
  self: Stream<R, E, O>,
  that: Stream<R1, E1, O2>,
  defaultLeft: O,
  defaultRight: O2
): Stream<R & R1, E | E1, Tp.Tuple<[O, O2]>>
/**
 * Zips this stream with another point-wise, creating a new stream of pairs of elements
 * from both sides.
 *
 * The defaults `defaultLeft` and `defaultRight` will be used if the streams have different lengths
 * and one of the streams has ended before the other.
 *
 * @dataFirst zipAll_
 */
export declare function zipAll<R1, E1, O, O2>(
  that: Stream<R1, E1, O2>,
  defaultLeft: O,
  defaultRight: O2
): <R, E>(self: Stream<R, E, O>) => Stream<R & R1, E | E1, Tp.Tuple<[O, O2]>>
//# sourceMappingURL=zipAll.d.ts.map
