/**
 * @module Collection
 */
import { type AsyncMap, type IAsyncCollection } from "../../../../collection/contracts/_module-exports.js";
import { type AsyncIterableValue } from "../../../../utilities/_module-exports.js";
/**
 * @internal
 */
export declare class AsyncGroupByIterable<TInput, TOutput = TInput> implements AsyncIterable<[TOutput, IAsyncCollection<TInput>]> {
    private collection;
    private selectFn;
    private makeCollection;
    constructor(collection: IAsyncCollection<TInput>, selectFn: AsyncMap<TInput, IAsyncCollection<TInput>, TOutput> | undefined, makeCollection: <TInput>(iterable: AsyncIterableValue<TInput>) => IAsyncCollection<TInput>);
    [Symbol.asyncIterator](): AsyncIterator<[
        TOutput,
        IAsyncCollection<TInput>
    ]>;
}
