import "../Operator/index.js";
import * as Tp from "../Collections/Immutable/Tuple/index.js";
import type { Either } from "../Either/index.js";
export declare function zipWith(iterableA: Iterable, iterableB: Iterable, zipper: (a: A, b: B) => C): Iterable;
export declare function map(f: (a: A, k: number) => B): (i: Iterable) => Iterable;
export declare function map_(i: Iterable, f: (a: A, k: number) => B): Iterable;
export declare function zip(fb: Iterable): (fa: Iterable) => Iterable>;
export declare function zip_(fa: Iterable, fb: Iterable): Iterable>;
export declare function chain(f: (a: A) => Iterable): (i: Iterable) => Iterable;
export declare function chain_(i: Iterable, f: (a: A) => Iterable): Iterable;
export declare function ap(fa: Iterable): (fab: Iterable<(a: A) => B>) => Iterable;
export declare function of(a: A): Iterable;
export declare function take_(a: Iterable, n: number): Iterable;
export declare function skip_(a: Iterable, n: number): Iterable;
export declare const never: Iterable;
export declare function foldMap(M: {
empty: M;
concat: (x: M, y: M) => M;
}): (f: (a: A, k: number) => M) => (fa: Iterable) => M;
export declare function reduce(b: B, f: (b: B, a: A, i: number) => B): (fa: Iterable) => B;
export declare function reduce_(fa: Iterable, b: B, f: (b: B, a: A, i: number) => B): B;
export declare function reduceRight(b: B, f: (a: A, b: B, i: number) => B): (fa: Iterable) => B;
export declare function reduceRight_(fa: Iterable, b: B, f: (a: A, b: B, i: number) => B): B;
export declare function concat(a: Iterable, b: Iterable): Iterable;
export declare function flatten(a: Iterable>): Iterable;
export declare function partitionMap(f: (a: A) => Either): (as: Iterable) => Tp.Tuple<[Iterable, Iterable]>;
/**
* Infinite sequence produced by repeated application of f to a
*/
export declare function unfold(a: A, f: (a: A) => A): Iterable;
export declare function corresponds(left: Iterable, right: Iterable, f: (a: A, b: B) => boolean): boolean;
//# sourceMappingURL=index.d.ts.map