@tidyjs/tidy 2.5.0 → 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.
package/dist/tidy.d.ts CHANGED
@@ -130,7 +130,7 @@ 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";