/**
 * @module Collection
 */
import { type ICollection, type Map } from "../../../../collection/contracts/_module.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>]>;
}
