@tidyjs/tidy 2.4.5 → 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/es/groupBy.js.map +1 -1
  2. package/dist/es/index.js +1 -0
  3. package/dist/es/index.js.map +1 -1
  4. package/dist/es/item/rate.js +7 -7
  5. package/dist/es/item/rate.js.map +1 -1
  6. package/dist/es/mutate.js +5 -5
  7. package/dist/es/mutate.js.map +1 -1
  8. package/dist/es/summary/deviation.js.map +1 -1
  9. package/dist/es/summary/first.js.map +1 -1
  10. package/dist/es/summary/last.js.map +1 -1
  11. package/dist/es/summary/max.js.map +1 -1
  12. package/dist/es/summary/mean.js.map +1 -1
  13. package/dist/es/summary/meanRate.js.map +1 -1
  14. package/dist/es/summary/median.js.map +1 -1
  15. package/dist/es/summary/min.js.map +1 -1
  16. package/dist/es/summary/n.js +5 -1
  17. package/dist/es/summary/n.js.map +1 -1
  18. package/dist/es/summary/nDistinct.js +2 -1
  19. package/dist/es/summary/nDistinct.js.map +1 -1
  20. package/dist/es/summary/sum.js +7 -2
  21. package/dist/es/summary/sum.js.map +1 -1
  22. package/dist/es/summary/variance.js.map +1 -1
  23. package/dist/es/total.js.map +1 -1
  24. package/dist/es/vector/cumsum.js.map +1 -1
  25. package/dist/es/vector/lag.js +1 -1
  26. package/dist/es/vector/lag.js.map +1 -1
  27. package/dist/es/vector/lead.js +1 -1
  28. package/dist/es/vector/lead.js.map +1 -1
  29. package/dist/es/vector/roll.js +4 -3
  30. package/dist/es/vector/roll.js.map +1 -1
  31. package/dist/es/vector/rowNumber.js +10 -0
  32. package/dist/es/vector/rowNumber.js.map +1 -0
  33. package/dist/lib/groupBy.js.map +1 -1
  34. package/dist/lib/index.js +2 -0
  35. package/dist/lib/index.js.map +1 -1
  36. package/dist/lib/item/rate.js +7 -7
  37. package/dist/lib/item/rate.js.map +1 -1
  38. package/dist/lib/mutate.js +5 -5
  39. package/dist/lib/mutate.js.map +1 -1
  40. package/dist/lib/summary/deviation.js.map +1 -1
  41. package/dist/lib/summary/first.js.map +1 -1
  42. package/dist/lib/summary/last.js.map +1 -1
  43. package/dist/lib/summary/max.js.map +1 -1
  44. package/dist/lib/summary/mean.js.map +1 -1
  45. package/dist/lib/summary/meanRate.js.map +1 -1
  46. package/dist/lib/summary/median.js.map +1 -1
  47. package/dist/lib/summary/min.js.map +1 -1
  48. package/dist/lib/summary/n.js +5 -1
  49. package/dist/lib/summary/n.js.map +1 -1
  50. package/dist/lib/summary/nDistinct.js +2 -1
  51. package/dist/lib/summary/nDistinct.js.map +1 -1
  52. package/dist/lib/summary/sum.js +7 -2
  53. package/dist/lib/summary/sum.js.map +1 -1
  54. package/dist/lib/summary/variance.js.map +1 -1
  55. package/dist/lib/total.js.map +1 -1
  56. package/dist/lib/vector/cumsum.js.map +1 -1
  57. package/dist/lib/vector/lag.js +1 -1
  58. package/dist/lib/vector/lag.js.map +1 -1
  59. package/dist/lib/vector/lead.js +1 -1
  60. package/dist/lib/vector/lead.js.map +1 -1
  61. package/dist/lib/vector/roll.js +4 -3
  62. package/dist/lib/vector/roll.js.map +1 -1
  63. package/dist/lib/vector/rowNumber.js +14 -0
  64. package/dist/lib/vector/rowNumber.js.map +1 -0
  65. package/dist/tidy.d.ts +893 -32
  66. package/dist/umd/tidy.js +41 -21
  67. package/dist/umd/tidy.js.map +1 -1
  68. package/dist/umd/tidy.min.js +1 -1
  69. package/dist/umd/tidy.min.js.map +1 -1
  70. package/package.json +2 -2
package/dist/tidy.d.ts CHANGED
@@ -125,12 +125,12 @@ declare function summarizeAll<T extends object, F extends SummaryKeyFn<T>>(summa
125
125
  declare function summarizeIf<T extends object, F extends SummaryKeyFn<T>>(predicateFn: (vector: Vector<T>) => boolean, summaryFn: F): TidyFn<T, A.Compute<Record<keyof T, SummaryFnOutput<T, F>>>>;
126
126
  declare function summarizeAt<T extends object, Keys extends (keyof T)[], F extends SummaryKeyFn<T, Keys[number]>>(keys: Keys, summaryFn: F): TidyFn<T, A.Compute<Record<Keys[number], SummaryFnOutput<T, F>>>>;
127
127
 
128
- declare type MutateSpecValue<T, O = any> = ((item: T) => O) | NonFunctionValue;
128
+ declare type MutateSpecValue<T, O = any> = ((item: T, index: number, array: Iterable<T>) => O) | NonFunctionValue;
129
129
  declare type MutateSpec<T> = Record<Key, MutateSpecValue<T>>;
130
130
  declare type ResolvedObj<Obj extends Record<Key, MutateSpecValue<any>>> = {
131
131
  [K in keyof Obj]: Obj[K] extends (...args: any) => any ? ReturnType<Obj[K]> extends any[] ? ReturnType<Obj[K]>[number] : ReturnType<Obj[K]> : Obj[K];
132
132
  };
133
- declare type Mutated<T, MSpec extends MutateSpec<T>> = T & ResolvedObj<MSpec>;
133
+ declare type Mutated<T extends object, MSpec extends MutateSpec<T>> = O.Merge<ResolvedObj<MSpec>, T>;
134
134
  declare type Compute<T> = A.Compute<T>;
135
135
  /**
136
136
  * Mutates items, one item at a time. For mutating across multiple items,
@@ -238,16 +238,16 @@ interface GroupByOptions {
238
238
  declare type GK<T extends object> = SingleOrArray<keyof T | ((d: T) => any)>;
239
239
  declare type F<I extends object, O extends object> = TidyFn<I, O>;
240
240
  declare type MergeGroupKeys<T extends object, Out extends object, Keys extends GK<T>> = Keys extends keyof T ? O.Merge<Pick<T, Keys>, Out> : Keys extends (keyof T)[] ? O.Merge<Pick<T, Keys[number]>, Out> : Out;
241
- declare type WithGroupKeys<T extends object, Out extends object, Keys extends GK<T>, Opts extends GroupByOptions | undefined> = NonNullable<Opts>['addGroupKeys'] extends false ? Out : MergeGroupKeys<T, Out, Keys>;
241
+ declare type WithGroupKeys<T extends object, Out extends object, Keys extends GK<T>, Opts extends GroupByOptions> = NonNullable<Opts>['addGroupKeys'] extends false ? Out : MergeGroupKeys<T, Out, Keys>;
242
242
  /**
243
243
  * output varies based on export options
244
244
  */
245
- declare type GroupByOutput<T extends object, O extends object, Keys extends GK<T>, Opts extends GroupByOptions | undefined> = A.Compute<NonNullable<Opts>['export'] extends 'grouped' ? Grouped<WithGroupKeys<T, O, Keys, Opts>> : NonNullable<Opts>['export'] extends 'entries' ? EntriesOutput : NonNullable<Opts>['export'] extends 'entries-object' ? EntriesObjectOutput : NonNullable<Opts>['export'] extends 'object' ? ObjectOutput : NonNullable<Opts>['export'] extends 'map' ? Map<any, any> : NonNullable<Opts>['export'] extends 'keys' ? KeysOutput : NonNullable<Opts>['export'] extends 'values' ? ValuesOutput : NonNullable<Opts>['export'] extends 'levels' ? any : WithGroupKeys<T, O, Keys, Opts>[]>;
245
+ declare type GroupByOutput<T extends object, O extends object, Keys extends GK<T>, Opts extends GroupByOptions> = A.Compute<NonNullable<Opts>['export'] extends 'grouped' ? Grouped<WithGroupKeys<T, O, Keys, Opts>> : NonNullable<Opts>['export'] extends 'entries' ? EntriesOutput : NonNullable<Opts>['export'] extends 'entries-object' ? EntriesObjectOutput : NonNullable<Opts>['export'] extends 'object' ? ObjectOutput : NonNullable<Opts>['export'] extends 'map' ? Map<any, any> : NonNullable<Opts>['export'] extends 'keys' ? KeysOutput : NonNullable<Opts>['export'] extends 'values' ? ValuesOutput : NonNullable<Opts>['export'] extends 'levels' ? any : WithGroupKeys<T, O, Keys, Opts>[]>;
246
246
  declare type GroupByFn<T extends object, O extends object, Keys extends GK<T>, Opts extends GroupByOptions> = Opts['export'] extends 'grouped' | 'entries' | 'entries-object' | 'object' | 'map' | 'keys' | 'values' | 'levels' ? TidyGroupExportFn<T, GroupByOutput<T, O, Keys, Opts>> : TidyFn<T, WithGroupKeys<T, O, Keys, Opts>>;
247
247
  /**
248
248
  * Nests the data by the specified groupings
249
249
  */
250
- declare function groupBy<T extends object, T1 extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, fns: F<T, T1>, options?: Opts): GroupByFn<T, T1, Keys, Opts>;
250
+ declare function groupBy<T extends object, T1 extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, fns: F<T, T1>, options: Opts): GroupByFn<T, T1, Keys, Opts>;
251
251
  declare namespace groupBy {
252
252
  var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
253
253
  readonly export: "grouped";
@@ -331,7 +331,7 @@ declare namespace groupBy {
331
331
  readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
332
332
  };
333
333
  }
