import { Collector, BaseCollector } from "../collector"; import { Mapper } from "../collections/groupingBy"; export interface DistinctContainer { keys: Map; items: [U, T][]; } export declare class DistinctCollector extends BaseCollector, R> { protected keyer: Mapper; protected collector: Collector; constructor(keyer: Mapper, collector: Collector); supply(): DistinctContainer; accumulate(container: DistinctContainer, item: T): void; combine(container1: DistinctContainer, container2: DistinctContainer): DistinctContainer; finish(container: DistinctContainer): R; } export declare function distinct(): Collector, T[]>; export declare function distinct(keyer: Mapper): Collector, T[]>; export declare function distinct(keyer: Mapper, collector?: Collector): Collector, R>;