import { Voidable } from "../maybe"; export { collect, count, isEmpty, first, last } from './ops'; export declare function join(separator?: string): (iter: Iterable) => string; export declare function nth(n: number): (iter: Iterable) => Voidable; export declare function stepBy(step: number): (iter: Iterable) => Iterable; export declare function chain(b: Iterable, ...more: Iterable[]): (a: Iterable) => Iterable; export declare function zip(b: Iterable): (a: Iterable) => Iterable<[A, B]>; export { unzip } from './ops'; export declare function map(f: (v: T) => R): (iter: Iterable) => Iterable; export declare function fill(v: R): (iter: Iterable) => Iterable; export declare function forEach(f: (v: T) => unknown): (iter: Iterable) => void; export { run } from './ops'; export declare function filter(f: (v: T) => v is S): (iter: Iterable) => Iterable; export declare function filter(f: (v: T) => unknown): (iter: Iterable) => Iterable; export { enumerate, indexed } from './ops'; export declare function skip(n: number): (iter: Iterable) => Iterable; export declare function take(n: number): (iter: Iterable) => Iterable; export declare function slice(from: number, to: number): (iter: Iterable) => Iterable; export declare function sub(from: number, count: number): (iter: Iterable) => Iterable; export declare function scan(f: (acc: R, val: T) => R, init: R): (iter: Iterable) => Iterable; export declare function flatMap(f: (v: T) => Iterable): (iter: Iterable) => Iterable; export { flatten } from './ops'; export declare function also(f: (v: T) => void): (iter: Iterable) => Iterable; export declare function fold(f: (acc: R, val: T) => R, init: R): (a: Iterable) => R; export declare function reduce(f: (acc: T, val: T) => T): (a: Iterable) => T; export declare function all(f: (v: T) => v is S): (a: Iterable) => a is Iterable; export declare function all(f: (v: T) => unknown): (a: Iterable) => boolean; export declare function any(f: (v: T) => unknown): (a: Iterable) => boolean; export declare function find(f: (v: T) => unknown): (a: Iterable) => Voidable; export declare function position(f: (v: T) => unknown): (a: Iterable) => number; export declare function indexOf(v: T): (a: Iterable) => number; export { max, min } from './ops'; export declare function push(...items: T[]): (a: Iterable) => Iterable; export declare function unshift(...items: T[]): (a: Iterable) => Iterable; export declare function as(): (a: Iterable) => Iterable; export { toArray, toSet, toMap } from './ops'; export declare function groupBy(keyf: (v: T) => K): (a: Iterable) => Iterable<[K, T[]]>; export declare function groupBy(keyf: (v: T) => K, valf: (v: T) => V): (a: Iterable) => Iterable<[K, V[]]>; export declare function relate(outerKey: (a: O) => K, innerKey: (b: I) => K): (inner: Iterable) => (outer: Iterable) => Iterable<[O, I]>; export declare function relateMap(outerKey: (a: O) => K, innerKey: (b: I) => K, selector: (a: O, b: I) => R): (inner: Iterable) => (outer: Iterable) => Iterable; export declare function mapKey(f: (key: K) => R): (iter: Iterable<[K, V]>) => Iterable<[R, V]>; export declare function mapValue(f: (val: V) => R): (iter: Iterable<[K, V]>) => Iterable<[K, R]>;