334
- declare function groupBy<T extends object, T1 extends object, T2 extends object, T3 extends object, T4 extends object, T5 extends object, T6 extends object, T7 extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, fns: [F<T, T1>, F<T1, T2>, F<T2, T3>, F<T3, T4>, F<T4, T5>, F<T5, T6>, F<T6, T7>], options?: Opts): GroupByFn<T, T7, Keys, Opts>;
334
+ declare function groupBy<T extends object, T1 extends object, Keys extends GK<T>>(groupKeys: Keys, fns: F<T, T1>): GroupByFn<T, T1, Keys, GroupByOptions>;
335
335
  declare namespace groupBy {
336
336
  var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
337
337
  readonly export: "grouped";
@@ -415,7 +415,7 @@ declare namespace groupBy {
415
415
  readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
416
416
  };
417
417
  }
418
- declare function groupBy<T extends object, T1 extends object, T2 extends object, T3 extends object, T4 extends object, T5 extends object, T6 extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, fns: [F<T, T1>, F<T1, T2>, F<T2, T3>, F<T3, T4>, F<T4, T5>, F<T5, T6>], options?: Opts): GroupByFn<T, T6, Keys, Opts>;
418
+ declare function groupBy<T extends object, T1 extends object, T2 extends object, T3 extends object, T4 extends object, T5 extends object, T6 extends object, T7 extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, fns: [F<T, T1>, F<T1, T2>, F<T2, T3>, F<T3, T4>, F<T4, T5>, F<T5, T6>, F<T6, T7>], options: Opts): GroupByFn<T, T7, Keys, Opts>;
419
419
  declare namespace groupBy {
420
420
  var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
421
421
  readonly export: "grouped";
@@ -499,7 +499,7 @@ declare namespace groupBy {
499
499
  readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
500
500
  };
501
501
  }
502
- declare function groupBy<T extends object, T1 extends object, T2 extends object, T3 extends object, T4 extends object, T5 extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, fns: [F<T, T1>, F<T1, T2>, F<T2, T3>, F<T3, T4>, F<T4, T5>], options?: Opts): GroupByFn<T, T5, Keys, Opts>;
502
+ declare function groupBy<T extends object, T1 extends object, T2 extends object, T3 extends object, T4 extends object, T5 extends object, T6 extends object, T7 extends object, Keys extends GK<T>>(groupKeys: Keys, fns: [F<T, T1>, F<T1, T2>, F<T2, T3>, F<T3, T4>, F<T4, T5>, F<T5, T6>, F<T6, T7>]): GroupByFn<T, T7, Keys, GroupByOptions>;
503
503
  declare namespace groupBy {
504
504
  var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
505
505
  readonly export: "grouped";
@@ -583,7 +583,7 @@ declare namespace groupBy {
583
583
  readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
584
584
  };
585
585
  }
586
- declare function groupBy<T extends object, T1 extends object, T2 extends object, T3 extends object, T4 extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, fns: [F<T, T1>, F<T1, T2>, F<T2, T3>, F<T3, T4>], options?: Opts): GroupByFn<T, T4, Keys, Opts>;
586
+ declare function groupBy<T extends object, T1 extends object, T2 extends object, T3 extends object, T4 extends object, T5 extends object, T6 extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, fns: [F<T, T1>, F<T1, T2>, F<T2, T3>, F<T3, T4>, F<T4, T5>, F<T5, T6>], options: Opts): GroupByFn<T, T6, Keys, Opts>;
587
587
  declare namespace groupBy {
588
588
  var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
589
589
  readonly export: "grouped";
@@ -667,7 +667,7 @@ declare namespace groupBy {
667
667
  readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
668
668
  };
669
669
  }
670
- declare function groupBy<T extends object, T1 extends object, T2 extends object, T3 extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, fns: [F<T, T1>, F<T1, T2>, F<T2, T3>], options?: Opts): GroupByFn<T, T3, Keys, Opts>;
670
+ declare function groupBy<T extends object, T1 extends object, T2 extends object, T3 extends object, T4 extends object, T5 extends object, T6 extends object, Keys extends GK<T>>(groupKeys: Keys, fns: [F<T, T1>, F<T1, T2>, F<T2, T3>, F<T3, T4>, F<T4, T5>, F<T5, T6>]): GroupByFn<T, T6, Keys, GroupByOptions>;
671
671
  declare namespace groupBy {
672
672
  var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
673
673
  readonly export: "grouped";
@@ -751,7 +751,7 @@ declare namespace groupBy {
751
751
  readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
752
752
  };
753
753
  }
