import { ILazyCollectionAsync } from "../contracts";
export declare function lazyGroupBy<T, R, N, TKey, TElement, TResult>(iterator: Iterator<T, R, N>, keySelector: (v: T) => TKey, elementSelector: (v: T) => TElement, resultSelector: (key: TKey, elements: ILazyCollectionAsync<TElement, void, undefined>) => TResult): Generator<TResult, R, undefined>;
/**
 * This is temporary solution. Now it is not effective enough...
 * @todo We should refactor this function to work even more lazy!
 */
export declare function lazyGroupByAsync<T, R, N, TKey, TElement, TResult>(iterator: AsyncIterator<T, R, N>, keySelector: (v: T) => TKey, elementSelector: (v: T) => TElement, resultSelector: (key: TKey, elements: ILazyCollectionAsync<TElement, void, undefined>) => TResult): AsyncGenerator<TResult, R, undefined>;
//# sourceMappingURL=lazyGroupBy.d.ts.map