import { ObjOrArrBaseBy, ObjValues, AnyObjOrArr, AnyArr } from '../typings/types'; interface GroupBy { >(fn: Fn): (obj: Input) => Input extends AnyArr ? Record, Input> : Record, ObjValues[]>; >(fn: Fn, obj: Input): Input extends AnyArr ? Record, Input> : Record, ObjValues[]>; } /** * Creates an object composed of keys generated from the results of running * each element of object thru `fn`. The corresponding * value of each key is an array of elements responsible for generating the key. * * @param {Function} fn The function to transform value to group key. Receives three argument, `value`, `key`, `obj`. * @param {Object} obj The obj to iterate over. * @returns {Object} Returns the composed aggregate object. * @example * * groupBy(x => x, { a: 1, b: 1, c: 3});// => { '1': [1, 1], '3': [3] } */ declare const _default: GroupBy; export default _default;