754
- declare function groupBy<T extends object, T1 extends object, T2 extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, fns: [F<T, T1>, F<T1, T2>], options?: Opts): GroupByFn<T, T2, Keys, Opts>;
754
+ declare function groupBy<T extends object, T1 extends object, T2 extends object, T3 extends object, T4 extends object, T5 extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, fns: [F<T, T1>, F<T1, T2>, F<T2, T3>, F<T3, T4>, F<T4, T5>], options: Opts): GroupByFn<T, T5, Keys, Opts>;
755
755
  declare namespace groupBy {
756
756
  var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
757
757
  readonly export: "grouped";
@@ -835,7 +835,7 @@ declare namespace groupBy {
835
835
  readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
836
836
  };
837
837
  }
838
- declare function groupBy<T extends object, T1 extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, fns: [F<T, T1>], options?: Opts): GroupByFn<T, T1, Keys, Opts>;
838
+ declare function groupBy<T extends object, T1 extends object, T2 extends object, T3 extends object, T4 extends object, T5 extends object, Keys extends GK<T>>(groupKeys: Keys, fns: [F<T, T1>, F<T1, T2>, F<T2, T3>, F<T3, T4>, F<T4, T5>]): GroupByFn<T, T5, Keys, GroupByOptions>;
839
839
  declare namespace groupBy {
840
840
  var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
841
841
  readonly export: "grouped";
@@ -919,7 +919,7 @@ declare namespace groupBy {
919
919
  readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
920
920
  };
921
921
  }
922
- declare function groupBy<T extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, fns: [], options?: Opts): GroupByFn<T, T, Keys, Opts>;
922
+ declare function groupBy<T extends object, T1 extends object, T2 extends object, T3 extends object, T4 extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, fns: [F<T, T1>, F<T1, T2>, F<T2, T3>, F<T3, T4>], options: Opts): GroupByFn<T, T4, Keys, Opts>;
923
923
  declare namespace groupBy {
924
924
  var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
925
925
  readonly export: "grouped";
@@ -1003,7 +1003,847 @@ declare namespace groupBy {
1003
1003
  readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1004
1004
  };
1005
1005
  }
