import { Action, AsyncAction, Comparer, Mapper, Reducer, Predicate, Tapper, Unit } from './types'; import { IMemoizeOptions } from './functions'; export interface IIterableLinq { [Symbol.iterator](): Iterator; collectToArray(): T[]; filter(predicate: Predicate): IIterableLinq; flatMap(mapper: Mapper>): IIterableLinq; forEach(action: Action): Unit; forEachAsync(action: AsyncAction): Promise; map(mapper: Mapper): IIterableLinq; materialize(): IIterableLinq; max(comparer?: Comparer): T | null | undefined; memoize(options?: IMemoizeOptions): IIterableLinq; min(comparer?: Comparer): T | null | undefined; reduce(neutralElement: R, reducer: Reducer): R; some(predicate: Predicate): boolean; tap(tapper: Tapper): IIterableLinq; tapChain(tapper: Tapper>): IIterableLinq; /** * * @operation `Tap` * @param chainCreationTapper */ tapChainCreation(chainCreationTapper: (iterableLinqWrapper: IIterableLinq) => Unit): IIterableLinq; } export declare class IterableLinqWrapper implements IIterableLinq { constructor(iterable: Iterable); [Symbol.iterator](): Iterator; private iterable; collectToArray(): T[]; filter(predicate: Predicate): IIterableLinq; flatMap(mapper: Mapper>): IIterableLinq; forEach(action: Action): Unit; forEachAsync(action: AsyncAction): Promise; map(mapper: Mapper): IIterableLinq; materialize(): IIterableLinq; max(comparer?: Comparer): T | null | undefined; memoize(options?: IMemoizeOptions): IIterableLinq; min(comparer?: Comparer): T | null | undefined; reduce(neutralElement: R, reducer: Reducer): R; some(predicate: Predicate): boolean; tap(tapper: Tapper): IIterableLinq; tapChain(tapper: Tapper>): IIterableLinq; tapChainCreation(chainCreationTapper: (iterableLinqWrapper: IIterableLinq) => void): IIterableLinq; }