/** iterable callback that maps a value into another */ export type MapCallback = (element: T, index: number) => S; /** iterable callback that maps a value into another */ export type GuardCallback = (element: T, index: number) => element is R; /** reduce callback */ export type ReduceCallback = (accumulator: S, currentValue: T, index: number) => S; /** filter guard callback */ export type FilterGuardCallback = (element: T, index: number) => element is S; /** elements with their zero based index */ export declare function entries(iter: Iterable): IterableIterator<[number, T]>; /** iterable flat map */ export declare function flatMap(iter: Iterable, callback: MapCallback>): IterableIterator; /** iterable reduce */ export declare function reduce(iter: Iterable, callback: ReduceCallback, initialValue: S): S; /** iterable map */ export declare function map(iter: Iterable, callback: MapCallback): IterableIterator; /** guard iterable filter */ export declare function filter(iter: Iterable, callback: FilterGuardCallback): IterableIterator; /** generic iterable filter */ export declare function filter(iter: Iterable, callback: MapCallback): IterableIterator; /** iterable some */ export declare function some(iter: Iterable, callback: MapCallback): boolean; /** iterable every */ export declare function every(iter: Iterable, callback: GuardCallback): iter is Iterable; export declare function every(iter: Iterable, callback: MapCallback): boolean; /** iterable length */ export declare function length(iter: Iterable): number; /** iterable slice of an array */ export declare function slice(arr: readonly T[], frm?: number, to?: number, stride?: number): IterableIterator; /** iterable reverse of an array */ export declare function reverse(arr: readonly T[]): IterableIterator; /** chain several iterables */ export declare function chain(...iters: Iterable[]): IterableIterator; /** iterate over bigrams of an iterable */ export declare function bigrams(iterable: Iterable): IterableIterator<[T, T]>; /** return the first element of an iterable */ export declare function first(iterable: Iterable): T | undefined; /** return if something is iterable */ export declare function isIterable(obj: unknown): obj is Iterable;