import { AsyncIterableX } from './asynciterablex'; export declare class GroupedAsyncIterable extends AsyncIterableX { readonly key: TKey; private _source; constructor(key: TKey, source: Iterable); [Symbol.asyncIterator](): AsyncIterableIterator; } export declare class GroupByAsyncIterable extends AsyncIterableX { private _source; private _keySelector; private _elementSelector; private _resultSelector; constructor(source: AsyncIterable, keySelector: (value: TSource) => TKey | Promise, elementSelector: (value: TSource) => TValue | Promise, resultSelector: (key: TKey, values: Iterable) => TResult | Promise); [Symbol.asyncIterator](): AsyncIterableIterator; } export declare function groupByResultIdentityAsync(key: TKey, values: Iterable): any; export declare function groupBy(source: AsyncIterable, keySelector: (value: TSource) => TKey | Promise): AsyncIterableX>; export declare function groupBy(source: AsyncIterable, keySelector: (value: TSource) => TKey | Promise, elementSelector?: (value: TSource) => TValue | Promise): AsyncIterableX>; export declare function groupBy(source: AsyncIterable, keySelector: (value: TSource) => TKey | Promise, elementSelector?: (value: TSource) => TValue | Promise, resultSelector?: (key: TKey, values: Iterable) => TResult | Promise): AsyncIterableX;