export declare class Stream { iterator: IterableIterator; constructor(data: ArrayLike | IterableIterator); static of(data: ArrayLike | IterableIterator): Stream; each(callback: (item: T, index?: number) => void): void; forEach(callback: (item: T, index?: number) => void): void; map(callback: (item: T, index?: number) => R): Stream; flatMap(callback: (item: T, index?: number) => R[]): Stream; filter(callback: (item: T, index?: number) => boolean): Stream; collect(): T[]; groupBy(callback: (item: T, index?: number) => K): DictionaryStream; } export declare class DictionaryStream extends Stream<[ K, T[] ]> { constructor(stream: Stream<[K, T[]]>); toDict(): { [index in K]: T[]; }; }