import { Maybe, IterableLike, AsyncIterableLike, IterableOfPromise } from '../types'; /** * Operators used by Sequence */ export declare function filter(i: IterableLike, fnFilter: (t: T) => boolean): IterableIterator; export declare function skip(i: IterableLike, n: number): IterableIterator; export declare function take(i: IterableLike, n: number): IterableIterator; /** * Concat two iterables together */ export declare function concat(i: IterableLike, j: IterableLike): IterableIterator; export declare function concatMap(i: IterableLike, fn: (t: T) => IterableLike): IterableIterator; /** * Combine two iterables together using fnMap function. */ export declare function combine(i: IterableLike, j: IterableLike, fnMap: (t: T, u?: U) => V): IterableIterator; /** * apply a mapping function to an Iterable. */ export declare function map(i: IterableLike, fnMap: (t: T) => U): IterableIterator; export declare function scan(i: IterableLike, fnReduce: (prevValue: T, curValue: T, curIndex: number) => T): IterableIterator; export declare function scan(i: IterableLike, fnReduce: (prevValue: T, curValue: T, curIndex: number) => T, initValue: T): IterableIterator; export declare function scan(i: IterableLike, fnReduce: (prevValue: U, curValue: T, curIndex: number) => U, initValue: U): IterableIterator; export declare function all(i: IterableLike, fn: (t: T) => boolean): boolean; export declare function any(i: IterableLike, fn: (t: T) => boolean): boolean; export declare function count(i: IterableLike): number; export declare function first(i: IterableLike, fn: Maybe<(t: T) => boolean>, defaultValue: Maybe): Maybe; export declare function first(i: IterableLike, fn: (t: T) => boolean, defaultValue: T): T; export declare function forEach(i: IterableLike, fn: (t: T, index: number) => void): void; export declare function max(i: IterableLike, selector: undefined): Maybe; export declare function max(i: IterableLike, selector: ((t: T) => U) | undefined): Maybe; export declare function min(i: IterableLike, selector: undefined): Maybe; export declare function min(i: IterableLike, selector: ((t: T) => U) | undefined): Maybe; export declare function reduce(i: IterableLike, fnReduce: (prevValue: U, curValue: T, curIndex: number) => U, initialValue: U): U; export declare function reduce(i: IterableLike, fnReduce: (prevValue: T, curValue: T, curIndex: number) => T, initialValue: T): T; export declare function reduce(i: IterableLike, fnReduce: (prevValue: T, curValue: T, curIndex: number) => T, initialValue: Maybe): Maybe; export declare function reduceAsync(i: IterableOfPromise, fnReduce: (previousValue: U, currentValue: T, currentIndex: number) => U | Promise, initialValue: U | Promise): Promise; export declare function reduceAsync(i: IterableOfPromise, fnReduce: (previousValue: T, currentValue: T, currentIndex: number) => T | Promise, initialValue?: T | Promise): Promise; export declare function reduceAsyncForAsyncIterator(i: AsyncIterableLike, fnReduce: (previousValue: U, currentValue: T, currentIndex: number) => U | Promise, initialValue?: U | Promise): Promise; export declare function reduceAsyncForAsyncIterator(i: AsyncIterableLike, fnReduce: (previousValue: T, currentValue: T, currentIndex: number) => T | Promise, initialValue?: T | Promise): Promise; /** * Convert an Iterator into an IterableIterator */ export declare function makeIterable(i: Iterator | Iterable | IterableIterator): IterableIterator; export declare function isIterable(i: Iterator | IterableLike | AsyncIterator | AsyncIterableIterator): i is IterableLike; export declare function isIterableIterator(i: IterableLike): i is IterableIterator; export declare function makeAsyncIterable(i: Iterator | Iterable | IterableIterator | AsyncIterator | AsyncIterable | AsyncIterableIterator): AsyncIterableIterator; export declare function isAsyncIterable(i: Iterator | Iterable | AsyncIterator | AsyncIterable | AsyncIterableIterator): i is AsyncIterableLike; export declare function isAsyncIterableIterator(i: AsyncIterableLike): i is AsyncIterableIterator; /** * Creates a scan function that can be used in a map function. */ export declare function scanMap(accFn: (acc: T, value: T) => T, init?: T): ((value: T) => T); export declare function scanMap(accFn: (acc: U, value: T) => U, init: U): ((value: T) => U);