import { KVGroupTransform } from '../types/base'; import { Mapper } from 'augmentative-iterable'; import { AnyMapper } from '../types-internal'; import { Choose } from '../types'; /** * Returns a functions that make the group operations to get only one item, per group key, * The item kept is the preferred one, according to a given choosing criteria, * @param choose must return the preferred value over two provided */ export declare function getGroupingTopHit(choose: Choose): KVGroupTransform; /** * Returns a functions that make the group operations get distinct items, according to a giving criteria, * keeping the preferred one, according to a given choosing criteria, * @param distinct must return the distinction key. The distinction is respected by group * @param choose must return the preferred value over two provided * @param mapper The property name you want to map for the value */ export declare function getGroupingTopHit(distinct: AnyMapper, choose: Choose, mapper: KT): KVGroupTransform; /** * Returns a functions that make the group operations get distinct items, according to a giving criteria, * keeping the preferred one, according to a given choosing criteria, * @param distinct must return the distinction key. The distinction is respected by group * @param choose must return the preferred value over two provided * @param mapper If informed, the mapping operation to define the grouping value. If not, the original value is assumed */ export declare function getGroupingTopHit(distinct: AnyMapper, choose: Choose, mapper?: Mapper): KVGroupTransform;