import { Collector, BaseCollector, Supplier } from "../collector"; export interface Mapper { (value: T): U; } export declare class GroupingByCollector> extends BaseCollector, Map> { protected mapper: Mapper; protected supplier: Supplier; protected collector: Collector; constructor(mapper: Mapper, supplier: Supplier, collector: Collector); supply(): Map; accumulate(container: Map, item: T): void; combine(container1: Map, container2: Map): Map; finish(container: Map): Map; } export declare function groupingBy(mapper: (item: T) => K): Collector, Map>; export declare function groupingBy(mapper: (item: T) => K, collector: Collector): Collector, Map>; export declare function groupingBy>(mapper: (item: T) => K, supplier: Supplier, collector: Collector): Collector, Map>;