import type { KeyIdentifiersValue, KeyIdentifier } from '../types';
/** Groups values in the input iterator by some key identifier function or property. */
export declare class GroupByIterator<T, K extends KeyIdentifier<T>> implements IterableIterator<[KeyIdentifiersValue<T, K>, T[]]> {
    protected iterator: Iterator<T>;
    protected key: K;
    protected currKey: KeyIdentifiersValue<T, K> | undefined;
    protected currGroup: T[];
    protected done: boolean;
    constructor(iterator: Iterator<T>, key: K);
    [Symbol.iterator](): IterableIterator<[KeyIdentifiersValue<T, K>, T[]]>;
    next(): IteratorResult<[KeyIdentifiersValue<T, K>, T[]]>;
    getKey(value: T): KeyIdentifiersValue<T, K>;
}
export default GroupByIterator;
//# sourceMappingURL=GroupByIterator.d.ts.map