/**
 * @module Collection
 */
import { type ICollection, type Map } from "../../../../collection/contracts/_module-exports.js";
/**
 * @internal
 */
export declare class GroupByIterable<TInput, TOutput = TInput> implements Iterable<[TOutput, ICollection<TInput>]> {
    private collection;
    private selectFn;
    private makeCollection;
    constructor(collection: ICollection<TInput>, selectFn: Map<TInput, ICollection<TInput>, TOutput> | undefined, makeCollection: <TInput>(iterable: Iterable<TInput>) => ICollection<TInput>);
    [Symbol.iterator](): Iterator<[TOutput, ICollection<TInput>]>;
}