1006
- declare function groupBy<T extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, options?: Opts): GroupByFn<T, T, Keys, Opts>;
1006
+ declare function groupBy<T extends object, T1 extends object, T2 extends object, T3 extends object, T4 extends object, Keys extends GK<T>>(groupKeys: Keys, fns: [F<T, T1>, F<T1, T2>, F<T2, T3>, F<T3, T4>]): GroupByFn<T, T4, Keys, GroupByOptions>;
1007
+ declare namespace groupBy {
1008
+ var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1009
+ readonly export: "grouped";
1010
+ readonly flat?: boolean | undefined;
1011
+ readonly addGroupKeys?: boolean | undefined;
1012
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1013
+ readonly single?: boolean | undefined;
1014
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1015
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1016
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1017
+ };
1018
+ var entries: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1019
+ readonly export: "entries";
1020
+ readonly flat?: boolean | undefined;
1021
+ readonly addGroupKeys?: boolean | undefined;
1022
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1023
+ readonly single?: boolean | undefined;
1024
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1025
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1026
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1027
+ };
1028
+ var entriesObject: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1029
+ readonly export: "entries-object";
1030
+ readonly flat?: boolean | undefined;
1031
+ readonly addGroupKeys?: boolean | undefined;
1032
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1033
+ readonly single?: boolean | undefined;
1034
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1035
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1036
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1037
+ };
1038
+ var object: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1039
+ readonly export: "object";
1040
+ readonly flat?: boolean | undefined;
1041
+ readonly addGroupKeys?: boolean | undefined;
1042
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1043
+ readonly single?: boolean | undefined;
1044
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1045
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1046
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1047
+ };
1048
+ var map: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1049
+ readonly export: "map";
1050
+ readonly flat?: boolean | undefined;
1051
+ readonly addGroupKeys?: boolean | undefined;
1052
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1053
+ readonly single?: boolean | undefined;
1054
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1055
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1056
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1057
+ };
1058
+ var keys: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1059
+ readonly export: "keys";
1060
+ readonly flat?: boolean | undefined;
1061
+ readonly addGroupKeys?: boolean | undefined;
1062
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1063
+ readonly single?: boolean | undefined;
1064
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1065
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1066
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1067
+ };
1068
+ var values: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1069
+ readonly export: "values";
1070
+ readonly flat?: boolean | undefined;
1071
+ readonly addGroupKeys?: boolean | undefined;
1072
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1073
+ readonly single?: boolean | undefined;
1074
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1075
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1076
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1077
+ };
1078
+ var levels: (options?: Omit<GroupByOptions, "export"> | undefined) => {
1079
+ readonly export: "levels";
1080
+ readonly flat?: boolean | undefined;
1081
+ readonly levels?: ("object" | "map" | "entries" | "keys" | "values" | LevelSpec | "entries-object")[] | undefined;
1082
+ readonly addGroupKeys?: boolean | undefined;
1083
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1084
+ readonly single?: boolean | undefined;
1085
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1086
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1087
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1088
+ };
1089
+ }
1090
+ declare function groupBy<T extends object, T1 extends object, T2 extends object, T3 extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, fns: [F<T, T1>, F<T1, T2>, F<T2, T3>], options: Opts): GroupByFn<T, T3, Keys, Opts>;
1091
+ declare namespace groupBy {
1092
+ var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1093
+ readonly export: "grouped";
1094
+ readonly flat?: boolean | undefined;
1095
+ readonly addGroupKeys?: boolean | undefined;
1096
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1097
+ readonly single?: boolean | undefined;
1098
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1099
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1100
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1101
+ };
1102
+ var entries: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1103
+ readonly export: "entries";
1104
+ readonly flat?: boolean | undefined;
1105
+ readonly addGroupKeys?: boolean | undefined;
1106
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1107
+ readonly single?: boolean | undefined;
1108
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1109
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1110
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1111
+ };
1112
+ var entriesObject: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1113
+ readonly export: "entries-object";
1114
+ readonly flat?: boolean | undefined;
1115
+ readonly addGroupKeys?: boolean | undefined;
1116
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1117
+ readonly single?: boolean | undefined;
1118
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1119
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1120
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1121
+ };
1122
+ var object: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1123
+ readonly export: "object";
1124
+ readonly flat?: boolean | undefined;
1125
+ readonly addGroupKeys?: boolean | undefined;
1126
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1127
+ readonly single?: boolean | undefined;
1128
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1129
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1130
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1131
+ };
1132
+ var map: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1133
+ readonly export: "map";
1134
+ readonly flat?: boolean | undefined;
1135
+ readonly addGroupKeys?: boolean | undefined;
1136
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1137
+ readonly single?: boolean | undefined;
1138
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1139
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1140
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1141
+ };
1142
+ var keys: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1143
+ readonly export: "keys";
1144
+ readonly flat?: boolean | undefined;
1145
+ readonly addGroupKeys?: boolean | undefined;
1146
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1147
+ readonly single?: boolean | undefined;
1148
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1149
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1150
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1151
+ };
1152
+ var values: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1153
+ readonly export: "values";
1154
+ readonly flat?: boolean | undefined;
1155
+ readonly addGroupKeys?: boolean | undefined;
1156
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1157
+ readonly single?: boolean | undefined;
1158
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1159
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1160
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1161
+ };
1162
+ var levels: (options?: Omit<GroupByOptions, "export"> | undefined) => {
1163
+ readonly export: "levels";
1164
+ readonly flat?: boolean | undefined;
1165
+ readonly levels?: ("object" | "map" | "entries" | "keys" | "values" | LevelSpec | "entries-object")[] | undefined;
1166
+ readonly addGroupKeys?: boolean | undefined;
1167
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1168
+ readonly single?: boolean | undefined;
1169
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1170
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1171
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1172
+ };
1173
+ }
1174
+ declare function groupBy<T extends object, T1 extends object, T2 extends object, T3 extends object, Keys extends GK<T>>(groupKeys: Keys, fns: [F<T, T1>, F<T1, T2>, F<T2, T3>]): GroupByFn<T, T3, Keys, GroupByOptions>;
1175
+ declare namespace groupBy {
1176
+ var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1177
+ readonly export: "grouped";
1178
+ readonly flat?: boolean | undefined;
1179
+ readonly addGroupKeys?: boolean | undefined;
1180
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1181
+ readonly single?: boolean | undefined;
1182
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1183
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1184
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1185
+ };
1186
+ var entries: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1187
+ readonly export: "entries";
1188
+ readonly flat?: boolean | undefined;
1189
+ readonly addGroupKeys?: boolean | undefined;
1190
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1191
+ readonly single?: boolean | undefined;
1192
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1193
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1194
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1195
+ };
1196
+ var entriesObject: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1197
+ readonly export: "entries-object";
1198
+ readonly flat?: boolean | undefined;
1199
+ readonly addGroupKeys?: boolean | undefined;
1200
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1201
+ readonly single?: boolean | undefined;
1202
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1203
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1204
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1205
+ };
1206
+ var object: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1207
+ readonly export: "object";
1208
+ readonly flat?: boolean | undefined;
1209
+ readonly addGroupKeys?: boolean | undefined;
1210
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1211
+ readonly single?: boolean | undefined;
1212
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1213
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1214
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1215
+ };
1216
+ var map: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1217
+ readonly export: "map";
1218
+ readonly flat?: boolean | undefined;
1219
+ readonly addGroupKeys?: boolean | undefined;
1220
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1221
+ readonly single?: boolean | undefined;
1222
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1223
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1224
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1225
+ };
1226
+ var keys: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1227
+ readonly export: "keys";
1228
+ readonly flat?: boolean | undefined;
1229
+ readonly addGroupKeys?: boolean | undefined;
1230
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1231
+ readonly single?: boolean | undefined;
1232
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1233
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1234
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1235
+ };
1236
+ var values: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1237
+ readonly export: "values";
1238
+ readonly flat?: boolean | undefined;
1239
+ readonly addGroupKeys?: boolean | undefined;
1240
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1241
+ readonly single?: boolean | undefined;
1242
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1243
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1244
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1245
+ };
1246
+ var levels: (options?: Omit<GroupByOptions, "export"> | undefined) => {
1247
+ readonly export: "levels";
1248
+ readonly flat?: boolean | undefined;
1249
+ readonly levels?: ("object" | "map" | "entries" | "keys" | "values" | LevelSpec | "entries-object")[] | undefined;
1250
+ readonly addGroupKeys?: boolean | undefined;
1251
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1252
+ readonly single?: boolean | undefined;
1253
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1254
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1255
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1256
+ };
1257
+ }
1258
+ declare function groupBy<T extends object, T1 extends object, T2 extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, fns: [F<T, T1>, F<T1, T2>], options: Opts): GroupByFn<T, T2, Keys, Opts>;
1259
+ declare namespace groupBy {
1260
+ var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1261
+ readonly export: "grouped";
1262
+ readonly flat?: boolean | undefined;
1263
+ readonly addGroupKeys?: boolean | undefined;
1264
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1265
+ readonly single?: boolean | undefined;
1266
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1267
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1268
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1269
+ };
1270
+ var entries: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1271
+ readonly export: "entries";
1272
+ readonly flat?: boolean | undefined;
1273
+ readonly addGroupKeys?: boolean | undefined;
1274
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1275
+ readonly single?: boolean | undefined;
1276
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1277
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1278
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1279
+ };
1280
+ var entriesObject: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1281
+ readonly export: "entries-object";
1282
+ readonly flat?: boolean | undefined;
1283
+ readonly addGroupKeys?: boolean | undefined;
1284
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1285
+ readonly single?: boolean | undefined;
1286
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1287
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1288
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1289
+ };
1290
+ var object: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1291
+ readonly export: "object";
1292
+ readonly flat?: boolean | undefined;
1293
+ readonly addGroupKeys?: boolean | undefined;
1294
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1295
+ readonly single?: boolean | undefined;
1296
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1297
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1298
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1299
+ };
1300
+ var map: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1301
+ readonly export: "map";
1302
+ readonly flat?: boolean | undefined;
1303
+ readonly addGroupKeys?: boolean | undefined;
1304
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1305
+ readonly single?: boolean | undefined;
1306
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1307
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1308
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1309
+ };
1310
+ var keys: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1311
+ readonly export: "keys";
1312
+ readonly flat?: boolean | undefined;
1313
+ readonly addGroupKeys?: boolean | undefined;
1314
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1315
+ readonly single?: boolean | undefined;
1316
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1317
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1318
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1319
+ };
1320
+ var values: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1321
+ readonly export: "values";
1322
+ readonly flat?: boolean | undefined;
1323
+ readonly addGroupKeys?: boolean | undefined;
1324
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1325
+ readonly single?: boolean | undefined;
1326
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1327
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1328
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1329
+ };
1330
+ var levels: (options?: Omit<GroupByOptions, "export"> | undefined) => {
1331
+ readonly export: "levels";
1332
+ readonly flat?: boolean | undefined;
1333
+ readonly levels?: ("object" | "map" | "entries" | "keys" | "values" | LevelSpec | "entries-object")[] | undefined;
1334
+ readonly addGroupKeys?: boolean | undefined;
1335
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1336
+ readonly single?: boolean | undefined;
1337
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1338
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1339
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1340
+ };
1341
+ }
1342
+ declare function groupBy<T extends object, T1 extends object, T2 extends object, Keys extends GK<T>>(groupKeys: Keys, fns: [F<T, T1>, F<T1, T2>]): GroupByFn<T, T2, Keys, GroupByOptions>;
1343
+ declare namespace groupBy {
1344
+ var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1345
+ readonly export: "grouped";
1346
+ readonly flat?: boolean | undefined;
1347
+ readonly addGroupKeys?: boolean | undefined;
1348
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1349
+ readonly single?: boolean | undefined;
1350
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1351
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1352
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1353
+ };
1354
+ var entries: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1355
+ readonly export: "entries";
1356
+ readonly flat?: boolean | undefined;
1357
+ readonly addGroupKeys?: boolean | undefined;
1358
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1359
+ readonly single?: boolean | undefined;
1360
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1361
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1362
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1363
+ };
1364
+ var entriesObject: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1365
+ readonly export: "entries-object";
1366
+ readonly flat?: boolean | undefined;
1367
+ readonly addGroupKeys?: boolean | undefined;
1368
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1369
+ readonly single?: boolean | undefined;
1370
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1371
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1372
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1373
+ };
1374
+ var object: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1375
+ readonly export: "object";
1376
+ readonly flat?: boolean | undefined;
1377
+ readonly addGroupKeys?: boolean | undefined;
1378
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1379
+ readonly single?: boolean | undefined;
1380
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1381
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1382
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1383
+ };
1384
+ var map: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1385
+ readonly export: "map";
1386
+ readonly flat?: boolean | undefined;
1387
+ readonly addGroupKeys?: boolean | undefined;
1388
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1389
+ readonly single?: boolean | undefined;
1390
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1391
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1392
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1393
+ };
1394
+ var keys: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1395
+ readonly export: "keys";
1396
+ readonly flat?: boolean | undefined;
1397
+ readonly addGroupKeys?: boolean | undefined;
1398
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1399
+ readonly single?: boolean | undefined;
1400
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1401
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1402
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1403
+ };
1404
+ var values: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1405
+ readonly export: "values";
1406
+ readonly flat?: boolean | undefined;
1407
+ readonly addGroupKeys?: boolean | undefined;
1408
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1409
+ readonly single?: boolean | undefined;
1410
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1411
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1412
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1413
+ };
1414
+ var levels: (options?: Omit<GroupByOptions, "export"> | undefined) => {
1415
+ readonly export: "levels";
1416
+ readonly flat?: boolean | undefined;
1417
+ readonly levels?: ("object" | "map" | "entries" | "keys" | "values" | LevelSpec | "entries-object")[] | undefined;
1418
+ readonly addGroupKeys?: boolean | undefined;
1419
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1420
+ readonly single?: boolean | undefined;
1421
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1422
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1423
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1424
+ };
1425
+ }
1426
+ declare function groupBy<T extends object, T1 extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, fns: [F<T, T1>], options: Opts): GroupByFn<T, T1, Keys, Opts>;
1427
+ declare namespace groupBy {
1428
+ var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1429
+ readonly export: "grouped";
1430
+ readonly flat?: boolean | undefined;
1431
+ readonly addGroupKeys?: boolean | undefined;
1432
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1433
+ readonly single?: boolean | undefined;
1434
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1435
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1436
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1437
+ };
1438
+ var entries: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1439
+ readonly export: "entries";
1440
+ readonly flat?: boolean | undefined;
1441
+ readonly addGroupKeys?: boolean | undefined;
1442
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1443
+ readonly single?: boolean | undefined;
1444
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1445
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1446
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1447
+ };
1448
+ var entriesObject: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1449
+ readonly export: "entries-object";
1450
+ readonly flat?: boolean | undefined;
1451
+ readonly addGroupKeys?: boolean | undefined;
1452
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1453
+ readonly single?: boolean | undefined;
1454
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1455
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1456
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1457
+ };
1458
+ var object: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1459
+ readonly export: "object";
1460
+ readonly flat?: boolean | undefined;
1461
+ readonly addGroupKeys?: boolean | undefined;
1462
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1463
+ readonly single?: boolean | undefined;
1464
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1465
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1466
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1467
+ };
1468
+ var map: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1469
+ readonly export: "map";
1470
+ readonly flat?: boolean | undefined;
1471
+ readonly addGroupKeys?: boolean | undefined;
1472
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1473
+ readonly single?: boolean | undefined;
1474
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1475
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1476
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1477
+ };
1478
+ var keys: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1479
+ readonly export: "keys";
1480
+ readonly flat?: boolean | undefined;
1481
+ readonly addGroupKeys?: boolean | undefined;
1482
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1483
+ readonly single?: boolean | undefined;
1484
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1485
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1486
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1487
+ };
1488
+ var values: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1489
+ readonly export: "values";
1490
+ readonly flat?: boolean | undefined;
1491
+ readonly addGroupKeys?: boolean | undefined;
1492
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1493
+ readonly single?: boolean | undefined;
1494
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1495
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1496
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1497
+ };
1498
+ var levels: (options?: Omit<GroupByOptions, "export"> | undefined) => {
1499
+ readonly export: "levels";
1500
+ readonly flat?: boolean | undefined;
1501
+ readonly levels?: ("object" | "map" | "entries" | "keys" | "values" | LevelSpec | "entries-object")[] | undefined;
1502
+ readonly addGroupKeys?: boolean | undefined;
1503
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1504
+ readonly single?: boolean | undefined;
1505
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1506
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1507
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1508
+ };
1509
+ }
1510
+ declare function groupBy<T extends object, T1 extends object, Keys extends GK<T>>(groupKeys: Keys, fns: [F<T, T1>]): GroupByFn<T, T1, Keys, GroupByOptions>;
1511
+ declare namespace groupBy {
1512
+ var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1513
+ readonly export: "grouped";
1514
+ readonly flat?: boolean | undefined;
1515
+ readonly addGroupKeys?: boolean | undefined;
1516
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1517
+ readonly single?: boolean | undefined;
1518
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1519
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1520
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1521
+ };
1522
+ var entries: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1523
+ readonly export: "entries";
1524
+ readonly flat?: boolean | undefined;
1525
+ readonly addGroupKeys?: boolean | undefined;
1526
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1527
+ readonly single?: boolean | undefined;
1528
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1529
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1530
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1531
+ };
1532
+ var entriesObject: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1533
+ readonly export: "entries-object";
1534
+ readonly flat?: boolean | undefined;
1535
+ readonly addGroupKeys?: boolean | undefined;
1536
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1537
+ readonly single?: boolean | undefined;
1538
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1539
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1540
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1541
+ };
1542
+ var object: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1543
+ readonly export: "object";
1544
+ readonly flat?: boolean | undefined;
1545
+ readonly addGroupKeys?: boolean | undefined;
1546
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1547
+ readonly single?: boolean | undefined;
1548
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1549
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1550
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1551
+ };
1552
+ var map: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1553
+ readonly export: "map";
1554
+ readonly flat?: boolean | undefined;
1555
+ readonly addGroupKeys?: boolean | undefined;
1556
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1557
+ readonly single?: boolean | undefined;
1558
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1559
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1560
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1561
+ };
1562
+ var keys: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1563
+ readonly export: "keys";
1564
+ readonly flat?: boolean | undefined;
1565
+ readonly addGroupKeys?: boolean | undefined;
1566
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1567
+ readonly single?: boolean | undefined;
1568
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1569
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1570
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1571
+ };
1572
+ var values: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1573
+ readonly export: "values";
1574
+ readonly flat?: boolean | undefined;
1575
+ readonly addGroupKeys?: boolean | undefined;
1576
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1577
+ readonly single?: boolean | undefined;
1578
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1579
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1580
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1581
+ };
1582
+ var levels: (options?: Omit<GroupByOptions, "export"> | undefined) => {
1583
+ readonly export: "levels";
1584
+ readonly flat?: boolean | undefined;
1585
+ readonly levels?: ("object" | "map" | "entries" | "keys" | "values" | LevelSpec | "entries-object")[] | undefined;
1586
+ readonly addGroupKeys?: boolean | undefined;
1587
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1588
+ readonly single?: boolean | undefined;
1589
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1590
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1591
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1592
+ };
1593
+ }
1594
+ declare function groupBy<T extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, fns: [], options: Opts): GroupByFn<T, T, Keys, Opts>;
1595
+ declare namespace groupBy {
1596
+ var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1597
+ readonly export: "grouped";
1598
+ readonly flat?: boolean | undefined;
1599
+ readonly addGroupKeys?: boolean | undefined;
1600
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1601
+ readonly single?: boolean | undefined;
1602
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1603
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1604
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1605
+ };
1606
+ var entries: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1607
+ readonly export: "entries";
1608
+ readonly flat?: boolean | undefined;
1609
+ readonly addGroupKeys?: boolean | undefined;
1610
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1611
+ readonly single?: boolean | undefined;
1612
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1613
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1614
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1615
+ };
1616
+ var entriesObject: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1617
+ readonly export: "entries-object";
1618
+ readonly flat?: boolean | undefined;
1619
+ readonly addGroupKeys?: boolean | undefined;
1620
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1621
+ readonly single?: boolean | undefined;
1622
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1623
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1624
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1625
+ };
1626
+ var object: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1627
+ readonly export: "object";
1628
+ readonly flat?: boolean | undefined;
1629
+ readonly addGroupKeys?: boolean | undefined;
1630
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1631
+ readonly single?: boolean | undefined;
1632
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1633
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1634
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1635
+ };
1636
+ var map: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1637
+ readonly export: "map";
1638
+ readonly flat?: boolean | undefined;
1639
+ readonly addGroupKeys?: boolean | undefined;
1640
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1641
+ readonly single?: boolean | undefined;
1642
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1643
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1644
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1645
+ };
1646
+ var keys: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1647
+ readonly export: "keys";
1648
+ readonly flat?: boolean | undefined;
1649
+ readonly addGroupKeys?: boolean | undefined;
1650
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1651
+ readonly single?: boolean | undefined;
1652
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1653
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1654
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1655
+ };
1656
+ var values: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1657
+ readonly export: "values";
1658
+ readonly flat?: boolean | undefined;
1659
+ readonly addGroupKeys?: boolean | undefined;
1660
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1661
+ readonly single?: boolean | undefined;
1662
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1663
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1664
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1665
+ };
1666
+ var levels: (options?: Omit<GroupByOptions, "export"> | undefined) => {
1667
+ readonly export: "levels";
1668
+ readonly flat?: boolean | undefined;
1669
+ readonly levels?: ("object" | "map" | "entries" | "keys" | "values" | LevelSpec | "entries-object")[] | undefined;
1670
+ readonly addGroupKeys?: boolean | undefined;
1671
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1672
+ readonly single?: boolean | undefined;
1673
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1674
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1675
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1676
+ };
1677
+ }
1678
+ declare function groupBy<T extends object, Keys extends GK<T>>(groupKeys: Keys, fns: []): GroupByFn<T, T, Keys, GroupByOptions>;
1679
+ declare namespace groupBy {
1680
+ var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1681
+ readonly export: "grouped";
1682
+ readonly flat?: boolean | undefined;
1683
+ readonly addGroupKeys?: boolean | undefined;
1684
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1685
+ readonly single?: boolean | undefined;
1686
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1687
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1688
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1689
+ };
1690
+ var entries: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1691
+ readonly export: "entries";
1692
+ readonly flat?: boolean | undefined;
1693
+ readonly addGroupKeys?: boolean | undefined;
1694
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1695
+ readonly single?: boolean | undefined;
1696
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1697
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1698
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1699
+ };
1700
+ var entriesObject: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1701
+ readonly export: "entries-object";
1702
+ readonly flat?: boolean | undefined;
1703
+ readonly addGroupKeys?: boolean | undefined;
1704
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1705
+ readonly single?: boolean | undefined;
1706
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1707
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1708
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1709
+ };
1710
+ var object: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1711
+ readonly export: "object";
1712
+ readonly flat?: boolean | undefined;
1713
+ readonly addGroupKeys?: boolean | undefined;
1714
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1715
+ readonly single?: boolean | undefined;
1716
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1717
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1718
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1719
+ };
1720
+ var map: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1721
+ readonly export: "map";
1722
+ readonly flat?: boolean | undefined;
1723
+ readonly addGroupKeys?: boolean | undefined;
1724
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1725
+ readonly single?: boolean | undefined;
1726
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1727
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1728
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1729
+ };
1730
+ var keys: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1731
+ readonly export: "keys";
1732
+ readonly flat?: boolean | undefined;
1733
+ readonly addGroupKeys?: boolean | undefined;
1734
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1735
+ readonly single?: boolean | undefined;
1736
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1737
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1738
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1739
+ };
1740
+ var values: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1741
+ readonly export: "values";
1742
+ readonly flat?: boolean | undefined;
1743
+ readonly addGroupKeys?: boolean | undefined;
1744
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1745
+ readonly single?: boolean | undefined;
1746
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1747
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1748
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1749
+ };
1750
+ var levels: (options?: Omit<GroupByOptions, "export"> | undefined) => {
1751
+ readonly export: "levels";
1752
+ readonly flat?: boolean | undefined;
1753
+ readonly levels?: ("object" | "map" | "entries" | "keys" | "values" | LevelSpec | "entries-object")[] | undefined;
1754
+ readonly addGroupKeys?: boolean | undefined;
1755
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1756
+ readonly single?: boolean | undefined;
1757
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1758
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1759
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1760
+ };
1761
+ }
1762
+ declare function groupBy<T extends object, Keys extends GK<T>, Opts extends GroupByOptions>(groupKeys: Keys, options: Opts): GroupByFn<T, T, Keys, Opts>;
1763
+ declare namespace groupBy {
1764
+ var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1765
+ readonly export: "grouped";
1766
+ readonly flat?: boolean | undefined;
1767
+ readonly addGroupKeys?: boolean | undefined;
1768
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1769
+ readonly single?: boolean | undefined;
1770
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1771
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1772
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1773
+ };
1774
+ var entries: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1775
+ readonly export: "entries";
1776
+ readonly flat?: boolean | undefined;
1777
+ readonly addGroupKeys?: boolean | undefined;
1778
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1779
+ readonly single?: boolean | undefined;
1780
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1781
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1782
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1783
+ };
1784
+ var entriesObject: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1785
+ readonly export: "entries-object";
1786
+ readonly flat?: boolean | undefined;
1787
+ readonly addGroupKeys?: boolean | undefined;
1788
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1789
+ readonly single?: boolean | undefined;
1790
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1791
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1792
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1793
+ };
1794
+ var object: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1795
+ readonly export: "object";
1796
+ readonly flat?: boolean | undefined;
1797
+ readonly addGroupKeys?: boolean | undefined;
1798
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1799
+ readonly single?: boolean | undefined;
1800
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1801
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1802
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1803
+ };
1804
+ var map: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1805
+ readonly export: "map";
1806
+ readonly flat?: boolean | undefined;
1807
+ readonly addGroupKeys?: boolean | undefined;
1808
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1809
+ readonly single?: boolean | undefined;
1810
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1811
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1812
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1813
+ };
1814
+ var keys: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1815
+ readonly export: "keys";
1816
+ readonly flat?: boolean | undefined;
1817
+ readonly addGroupKeys?: boolean | undefined;
1818
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1819
+ readonly single?: boolean | undefined;
1820
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1821
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1822
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1823
+ };
1824
+ var values: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1825
+ readonly export: "values";
1826
+ readonly flat?: boolean | undefined;
1827
+ readonly addGroupKeys?: boolean | undefined;
1828
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1829
+ readonly single?: boolean | undefined;
1830
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1831
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1832
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1833
+ };
1834
+ var levels: (options?: Omit<GroupByOptions, "export"> | undefined) => {
1835
+ readonly export: "levels";
1836
+ readonly flat?: boolean | undefined;
1837
+ readonly levels?: ("object" | "map" | "entries" | "keys" | "values" | LevelSpec | "entries-object")[] | undefined;
1838
+ readonly addGroupKeys?: boolean | undefined;
1839
+ readonly compositeKey?: ((keys: any[]) => string) | undefined;
1840
+ readonly single?: boolean | undefined;
1841
+ readonly mapLeaf?: ((value: any) => any) | undefined;
1842
+ readonly mapLeaves?: ((values: any[]) => any) | undefined;
1843
+ readonly mapEntry?: ((entry: [any, any], level: number) => any) | undefined;
1844
+ };
1845
+ }
1846
+ declare function groupBy<T extends object, Keys extends GK<T>>(groupKeys: Keys): GroupByFn<T, T, Keys, GroupByOptions>;
1007
1847
  declare namespace groupBy {
1008
1848
  var grouped: (options?: Omit<GroupByOptions, "levels" | "export"> | undefined) => {
1009
1849
  readonly export: "grouped";
@@ -1269,19 +2109,25 @@ declare type Options = {
1269
2109
  declare function debug<T extends object>(label?: string | null | undefined, options?: Options | null | undefined): TidyFn<T>;
1270
2110
 
1271
2111
  declare type RateOptions<T> = {
1272
- predicate?: (d: T) => boolean;
2112
+ predicate?: (d: T, index: number, array: Iterable<T>) => boolean;
1273
2113
  allowDivideByZero?: boolean;
1274
2114
  };
1275
2115
  /**
1276
2116
  * Returns a function that computes a rate (numerator / denominator), setting the value to
1277
2117
  * 0 if denominator = 0 and numerator = 0.
1278
2118
  */
1279
- declare function rate<T extends object>(numerator: keyof T | ((d: T) => number), denominator: keyof T | ((d: T) => number), options?: RateOptions<T>): (d: T) => number | undefined;
2119
+ declare function rate<T extends object>(numerator: keyof T | ((d: T, index: number, array: Iterable<T>) => number), denominator: keyof T | ((d: T, index: number, array: Iterable<T>) => number), options?: RateOptions<T>): (d: T, index: number, array: Iterable<T>) => number | undefined;
1280
2120
 
1281
- declare function cumsum<T extends object>(key: keyof T | ((d: T) => number | null | undefined)): (items: T[]) => Float64Array;
2121
+ declare function cumsum<T extends object>(key: keyof T | ((d: T, index: number, array: Iterable<T>) => number | null | undefined)): (items: T[]) => Float64Array;
1282
2122
 
1283
2123
  declare type RollOptions = {
1284
2124
  partial?: boolean;
2125
+ /** which direction the window is aligned to (default: right, looking back)
2126
+ * - right: current row is the last item [1,2,**3**]
2127
+ * - left: current row is the first item [**1**,2,3]
2128
+ * - center: current row is the center item [1,**2**,3]
2129
+ */
2130
+ align?: 'left' | 'center' | 'right';
1285
2131
  };
1286
2132
  /**
1287
2133
  * Returns a function that computes the a rolling value (e.g. moving average) by
@@ -1304,7 +2150,7 @@ declare type LagOptions = {
1304
2150
  * @param key The key or accessor to lag
1305
2151
  * @param options Options to configure roll. e.g. whether to run on partial windows.
1306
2152
  */
1307
- declare function lag<T extends object>(key: keyof T | ((d: T) => any), options?: LagOptions | undefined | null): (items: any[]) => any[];
2153
+ declare function lag<T extends object>(key: keyof T | ((d: T, index: number, array: Iterable<T>) => any), options?: LagOptions | undefined | null): (items: T[]) => any[];
1308
2154
 
1309
2155
  declare type LeadOptions = {
1310
2156
  /** Number of positions to lead by (default: 1) */
@@ -1318,67 +2164,82 @@ declare type LeadOptions = {
1318
2164
  * @param key The key or accessor to lead
1319
2165
  * @param options Options to configure roll. e.g. whether to run on partial windows.
1320
2166
  */
1321
- declare function lead<T extends object>(key: keyof T | ((d: T) => any), options?: LeadOptions | undefined | null): (items: any[]) => any[];
2167
+ declare function lead<T extends object>(key: keyof T | ((d: T, index: number, array: Iterable<T>) => any), options?: LeadOptions | undefined | null): (items: T[]) => any[];
2168
+
2169
+ declare type RowNumberOptions = {
2170
+ /** what to start row numbers at, default is 0 */
2171
+ startAt?: number;
2172
+ };
2173
+ /**
2174
+ * Returns a vector of row numbers, starting at 0
2175
+ */
2176
+ declare function rowNumber<T>(options?: RowNumberOptions): (items: T[]) => number[];
1322
2177
 
2178
+ declare type SumOptions<T> = {
2179
+ predicate?: (d: T, index: number, array: Iterable<T>) => boolean;
2180
+ };
1323
2181
  /**
1324
2182
  * Returns a function that computes the sum over an array of items
1325
2183
  * @param key A string key of the object or an accessor converting the object to a number
1326
2184
  */
1327
- declare function sum<T extends object>(key: keyof T | ((d: T) => number)): (items: T[]) => number;
2185
+ declare function sum<T extends object>(key: keyof T | ((d: T, index: number, array: Iterable<T>) => number), options?: SumOptions<T>): (items: T[]) => number;
1328
2186
 
1329
2187
  /**
1330
2188
  * Returns a function that computes the min over an array of items
1331
2189
  * @param key A string key of the object or an accessor converting the object to a number
1332
2190
  */
1333
- declare function min<T extends object>(key: keyof T | ((d: T) => number)): (items: T[]) => number | undefined;
2191
+ declare function min<T extends object>(key: keyof T | ((d: T, index: number, array: Iterable<T>) => number)): (items: T[]) => number | undefined;
1334
2192
 
1335
2193
  /**
1336
2194
  * Returns a function that computes the max over an array of items
1337
2195
  * @param key A string key of the object or an accessor converting the object to a number
1338
2196
  */
1339
- declare function max<T extends object>(key: keyof T | ((d: T) => number)): (items: T[]) => number | undefined;
2197
+ declare function max<T extends object>(key: keyof T | ((d: T, index: number, array: Iterable<T>) => number)): (items: T[]) => number | undefined;
1340
2198
 
1341
2199
  /**
1342
2200
  * Returns a function that computes the mean over an array of items
1343
2201
  * @param key A string key of the object or an accessor converting the object to a number
1344
2202
  */
1345
- declare function mean<T extends object>(key: keyof T | ((d: T) => number)): (items: T[]) => number | undefined;
2203
+ declare function mean<T extends object>(key: keyof T | ((d: T, index: number, array: Iterable<T>) => number)): (items: T[]) => number | undefined;
1346
2204
 
1347
2205
  /**
1348
2206
  * Returns a function that computes the mean of a rate over an array of items
1349
2207
  * @param numerator A string key of the object or an accessor converting the object to a number
1350
2208
  * @param denominator A string key of the object or an accessor converting the object to a number
1351
2209
  */
1352
- declare function meanRate<T extends object>(numerator: keyof T | ((d: T) => number), denominator: keyof T | ((d: T) => number)): (items: T[]) => number | undefined;
2210
+ declare function meanRate<T extends object>(numerator: keyof T | ((d: T, index: number, array: Iterable<T>) => number), denominator: keyof T | ((d: T, index: number, array: Iterable<T>) => number)): (items: T[]) => number | undefined;
1353
2211
 
1354
2212
  /**
1355
2213
  * Returns a function that computes the median over an array of items
1356
2214
  * @param key A string key of the object or an accessor converting the object to a number
1357
2215
  */
1358
- declare function median<T extends object>(key: keyof T | ((d: T) => number)): (items: T[]) => number | undefined;
2216
+ declare function median<T extends object>(key: keyof T | ((d: T, index: number, array: Iterable<T>) => number)): (items: T[]) => number | undefined;
1359
2217
 
1360
2218
  /**
1361
2219
  * Returns a function that computes the deviation over an array of items
1362
2220
  * @param key A string key of the object or an accessor converting the object to a number
1363
2221
  */
1364
- declare function deviation<T extends object>(key: keyof T | ((d: T) => number)): (items: T[]) => number | undefined;
2222
+ declare function deviation<T extends object>(key: keyof T | ((d: T, index: number, array: Iterable<T>) => number)): (items: T[]) => number | undefined;
1365
2223
 
1366
2224
  /**
1367
2225
  * Returns a function that computes the variance over an array of items
1368
2226
  * @param key A string key of the object or an accessor converting the object to a number
1369
2227
  */
1370
- declare function variance<T extends object>(key: keyof T | ((d: T) => number)): (items: T[]) => number | undefined;
2228
+ declare function variance<T extends object>(key: keyof T | ((d: T, index: number, array: Iterable<T>) => number)): (items: T[]) => number | undefined;
1371
2229
 
2230
+ declare type NOptions<T> = {
2231
+ predicate?: (d: T, index: number, array: Iterable<T>) => boolean;
2232
+ };
1372
2233
  /**
1373
2234
  * Returns a function that computes the count over an array of items
1374
2235
  */
1375
- declare function n(): (items: any[]) => number;
2236
+ declare function n<T>(options?: NOptions<T>): (items: T[]) => number;
1376
2237
 
1377
2238
  /**
1378
2239
  * Returns a function that computes the distinct count for a key
1379
2240
  * over an array of items. By default it counts nulls but not undefined
1380
2241
  */
1381
- declare function nDistinct<T extends object>(key: keyof T | ((d: T) => any), options?: {
2242
+ declare function nDistinct<T extends object>(key: keyof T | ((d: T, index: number, array: Iterable<T>) => any), options?: {
1382
2243
  includeNull?: boolean;
1383
2244
  includeUndefined?: boolean;
1384
2245
  }): (items: T[]) => number;
@@ -1387,13 +2248,13 @@ declare function nDistinct<T extends object>(key: keyof T | ((d: T) => any), opt
1387
2248
  * Returns a function that returns the first value for the specified key
1388
2249
  * @param key A string key of the object or an accessor converting the object to a number
1389
2250
  */
1390
- declare function first<T extends object>(key: keyof T | ((d: T) => number)): (items: T[]) => number | undefined;
2251
+ declare function first<T extends object>(key: keyof T | ((d: T) => any)): (items: T[]) => any;
1391
2252
 
1392
2253
  /**
1393
2254
  * Returns a function that returns the last value for the specified key
1394
2255
  * @param key A string key of the object or an accessor converting the object to a number
1395
2256
  */
1396
- declare function last<T extends object>(key: keyof T | ((d: T) => number)): (items: T[]) => number | undefined;
2257
+ declare function last<T extends object>(key: keyof T | ((d: T) => any)): (items: T[]) => any;
1397
2258
 
1398
2259
  /**
1399
2260
  * Returns all keys
@@ -1448,4 +2309,4 @@ declare namespace math {
1448
2309
  };
1449
2310
  }
1450
2311
 
1451
- export { Comparator, Datum, Granularity, GroupKey, Grouped, Key, KeyOrFn, LevelSpec, NonFunctionValue, Primitive, SummarizeOptions, SummarizeSpec, math as TMath, TidyContext, TidyFn, TidyGroupExportFn, Vector, addRows as addItems, addRows, arrange, asc, complete, contains, count, cumsum, debug, desc, deviation, distinct, endsWith, everything, expand, fill, filter, first, fixedOrder, fullJoin, fullSeq, fullSeqDate, fullSeqDateISOString, groupBy, innerJoin, lag, last, lead, leftJoin, map, matches, max, mean, meanRate, median, min, mutate, mutateWithSummary, n, nDistinct, negate, numRange, select as pick, pivotLonger, pivotWider, rate, rename, replaceNully, roll, select, slice, sliceHead, sliceMax, sliceMin, sliceSample, sliceTail, arrange as sort, startsWith, sum, summarize, summarizeAll, summarizeAt, summarizeIf, tally, tidy, total, totalAll, totalAt, totalIf, transmute, variance, vectorSeq, vectorSeqDate, when };
2312
+ export { Comparator, Datum, Granularity, GroupKey, Grouped, Key, KeyOrFn, LevelSpec, NonFunctionValue, Primitive, SummarizeOptions, SummarizeSpec, math as TMath, TidyContext, TidyFn, TidyGroupExportFn, Vector, addRows as addItems, addRows, arrange, asc, complete, contains, count, cumsum, debug, desc, deviation, distinct, endsWith, everything, expand, fill, filter, first, fixedOrder, fullJoin, fullSeq, fullSeqDate, fullSeqDateISOString, groupBy, innerJoin, lag, last, lead, leftJoin, map, matches, max, mean, meanRate, median, min, mutate, mutateWithSummary, n, nDistinct, negate, numRange, select as pick, pivotLonger, pivotWider, rate, rename, replaceNully, roll, rowNumber, select, slice, sliceHead, sliceMax, sliceMin, sliceSample, sliceTail, arrange as sort, startsWith, sum, summarize, summarizeAll, summarizeAt, summarizeIf, tally, tidy, total, totalAll, totalAt, totalIf, transmute, variance, vectorSeq, vectorSeqDate, when };