@types/lodash 4.14.100 → 4.14.104

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 (327) hide show
  1. lodash/README.md +2 -2
  2. lodash/common/array.d.ts +3845 -0
  3. lodash/common/collection.d.ts +3091 -0
  4. lodash/common/common.d.ts +3 -3
  5. lodash/{date/now.d.ts → common/date.d.ts} +3 -1
  6. lodash/common/function.d.ts +1367 -0
  7. lodash/common/lang.d.ts +1937 -0
  8. lodash/common/math.d.ts +536 -0
  9. lodash/{number/random.d.ts → common/number.d.ts} +98 -1
  10. lodash/common/object.d.ts +3653 -0
  11. lodash/common/seq.d.ts +198 -0
  12. lodash/common/string.d.ts +1059 -0
  13. lodash/common/util.d.ts +1455 -0
  14. lodash/index.d.ts +11 -338
  15. lodash/package.json +2 -7
  16. lodash/array/chunk.d.ts +0 -37
  17. lodash/array/compact.d.ts +0 -27
  18. lodash/array/concat.d.ts +0 -39
  19. lodash/array/difference.d.ts +0 -37
  20. lodash/array/differenceBy.d.ts +0 -243
  21. lodash/array/differenceWith.d.ts +0 -132
  22. lodash/array/drop.d.ts +0 -27
  23. lodash/array/dropRight.d.ts +0 -30
  24. lodash/array/dropRightWhile.d.ts +0 -47
  25. lodash/array/dropWhile.d.ts +0 -47
  26. lodash/array/fill.d.ts +0 -124
  27. lodash/array/findIndex.d.ts +0 -50
  28. lodash/array/findLastIndex.d.ts +0 -49
  29. lodash/array/first.d.ts +0 -23
  30. lodash/array/flatten.d.ts +0 -43
  31. lodash/array/flattenDeep.d.ts +0 -26
  32. lodash/array/flattenDepth.d.ts +0 -27
  33. lodash/array/fromPairs.d.ts +0 -59
  34. lodash/array/head.d.ts +0 -28
  35. lodash/array/indexOf.d.ts +0 -53
  36. lodash/array/initial.d.ts +0 -26
  37. lodash/array/intersection.d.ts +0 -33
  38. lodash/array/intersectionBy.d.ts +0 -134
  39. lodash/array/intersectionWith.d.ts +0 -133
  40. lodash/array/join.d.ts +0 -30
  41. lodash/array/last.d.ts +0 -26
  42. lodash/array/lastIndexOf.d.ts +0 -40
  43. lodash/array/nth.d.ts +0 -36
  44. lodash/array/pull.d.ts +0 -46
  45. lodash/array/pullAll.d.ts +0 -54
  46. lodash/array/pullAllBy.d.ts +0 -77
  47. lodash/array/pullAllWith.d.ts +0 -77
  48. lodash/array/pullAt.d.ts +0 -34
  49. lodash/array/remove.d.ts +0 -49
  50. lodash/array/reverse.d.ts +0 -27
  51. lodash/array/slice.d.ts +0 -40
  52. lodash/array/sortedIndex.d.ts +0 -45
  53. lodash/array/sortedIndexBy.d.ts +0 -97
  54. lodash/array/sortedIndexOf.d.ts +0 -42
  55. lodash/array/sortedLastIndex.d.ts +0 -43
  56. lodash/array/sortedLastIndexBy.d.ts +0 -48
  57. lodash/array/sortedLastIndexOf.d.ts +0 -42
  58. lodash/array/sortedUniq.d.ts +0 -34
  59. lodash/array/sortedUniqBy.d.ts +0 -66
  60. lodash/array/tail.d.ts +0 -26
  61. lodash/array/take.d.ts +0 -36
  62. lodash/array/takeRight.d.ts +0 -36
  63. lodash/array/takeRightWhile.d.ts +0 -47
  64. lodash/array/takeWhile.d.ts +0 -47
  65. lodash/array/union.d.ts +0 -33
  66. lodash/array/unionBy.d.ts +0 -164
  67. lodash/array/unionWith.d.ts +0 -103
  68. lodash/array/uniq.d.ts +0 -36
  69. lodash/array/uniqBy.d.ts +0 -71
  70. lodash/array/uniqWith.d.ts +0 -45
  71. lodash/array/unzip.d.ts +0 -27
  72. lodash/array/unzipWith.d.ts +0 -60
  73. lodash/array/without.d.ts +0 -36
  74. lodash/array/xor.d.ts +0 -32
  75. lodash/array/xorBy.d.ts +0 -104
  76. lodash/array/xorWith.d.ts +0 -103
  77. lodash/array/zip.d.ts +0 -129
  78. lodash/array/zipObject.d.ts +0 -58
  79. lodash/array/zipObjectDeep.d.ts +0 -36
  80. lodash/array/zipWith.d.ts +0 -187
  81. lodash/collection/countBy.d.ts +0 -121
  82. lodash/collection/each.d.ts +0 -40
  83. lodash/collection/eachRight.d.ts +0 -40
  84. lodash/collection/every.d.ts +0 -85
  85. lodash/collection/filter.d.ts +0 -143
  86. lodash/collection/find.d.ts +0 -131
  87. lodash/collection/findLast.d.ts +0 -121
  88. lodash/collection/flatMap.d.ts +0 -164
  89. lodash/collection/flatMapDeep.d.ts +0 -164
  90. lodash/collection/flatMapDepth.d.ts +0 -180
  91. lodash/collection/forEach.d.ts +0 -113
  92. lodash/collection/forEachRight.d.ts +0 -108
  93. lodash/collection/groupBy.d.ts +0 -121
  94. lodash/collection/includes.d.ts +0 -41
  95. lodash/collection/invokeMap.d.ts +0 -58
  96. lodash/collection/keyBy.d.ts +0 -121
  97. lodash/collection/map.d.ts +0 -180
  98. lodash/collection/orderBy.d.ts +0 -192
  99. lodash/collection/partition.d.ts +0 -72
  100. lodash/collection/reduce.d.ts +0 -220
  101. lodash/collection/reduceRight.d.ts +0 -217
  102. lodash/collection/reject.d.ts +0 -86
  103. lodash/collection/sample.d.ts +0 -74
  104. lodash/collection/sampleSize.d.ts +0 -60
  105. lodash/collection/shuffle.d.ts +0 -41
  106. lodash/collection/size.d.ts +0 -27
  107. lodash/collection/some.d.ts +0 -85
  108. lodash/collection/sortBy.d.ts +0 -84
  109. lodash/function/after.d.ts +0 -30
  110. lodash/function/ary.d.ts +0 -30
  111. lodash/function/before.d.ts +0 -32
  112. lodash/function/bind.d.ts +0 -50
  113. lodash/function/bindKey.d.ts +0 -51
  114. lodash/function/curry.d.ts +0 -203
  115. lodash/function/curryRight.d.ts +0 -132
  116. lodash/function/debounce.d.ts +0 -67
  117. lodash/function/defer.d.ts +0 -31
  118. lodash/function/delay.d.ts +0 -38
  119. lodash/function/flip.d.ts +0 -28
  120. lodash/function/memoize.d.ts +0 -37
  121. lodash/function/negate.d.ts +0 -20
  122. lodash/function/once.d.ts +0 -20
  123. lodash/function/overArgs.d.ts +0 -31
  124. lodash/function/partial.d.ts +0 -159
  125. lodash/function/partialRight.d.ts +0 -150
  126. lodash/function/rearg.d.ts +0 -28
  127. lodash/function/rest.d.ts +0 -33
  128. lodash/function/spread.d.ts +0 -44
  129. lodash/function/throttle.d.ts +0 -58
  130. lodash/function/unary.d.ts +0 -32
  131. lodash/function/wrap.d.ts +0 -61
  132. lodash/lang/castArray.d.ts +0 -26
  133. lodash/lang/clone.d.ts +0 -31
  134. lodash/lang/cloneDeep.d.ts +0 -26
  135. lodash/lang/cloneDeepWith.d.ts +0 -51
  136. lodash/lang/cloneWith.d.ts +0 -74
  137. lodash/lang/conformsTo.d.ts +0 -31
  138. lodash/lang/eq.d.ts +0 -55
  139. lodash/lang/gt.d.ts +0 -30
  140. lodash/lang/gte.d.ts +0 -30
  141. lodash/lang/isArguments.d.ts +0 -26
  142. lodash/lang/isArray.d.ts +0 -31
  143. lodash/lang/isArrayBuffer.d.ts +0 -26
  144. lodash/lang/isArrayLike.d.ts +0 -52
  145. lodash/lang/isArrayLikeObject.d.ts +0 -53
  146. lodash/lang/isBoolean.d.ts +0 -26
  147. lodash/lang/isBuffer.d.ts +0 -26
  148. lodash/lang/isDate.d.ts +0 -26
  149. lodash/lang/isElement.d.ts +0 -26
  150. lodash/lang/isEmpty.d.ts +0 -27
  151. lodash/lang/isEqual.d.ts +0 -52
  152. lodash/lang/isEqualWith.d.ts +0 -61
  153. lodash/lang/isError.d.ts +0 -27
  154. lodash/lang/isFinite.d.ts +0 -28
  155. lodash/lang/isFunction.d.ts +0 -26
  156. lodash/lang/isInteger.d.ts +0 -42
  157. lodash/lang/isLength.d.ts +0 -42
  158. lodash/lang/isMap.d.ts +0 -26
  159. lodash/lang/isMatch.d.ts +0 -42
  160. lodash/lang/isMatchWith.d.ts +0 -51
  161. lodash/lang/isNaN.d.ts +0 -28
  162. lodash/lang/isNative.d.ts +0 -26
  163. lodash/lang/isNil.d.ts +0 -37
  164. lodash/lang/isNull.d.ts +0 -26
  165. lodash/lang/isNumber.d.ts +0 -28
  166. lodash/lang/isObject.d.ts +0 -27
  167. lodash/lang/isObjectLike.d.ts +0 -41
  168. lodash/lang/isPlainObject.d.ts +0 -29
  169. lodash/lang/isRegExp.d.ts +0 -26
  170. lodash/lang/isSafeInteger.d.ts +0 -43
  171. lodash/lang/isSet.d.ts +0 -26
  172. lodash/lang/isString.d.ts +0 -26
  173. lodash/lang/isSymbol.d.ts +0 -34
  174. lodash/lang/isTypedArray.d.ts +0 -26
  175. lodash/lang/isUndefined.d.ts +0 -26
  176. lodash/lang/isWeakMap.d.ts +0 -26
  177. lodash/lang/isWeakSet.d.ts +0 -26
  178. lodash/lang/lt.d.ts +0 -30
  179. lodash/lang/lte.d.ts +0 -30
  180. lodash/lang/toArray.d.ts +0 -46
  181. lodash/lang/toFinite.d.ts +0 -41
  182. lodash/lang/toInteger.d.ts +0 -42
  183. lodash/lang/toLength.d.ts +0 -43
  184. lodash/lang/toNumber.d.ts +0 -40
  185. lodash/lang/toPlainObject.d.ts +0 -27
  186. lodash/lang/toSafeInteger.d.ts +0 -41
  187. lodash/lang/toString.d.ts +0 -24
  188. lodash/math/add.d.ts +0 -30
  189. lodash/math/ceil.d.ts +0 -30
  190. lodash/math/divide.d.ts +0 -30
  191. lodash/math/floor.d.ts +0 -30
  192. lodash/math/max.d.ts +0 -30
  193. lodash/math/maxBy.d.ts +0 -49
  194. lodash/math/mean.d.ts +0 -33
  195. lodash/math/meanBy.d.ts +0 -41
  196. lodash/math/min.d.ts +0 -30
  197. lodash/math/minBy.d.ts +0 -49
  198. lodash/math/multiply.d.ts +0 -29
  199. lodash/math/round.d.ts +0 -30
  200. lodash/math/subtract.d.ts +0 -39
  201. lodash/math/sum.d.ts +0 -31
  202. lodash/math/sumBy.d.ts +0 -53
  203. lodash/number/clamp.d.ts +0 -56
  204. lodash/number/inRange.d.ts +0 -39
  205. lodash/object/assign.d.ts +0 -172
  206. lodash/object/assignIn.d.ts +0 -171
  207. lodash/object/assignInWith.d.ts +0 -183
  208. lodash/object/assignWith.d.ts +0 -180
  209. lodash/object/at.d.ts +0 -61
  210. lodash/object/create.d.ts +0 -31
  211. lodash/object/defaults.d.ts +0 -155
  212. lodash/object/defaultsDeep.d.ts +0 -28
  213. lodash/object/entries.d.ts +0 -38
  214. lodash/object/entriesIn.d.ts +0 -38
  215. lodash/object/extend.d.ts +0 -147
  216. lodash/object/extendWith.d.ts +0 -159
  217. lodash/object/findKey.d.ts +0 -47
  218. lodash/object/findLastKey.d.ts +0 -46
  219. lodash/object/forIn.d.ts +0 -37
  220. lodash/object/forInRight.d.ts +0 -35
  221. lodash/object/forOwn.d.ts +0 -37
  222. lodash/object/forOwnRight.d.ts +0 -35
  223. lodash/object/functions.d.ts +0 -39
  224. lodash/object/functionsIn.d.ts +0 -39
  225. lodash/object/get.d.ts +0 -238
  226. lodash/object/has.d.ts +0 -47
  227. lodash/object/hasIn.d.ts +0 -46
  228. lodash/object/invert.d.ts +0 -30
  229. lodash/object/invertBy.d.ts +0 -62
  230. lodash/object/invoke.d.ts +0 -33
  231. lodash/object/keys.d.ts +0 -28
  232. lodash/object/keysIn.d.ts +0 -28
  233. lodash/object/mapKeys.d.ts +0 -86
  234. lodash/object/mapValues.d.ts +0 -189
  235. lodash/object/merge.d.ts +0 -156
  236. lodash/object/mergeWith.d.ts +0 -133
  237. lodash/object/omit.d.ts +0 -69
  238. lodash/object/omitBy.d.ts +0 -45
  239. lodash/object/pick.d.ts +0 -68
  240. lodash/object/pickBy.d.ts +0 -44
  241. lodash/object/result.d.ts +0 -39
  242. lodash/object/set.d.ts +0 -65
  243. lodash/object/setWith.d.ts +0 -71
  244. lodash/object/toPairs.d.ts +0 -41
  245. lodash/object/toPairsIn.d.ts +0 -41
  246. lodash/object/transform.d.ts +0 -163
  247. lodash/object/unset.d.ts +0 -32
  248. lodash/object/update.d.ts +0 -39
  249. lodash/object/updateWith.d.ts +0 -83
  250. lodash/object/values.d.ts +0 -56
  251. lodash/object/valuesIn.d.ts +0 -41
  252. lodash/seq/chain.d.ts +0 -26
  253. lodash/seq/prototype.at.d.ts +0 -12
  254. lodash/seq/prototype.chain.d.ts +0 -26
  255. lodash/seq/prototype.commit.d.ts +0 -11
  256. lodash/seq/prototype.plant.d.ts +0 -18
  257. lodash/seq/prototype.reverse.d.ts +0 -14
  258. lodash/seq/prototype.toJSON.d.ts +0 -9
  259. lodash/seq/prototype.toString.d.ts +0 -11
  260. lodash/seq/prototype.value.d.ts +0 -13
  261. lodash/seq/prototype.valueOf.d.ts +0 -9
  262. lodash/seq/tap.d.ts +0 -28
  263. lodash/seq/thru.d.ts +0 -31
  264. lodash/string/camelCase.d.ts +0 -26
  265. lodash/string/capitalize.d.ts +0 -26
  266. lodash/string/deburr.d.ts +0 -27
  267. lodash/string/endsWith.d.ts +0 -38
  268. lodash/string/escape.d.ts +0 -37
  269. lodash/string/escapeRegExp.d.ts +0 -27
  270. lodash/string/kebabCase.d.ts +0 -26
  271. lodash/string/lowerCase.d.ts +0 -26
  272. lodash/string/lowerFirst.d.ts +0 -26
  273. lodash/string/pad.d.ts +0 -39
  274. lodash/string/padEnd.d.ts +0 -39
  275. lodash/string/padStart.d.ts +0 -39
  276. lodash/string/parseInt.d.ts +0 -33
  277. lodash/string/repeat.d.ts +0 -32
  278. lodash/string/replace.d.ts +0 -59
  279. lodash/string/snakeCase.d.ts +0 -26
  280. lodash/string/split.d.ts +0 -56
  281. lodash/string/startCase.d.ts +0 -26
  282. lodash/string/startsWith.d.ts +0 -38
  283. lodash/string/template.d.ts +0 -61
  284. lodash/string/toLower.d.ts +0 -26
  285. lodash/string/toUpper.d.ts +0 -26
  286. lodash/string/trim.d.ts +0 -44
  287. lodash/string/trimEnd.d.ts +0 -44
  288. lodash/string/trimStart.d.ts +0 -44
  289. lodash/string/truncate.d.ts +0 -40
  290. lodash/string/unescape.d.ts +0 -30
  291. lodash/string/upperCase.d.ts +0 -26
  292. lodash/string/upperFirst.d.ts +0 -26
  293. lodash/string/words.d.ts +0 -44
  294. lodash/util/attempt.d.ts +0 -27
  295. lodash/util/bindAll.d.ts +0 -28
  296. lodash/util/cond.d.ts +0 -33
  297. lodash/util/conforms.d.ts +0 -28
  298. lodash/util/constant.d.ts +0 -26
  299. lodash/util/defaultTo.d.ts +0 -53
  300. lodash/util/flow.d.ts +0 -171
  301. lodash/util/flowRight.d.ts +0 -156
  302. lodash/util/identity.d.ts +0 -31
  303. lodash/util/iteratee.d.ts +0 -58
  304. lodash/util/matches.d.ts +0 -36
  305. lodash/util/matchesProperty.d.ts +0 -59
  306. lodash/util/method.d.ts +0 -31
  307. lodash/util/methodOf.d.ts +0 -35
  308. lodash/util/mixin.d.ts +0 -69
  309. lodash/util/noConflict.d.ts +0 -25
  310. lodash/util/noop.d.ts +0 -25
  311. lodash/util/nthArg.d.ts +0 -26
  312. lodash/util/over.d.ts +0 -33
  313. lodash/util/overEvery.d.ts +0 -27
  314. lodash/util/overSome.d.ts +0 -27
  315. lodash/util/property.d.ts +0 -26
  316. lodash/util/propertyOf.d.ts +0 -27
  317. lodash/util/range.d.ts +0 -56
  318. lodash/util/rangeRight.d.ts +0 -77
  319. lodash/util/runInContext.d.ts +0 -19
  320. lodash/util/stubArray.d.ts +0 -25
  321. lodash/util/stubFalse.d.ts +0 -25
  322. lodash/util/stubObject.d.ts +0 -25
  323. lodash/util/stubString.d.ts +0 -25
  324. lodash/util/stubTrue.d.ts +0 -25
  325. lodash/util/times.d.ts +0 -50
  326. lodash/util/toPath.d.ts +0 -43
  327. lodash/util/uniqueId.d.ts +0 -26
@@ -0,0 +1,3845 @@
1
+ import _ = require("../index");
2
+ declare module "../index" {
3
+ // chunk
4
+
5
+ interface LoDashStatic {
6
+ /**
7
+ * Creates an array of elements split into groups the length of size. If collection can’t be split evenly, the
8
+ * final chunk will be the remaining elements.
9
+ *
10
+ * @param array The array to process.
11
+ * @param size The length of each chunk.
12
+ * @return Returns the new array containing chunks.
13
+ */
14
+ chunk<T>(
15
+ array: List<T> | null | undefined,
16
+ size?: number
17
+ ): T[][];
18
+ }
19
+
20
+ interface LoDashImplicitWrapper<TValue> {
21
+ /**
22
+ * @see _.chunk
23
+ */
24
+ chunk<T>(
25
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
26
+ size?: number,
27
+ ): LoDashImplicitWrapper<T[][]>;
28
+ }
29
+
30
+ interface LoDashExplicitWrapper<TValue> {
31
+ /**
32
+ * @see _.chunk
33
+ */
34
+ chunk<T>(
35
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
36
+ size?: number,
37
+ ): LoDashExplicitWrapper<T[][]>;
38
+ }
39
+
40
+ // compact
41
+
42
+ interface LoDashStatic {
43
+ /**
44
+ * Creates an array with all falsey values removed. The values false, null, 0, "", undefined, and NaN are
45
+ * falsey.
46
+ *
47
+ * @param array The array to compact.
48
+ * @return Returns the new array of filtered values.
49
+ */
50
+ compact<T>(array: List<T | null | undefined | false | "" | 0> | null | undefined): T[];
51
+ }
52
+
53
+ interface LoDashImplicitWrapper<TValue> {
54
+ /**
55
+ * @see _.compact
56
+ */
57
+ compact<T>(this: LoDashImplicitWrapper<List<T | null | undefined | false | "" | 0> | null | undefined>): LoDashImplicitWrapper<T[]>;
58
+ }
59
+
60
+ interface LoDashExplicitWrapper<TValue> {
61
+ /**
62
+ * @see _.compact
63
+ */
64
+ compact<T>(this: LoDashExplicitWrapper<List<T | null | undefined | false | "" | 0> | null | undefined>): LoDashExplicitWrapper<T[]>;
65
+ }
66
+
67
+ // concat
68
+
69
+ interface LoDashStatic {
70
+ /**
71
+ * Creates a new array concatenating `array` with any additional arrays
72
+ * and/or values.
73
+ *
74
+ * @category Array
75
+ * @param array The array to concatenate.
76
+ * @param [values] The values to concatenate.
77
+ * @returns Returns the new concatenated array.
78
+ * @example
79
+ *
80
+ * var array = [1];
81
+ * var other = _.concat(array, 2, [3], [[4]]);
82
+ *
83
+ * console.log(other);
84
+ * // => [1, 2, 3, [4]]
85
+ *
86
+ * console.log(array);
87
+ * // => [1]
88
+ */
89
+ concat<T>(array: Many<T>, ...values: Array<Many<T>>): T[];
90
+ }
91
+
92
+ interface LoDashImplicitWrapper<TValue> {
93
+ /**
94
+ * @see _.compact
95
+ */
96
+ concat<T>(this: LoDashImplicitWrapper<Many<T>>, ...values: Array<Many<T>>): LoDashImplicitWrapper<T[]>;
97
+ }
98
+
99
+ interface LoDashExplicitWrapper<TValue> {
100
+ /**
101
+ * @see _.compact
102
+ */
103
+ concat<T>(this: LoDashExplicitWrapper<Many<T>>, ...values: Array<Many<T>>): LoDashExplicitWrapper<T[]>;
104
+ }
105
+
106
+ // difference
107
+
108
+ interface LoDashStatic {
109
+ /**
110
+ * Creates an array of unique array values not included in the other provided arrays using SameValueZero for
111
+ * equality comparisons.
112
+ *
113
+ * @param array The array to inspect.
114
+ * @param values The arrays of values to exclude.
115
+ * @return Returns the new array of filtered values.
116
+ */
117
+ difference<T>(
118
+ array: List<T> | null | undefined,
119
+ ...values: Array<List<T>>
120
+ ): T[];
121
+ }
122
+
123
+ interface LoDashImplicitWrapper<TValue> {
124
+ /**
125
+ * @see _.difference
126
+ */
127
+ difference<T>(
128
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
129
+ ...values: Array<List<T>>
130
+ ): LoDashImplicitWrapper<T[]>;
131
+ }
132
+
133
+ interface LoDashExplicitWrapper<TValue> {
134
+ /**
135
+ * @see _.difference
136
+ */
137
+ difference<T>(
138
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
139
+ ...values: Array<List<T>>
140
+ ): LoDashExplicitWrapper<T[]>;
141
+ }
142
+
143
+ // differenceBy
144
+
145
+ interface LoDashStatic {
146
+ /**
147
+ * This method is like _.difference except that it accepts iteratee which is invoked for each element of array
148
+ * and values to generate the criterion by which uniqueness is computed. The iteratee is invoked with one
149
+ * argument: (value).
150
+ *
151
+ * @param array The array to inspect.
152
+ * @param values The values to exclude.
153
+ * @param iteratee The iteratee invoked per element.
154
+ * @returns Returns the new array of filtered values.
155
+ */
156
+ differenceBy<T1, T2>(
157
+ array: List<T1> | null | undefined,
158
+ values: List<T2>,
159
+ iteratee: ValueIteratee<T1 | T2>
160
+ ): T1[];
161
+
162
+ /**
163
+ * @see _.differenceBy
164
+ */
165
+ differenceBy<T1, T2, T3>(
166
+ array: List<T1> | null | undefined,
167
+ values1: List<T2>,
168
+ values2: List<T3>,
169
+ iteratee: ValueIteratee<T1 | T2 | T3>
170
+ ): T1[];
171
+
172
+ /**
173
+ * @see _.differenceBy
174
+ */
175
+ differenceBy<T1, T2, T3, T4>(
176
+ array: List<T1> | null | undefined,
177
+ values1: List<T2>,
178
+ values2: List<T3>,
179
+ values3: List<T4>,
180
+ iteratee: ValueIteratee<T1 | T2 | T3 | T4>
181
+ ): T1[];
182
+
183
+ /**
184
+ * @see _.differenceBy
185
+ */
186
+ differenceBy<T1, T2, T3, T4, T5>(
187
+ array: List<T1> | null | undefined,
188
+ values1: List<T2>,
189
+ values2: List<T3>,
190
+ values3: List<T4>,
191
+ values4: List<T5>,
192
+ iteratee: ValueIteratee<T1 | T2 | T3 | T4 | T5>
193
+ ): T1[];
194
+
195
+ /**
196
+ * @see _.differenceBy
197
+ */
198
+ differenceBy<T1, T2, T3, T4, T5, T6>(
199
+ array: List<T1> | null | undefined,
200
+ values1: List<T2>,
201
+ values2: List<T3>,
202
+ values3: List<T4>,
203
+ values4: List<T5>,
204
+ values5: List<T6>,
205
+ iteratee: ValueIteratee<T1 | T2 | T3 | T4 | T5 | T6>
206
+ ): T1[];
207
+
208
+ /**
209
+ * @see _.differenceBy
210
+ */
211
+ differenceBy<T1, T2, T3, T4, T5, T6, T7>(
212
+ array: List<T1> | null | undefined,
213
+ values1: List<T2>,
214
+ values2: List<T3>,
215
+ values3: List<T4>,
216
+ values4: List<T5>,
217
+ values5: List<T6>,
218
+ ...values: Array<List<T7> | ValueIteratee<T1 | T2 | T3 | T4 | T5 | T6 | T7>>
219
+ ): T1[];
220
+
221
+ /**
222
+ * @see _.differenceBy
223
+ */
224
+ differenceBy<T>(
225
+ array: List<T> | null | undefined,
226
+ ...values: Array<List<T>>
227
+ ): T[];
228
+ }
229
+
230
+ interface LoDashImplicitWrapper<TValue> {
231
+ /**
232
+ * @see _.differenceBy
233
+ */
234
+ differenceBy<T1, T2>(
235
+ this: LoDashImplicitWrapper<List<T1> | null | undefined>,
236
+ values: List<T2>,
237
+ iteratee: ValueIteratee<T1 | T2>
238
+ ): LoDashImplicitWrapper<T1[]>;
239
+
240
+ /**
241
+ * @see _.differenceBy
242
+ */
243
+ differenceBy<T1, T2, T3>(
244
+ this: LoDashImplicitWrapper<List<T1> | null | undefined>,
245
+ values1: List<T2>,
246
+ values2: List<T3>,
247
+ iteratee: ValueIteratee<T1 | T2 | T3>
248
+ ): LoDashImplicitWrapper<T1[]>;
249
+
250
+ /**
251
+ * @see _.differenceBy
252
+ */
253
+ differenceBy<T1, T2, T3, T4>(
254
+ this: LoDashImplicitWrapper<List<T1> | null | undefined>,
255
+ values1: List<T2>,
256
+ values2: List<T3>,
257
+ values3: List<T4>,
258
+ iteratee: ValueIteratee<T1 | T2 | T3 | T4>
259
+ ): LoDashImplicitWrapper<T1[]>;
260
+
261
+ /**
262
+ * @see _.differenceBy
263
+ */
264
+ differenceBy<T1, T2, T3, T4, T5>(
265
+ this: LoDashImplicitWrapper<List<T1> | null | undefined>,
266
+ values1: List<T2>,
267
+ values2: List<T3>,
268
+ values3: List<T4>,
269
+ values4: List<T5>,
270
+ iteratee: ValueIteratee<T1 | T2 | T3 | T4 | T5>
271
+ ): LoDashImplicitWrapper<T1[]>;
272
+
273
+ /**
274
+ * @see _.differenceBy
275
+ */
276
+ differenceBy<T1, T2, T3, T4, T5, T6>(
277
+ this: LoDashImplicitWrapper<List<T1> | null | undefined>,
278
+ values1: List<T2>,
279
+ values2: List<T3>,
280
+ values3: List<T4>,
281
+ values4: List<T5>,
282
+ values5: List<T6>,
283
+ iteratee: ValueIteratee<T1 | T2 | T3 | T4 | T5 | T6>
284
+ ): LoDashImplicitWrapper<T1[]>;
285
+
286
+ /**
287
+ * @see _.differenceBy
288
+ */
289
+ differenceBy<T1, T2, T3, T4, T5, T6, T7>(
290
+ this: LoDashImplicitWrapper<List<T1> | null | undefined>,
291
+ values1: List<T2>,
292
+ values2: List<T3>,
293
+ values3: List<T4>,
294
+ values4: List<T5>,
295
+ values5: List<T6>,
296
+ ...values: Array<List<T7> | ValueIteratee<T1 | T2 | T3 | T4 | T5 | T6 | T7>>
297
+ ): LoDashImplicitWrapper<T1[]>;
298
+
299
+ /**
300
+ * @see _.differenceBy
301
+ */
302
+ differenceBy<T>(
303
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
304
+ ...values: Array<List<T>>
305
+ ): LoDashImplicitWrapper<T[]>;
306
+ }
307
+
308
+ interface LoDashExplicitWrapper<TValue> {
309
+ /**
310
+ * @see _.differenceBy
311
+ */
312
+ differenceBy<T1, T2>(
313
+ this: LoDashExplicitWrapper<List<T1> | null | undefined>,
314
+ values: List<T2>,
315
+ iteratee: ValueIteratee<T1 | T2>
316
+ ): LoDashExplicitWrapper<T1[]>;
317
+
318
+ /**
319
+ * @see _.differenceBy
320
+ */
321
+ differenceBy<T1, T2, T3>(
322
+ this: LoDashExplicitWrapper<List<T1> | null | undefined>,
323
+ values1: List<T2>,
324
+ values2: List<T3>,
325
+ iteratee: ValueIteratee<T1 | T2 | T3>
326
+ ): LoDashExplicitWrapper<T1[]>;
327
+
328
+ /**
329
+ * @see _.differenceBy
330
+ */
331
+ differenceBy<T1, T2, T3, T4>(
332
+ this: LoDashExplicitWrapper<List<T1> | null | undefined>,
333
+ values1: List<T2>,
334
+ values2: List<T3>,
335
+ values3: List<T4>,
336
+ iteratee: ValueIteratee<T1 | T2 | T3 | T4>
337
+ ): LoDashExplicitWrapper<T1[]>;
338
+
339
+ /**
340
+ * @see _.differenceBy
341
+ */
342
+ differenceBy<T1, T2, T3, T4, T5>(
343
+ this: LoDashExplicitWrapper<List<T1> | null | undefined>,
344
+ values1: List<T2>,
345
+ values2: List<T3>,
346
+ values3: List<T4>,
347
+ values4: List<T5>,
348
+ iteratee: ValueIteratee<T1 | T2 | T3 | T4 | T5>
349
+ ): LoDashExplicitWrapper<T1[]>;
350
+
351
+ /**
352
+ * @see _.differenceBy
353
+ */
354
+ differenceBy<T1, T2, T3, T4, T5, T6>(
355
+ this: LoDashExplicitWrapper<List<T1> | null | undefined>,
356
+ values1: List<T2>,
357
+ values2: List<T3>,
358
+ values3: List<T4>,
359
+ values4: List<T5>,
360
+ values5: List<T6>,
361
+ iteratee: ValueIteratee<T1 | T2 | T3 | T4 | T5 | T6>
362
+ ): LoDashExplicitWrapper<T1[]>;
363
+
364
+ /**
365
+ * @see _.differenceBy
366
+ */
367
+ differenceBy<T1, T2, T3, T4, T5, T6, T7>(
368
+ this: LoDashExplicitWrapper<List<T1> | null | undefined>,
369
+ values1: List<T2>,
370
+ values2: List<T3>,
371
+ values3: List<T4>,
372
+ values4: List<T5>,
373
+ values5: List<T6>,
374
+ ...values: Array<List<T7> | ValueIteratee<T1 | T2 | T3 | T4 | T5 | T6 | T7>>
375
+ ): LoDashExplicitWrapper<T1[]>;
376
+
377
+ /**
378
+ * @see _.differenceBy
379
+ */
380
+ differenceBy<T>(
381
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
382
+ ...values: Array<List<T>>
383
+ ): LoDashExplicitWrapper<T[]>;
384
+ }
385
+
386
+ // differenceWith
387
+
388
+ interface LoDashStatic {
389
+ /**
390
+ * Creates an array of unique `array` values not included in the other
391
+ * provided arrays using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
392
+ * for equality comparisons.
393
+ *
394
+ * @category Array
395
+ * @param [values] The arrays to inspect.
396
+ * @param [comparator] The comparator invoked per element.
397
+ * @returns Returns the new array of filtered values.
398
+ * @example
399
+ *
400
+ * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
401
+
402
+ * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);
403
+ * // => [{ 'x': 2, 'y': 1 }]
404
+ */
405
+ differenceWith<T1, T2>(
406
+ array: List<T1> | null | undefined,
407
+ values: List<T2>,
408
+ comparator: Comparator2<T1, T2>
409
+ ): T1[];
410
+
411
+ /**
412
+ * @see _.differenceWith
413
+ */
414
+ differenceWith<T1, T2, T3>(
415
+ array: List<T1> | null | undefined,
416
+ values1: List<T2>,
417
+ values2: List<T3>,
418
+ comparator: Comparator2<T1, T2 | T3>
419
+ ): T1[];
420
+
421
+ /**
422
+ * @see _.differenceWith
423
+ */
424
+ differenceWith<T1, T2, T3, T4>(
425
+ array: List<T1> | null | undefined,
426
+ values1: List<T2>,
427
+ values2: List<T3>,
428
+ ...values: Array<List<T4> | Comparator2<T1, T2 | T3 | T4>>
429
+ ): T1[];
430
+
431
+ /**
432
+ * @see _.differenceWith
433
+ */
434
+ differenceWith<T>(
435
+ array: List<T> | null | undefined,
436
+ ...values: Array<List<T>>
437
+ ): T[];
438
+ }
439
+
440
+ interface LoDashImplicitWrapper<TValue> {
441
+ /**
442
+ * @see _.differenceWith
443
+ */
444
+ differenceWith<T1, T2>(
445
+ this: LoDashImplicitWrapper<List<T1> | null | undefined>,
446
+ values: List<T2>,
447
+ comparator: Comparator2<T1, T2>
448
+ ): LoDashImplicitWrapper<T1[]>;
449
+
450
+ /**
451
+ * @see _.differenceWith
452
+ */
453
+ differenceWith<T1, T2, T3>(
454
+ this: LoDashImplicitWrapper<List<T1> | null | undefined>,
455
+ values1: List<T2>,
456
+ values2: List<T3>,
457
+ comparator: Comparator2<T1, T2 | T3>
458
+ ): LoDashImplicitWrapper<T1[]>;
459
+
460
+ /**
461
+ * @see _.differenceWith
462
+ */
463
+ differenceWith<T1, T2, T3, T4>(
464
+ this: LoDashImplicitWrapper<List<T1> | null | undefined>,
465
+ values1: List<T2>,
466
+ values2: List<T3>,
467
+ ...values: Array<List<T4> | Comparator2<T1, T2 | T3 | T4>>
468
+ ): LoDashImplicitWrapper<T1[]>;
469
+
470
+ /**
471
+ * @see _.differenceWith
472
+ */
473
+ differenceWith<T>(
474
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
475
+ ...values: Array<List<T>>
476
+ ): LoDashImplicitWrapper<T[]>;
477
+ }
478
+
479
+ interface LoDashExplicitWrapper<TValue> {
480
+ /**
481
+ * @see _.differenceWith
482
+ */
483
+ differenceWith<T1, T2>(
484
+ this: LoDashExplicitWrapper<List<T1> | null | undefined>,
485
+ values: List<T2>,
486
+ comparator: Comparator2<T1, T2>
487
+ ): LoDashExplicitWrapper<T1[]>;
488
+
489
+ /**
490
+ * @see _.differenceWith
491
+ */
492
+ differenceWith<T1, T2, T3>(
493
+ this: LoDashExplicitWrapper<List<T1> | null | undefined>,
494
+ values1: List<T2>,
495
+ values2: List<T3>,
496
+ comparator: Comparator2<T1, T2 | T3>
497
+ ): LoDashExplicitWrapper<T1[]>;
498
+
499
+ /**
500
+ * @see _.differenceWith
501
+ */
502
+ differenceWith<T1, T2, T3, T4>(
503
+ this: LoDashExplicitWrapper<List<T1> | null | undefined>,
504
+ values1: List<T2>,
505
+ values2: List<T3>,
506
+ ...values: Array<List<T4> | Comparator2<T1, T2 | T3 | T4>>
507
+ ): LoDashExplicitWrapper<T1[]>;
508
+
509
+ /**
510
+ * @see _.differenceWith
511
+ */
512
+ differenceWith<T>(
513
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
514
+ ...values: Array<List<T>>
515
+ ): LoDashExplicitWrapper<T[]>;
516
+ }
517
+
518
+ // drop
519
+
520
+ interface LoDashStatic {
521
+ /**
522
+ * Creates a slice of array with n elements dropped from the beginning.
523
+ *
524
+ * @param array The array to query.
525
+ * @param n The number of elements to drop.
526
+ * @return Returns the slice of array.
527
+ */
528
+ drop<T>(array: List<T> | null | undefined, n?: number): T[];
529
+ }
530
+
531
+ interface LoDashImplicitWrapper<TValue> {
532
+ /**
533
+ * @see _.drop
534
+ */
535
+ drop<T>(this: LoDashImplicitWrapper<List<T> | null | undefined>, n?: number): LoDashImplicitWrapper<T[]>;
536
+ }
537
+
538
+ interface LoDashExplicitWrapper<TValue> {
539
+ /**
540
+ * @see _.drop
541
+ */
542
+ drop<T>(this: LoDashExplicitWrapper<List<T> | null | undefined>, n?: number): LoDashExplicitWrapper<T[]>;
543
+ }
544
+
545
+ // dropRight
546
+
547
+ interface LoDashStatic {
548
+ /**
549
+ * Creates a slice of array with n elements dropped from the end.
550
+ *
551
+ * @param array The array to query.
552
+ * @param n The number of elements to drop.
553
+ * @return Returns the slice of array.
554
+ */
555
+ dropRight<T>(
556
+ array: List<T> | null | undefined,
557
+ n?: number
558
+ ): T[];
559
+ }
560
+
561
+ interface LoDashImplicitWrapper<TValue> {
562
+ /**
563
+ * @see _.dropRight
564
+ */
565
+ dropRight<T>(this: LoDashImplicitWrapper<List<T> | null | undefined>, n?: number): LoDashImplicitWrapper<T[]>;
566
+ }
567
+
568
+ interface LoDashExplicitWrapper<TValue> {
569
+ /**
570
+ * @see _.dropRight
571
+ */
572
+ dropRight<T>(this: LoDashExplicitWrapper<List<T> | null | undefined>, n?: number): LoDashExplicitWrapper<T[]>;
573
+ }
574
+
575
+ // dropRightWhile
576
+
577
+ interface LoDashStatic {
578
+ /**
579
+ * Creates a slice of array excluding elements dropped from the end. Elements are dropped until predicate
580
+ * returns falsey. The predicate is bound to thisArg and invoked with three arguments: (value, index, array).
581
+ *
582
+ * If a property name is provided for predicate the created _.property style callback returns the property
583
+ * value of the given element.
584
+ *
585
+ * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
586
+ * elements that have a matching property value, else false.
587
+ *
588
+ * If an object is provided for predicate the created _.matches style callback returns true for elements that
589
+ * match the properties of the given object, else false.
590
+ *
591
+ * @param array The array to query.
592
+ * @param predicate The function invoked per iteration.
593
+ * @param thisArg The this binding of predicate.
594
+ * @return Returns the slice of array.
595
+ */
596
+ dropRightWhile<T>(
597
+ array: List<T> | null | undefined,
598
+ predicate?: ListIteratee<T>
599
+ ): T[];
600
+ }
601
+
602
+ interface LoDashImplicitWrapper<TValue> {
603
+ /**
604
+ * @see _.dropRightWhile
605
+ */
606
+ dropRightWhile<T>(
607
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
608
+ predicate?: ListIteratee<T>
609
+ ): LoDashImplicitWrapper<T[]>;
610
+ }
611
+
612
+ interface LoDashExplicitWrapper<TValue> {
613
+ /**
614
+ * @see _.dropRightWhile
615
+ */
616
+ dropRightWhile<T>(
617
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
618
+ predicate?: ListIteratee<T>
619
+ ): LoDashExplicitWrapper<T[]>;
620
+ }
621
+
622
+ // dropWhile
623
+
624
+ interface LoDashStatic {
625
+ /**
626
+ * Creates a slice of array excluding elements dropped from the beginning. Elements are dropped until predicate
627
+ * returns falsey. The predicate is bound to thisArg and invoked with three arguments: (value, index, array).
628
+ *
629
+ * If a property name is provided for predicate the created _.property style callback returns the property
630
+ * value of the given element.
631
+ *
632
+ * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
633
+ * elements that have a matching property value, else false.
634
+ *
635
+ * If an object is provided for predicate the created _.matches style callback returns true for elements that
636
+ * have the properties of the given object, else false.
637
+ *
638
+ * @param array The array to query.
639
+ * @param predicate The function invoked per iteration.
640
+ * @param thisArg The this binding of predicate.
641
+ * @return Returns the slice of array.
642
+ */
643
+ dropWhile<T>(
644
+ array: List<T> | null | undefined,
645
+ predicate?: ListIteratee<T>
646
+ ): T[];
647
+ }
648
+
649
+ interface LoDashImplicitWrapper<TValue> {
650
+ /**
651
+ * @see _.dropWhile
652
+ */
653
+ dropWhile<T>(
654
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
655
+ predicate?: ListIteratee<T>
656
+ ): LoDashImplicitWrapper<T[]>;
657
+ }
658
+
659
+ interface LoDashExplicitWrapper<TValue> {
660
+ /**
661
+ * @see _.dropWhile
662
+ */
663
+ dropWhile<T>(
664
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
665
+ predicate?: ListIteratee<T>
666
+ ): LoDashExplicitWrapper<T[]>;
667
+ }
668
+
669
+ // fill
670
+
671
+ interface LoDashStatic {
672
+ /**
673
+ * Fills elements of array with value from start up to, but not including, end.
674
+ *
675
+ * Note: This method mutates array.
676
+ *
677
+ * @param array The array to fill.
678
+ * @param value The value to fill array with.
679
+ * @param start The start position.
680
+ * @param end The end position.
681
+ * @return Returns array.
682
+ */
683
+ fill<T>(
684
+ array: any[] | null | undefined,
685
+ value: T
686
+ ): T[];
687
+
688
+ /**
689
+ * @see _.fill
690
+ */
691
+ fill<T>(
692
+ array: List<any> | null | undefined,
693
+ value: T
694
+ ): List<T>;
695
+
696
+ /**
697
+ * @see _.fill
698
+ */
699
+ fill<T, U>(
700
+ array: U[] | null | undefined,
701
+ value: T,
702
+ start?: number,
703
+ end?: number
704
+ ): Array<T | U>;
705
+
706
+ /**
707
+ * @see _.fill
708
+ */
709
+ fill<T, U>(
710
+ array: List<U> | null | undefined,
711
+ value: T,
712
+ start?: number,
713
+ end?: number
714
+ ): List<T | U>;
715
+ }
716
+
717
+ interface LoDashImplicitWrapper<TValue> {
718
+ /**
719
+ * @see _.fill
720
+ */
721
+ fill<T>(
722
+ this: LoDashImplicitWrapper<any[] | null | undefined>,
723
+ value: T
724
+ ): LoDashImplicitWrapper<T[]>;
725
+
726
+ /**
727
+ * @see _.fill
728
+ */
729
+ fill<T>(
730
+ this: LoDashImplicitWrapper<List<any> | null | undefined>,
731
+ value: T
732
+ ): LoDashImplicitWrapper<List<T>>;
733
+
734
+ /**
735
+ * @see _.fill
736
+ */
737
+ fill<T, U>(
738
+ this: LoDashImplicitWrapper<U[] | null | undefined>,
739
+ value: T,
740
+ start?: number,
741
+ end?: number
742
+ ): LoDashImplicitWrapper<Array<T | U>>;
743
+
744
+ /**
745
+ * @see _.fill
746
+ */
747
+ fill<T, U>(
748
+ this: LoDashImplicitWrapper<List<U> | null | undefined>,
749
+ value: T,
750
+ start?: number,
751
+ end?: number
752
+ ): LoDashImplicitWrapper<List<T | U>>;
753
+ }
754
+
755
+ interface LoDashExplicitWrapper<TValue> {
756
+ /**
757
+ * @see _.fill
758
+ */
759
+ fill<T>(
760
+ this: LoDashExplicitWrapper<any[] | null | undefined>,
761
+ value: T
762
+ ): LoDashExplicitWrapper<T[]>;
763
+
764
+ /**
765
+ * @see _.fill
766
+ */
767
+ fill<T>(
768
+ this: LoDashExplicitWrapper<List<any> | null | undefined>,
769
+ value: T
770
+ ): LoDashExplicitWrapper<List<T>>;
771
+
772
+ /**
773
+ * @see _.fill
774
+ */
775
+ fill<T, U>(
776
+ this: LoDashExplicitWrapper<U[] | null | undefined>,
777
+ value: T,
778
+ start?: number,
779
+ end?: number
780
+ ): LoDashExplicitWrapper<Array<T | U>>;
781
+
782
+ /**
783
+ * @see _.fill
784
+ */
785
+ fill<T, U>(
786
+ this: LoDashExplicitWrapper<List<U> | null | undefined>,
787
+ value: T,
788
+ start?: number,
789
+ end?: number
790
+ ): LoDashExplicitWrapper<List<T | U>>;
791
+ }
792
+
793
+ // findIndex
794
+
795
+ interface LoDashStatic {
796
+ /**
797
+ * This method is like _.find except that it returns the index of the first element predicate returns truthy
798
+ * for instead of the element itself.
799
+ *
800
+ * If a property name is provided for predicate the created _.property style callback returns the property
801
+ * value of the given element.
802
+ *
803
+ * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
804
+ * elements that have a matching property value, else false.
805
+ *
806
+ * If an object is provided for predicate the created _.matches style callback returns true for elements that
807
+ * have the properties of the given object, else false.
808
+ *
809
+ * @param array The array to search.
810
+ * @param predicate The function invoked per iteration.
811
+ * @param fromIndex The index to search from.
812
+ * @return Returns the index of the found element, else -1.
813
+ */
814
+ findIndex<T>(
815
+ array: List<T> | null | undefined,
816
+ predicate?: ListIterateeCustom<T, boolean>,
817
+ fromIndex?: number
818
+ ): number;
819
+ }
820
+
821
+ interface LoDashImplicitWrapper<TValue> {
822
+ /**
823
+ * @see _.findIndex
824
+ */
825
+ findIndex<T>(
826
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
827
+ predicate?: ListIterateeCustom<T, boolean>,
828
+ fromIndex?: number
829
+ ): number;
830
+ }
831
+
832
+ interface LoDashExplicitWrapper<TValue> {
833
+ /**
834
+ * @see _.findIndex
835
+ */
836
+ findIndex<T>(
837
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
838
+ predicate?: ListIterateeCustom<T, boolean>,
839
+ fromIndex?: number
840
+ ): LoDashExplicitWrapper<number>;
841
+ }
842
+
843
+ // findLastIndex
844
+
845
+ interface LoDashStatic {
846
+ /**
847
+ * This method is like _.findIndex except that it iterates over elements of collection from right to left.
848
+ *
849
+ * If a property name is provided for predicate the created _.property style callback returns the property
850
+ * value of the given element.
851
+ *
852
+ * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
853
+ * elements that have a matching property value, else false.
854
+ *
855
+ * If an object is provided for predicate the created _.matches style callback returns true for elements that
856
+ * have the properties of the given object, else false.
857
+ *
858
+ * @param array The array to search.
859
+ * @param predicate The function invoked per iteration.
860
+ * @param fromIndex The index to search from.
861
+ * @return Returns the index of the found element, else -1.
862
+ */
863
+ findLastIndex<T>(
864
+ array: List<T> | null | undefined,
865
+ predicate?: ListIterateeCustom<T, boolean>,
866
+ fromIndex?: number
867
+ ): number;
868
+ }
869
+
870
+ interface LoDashImplicitWrapper<TValue> {
871
+ /**
872
+ * @see _.findLastIndex
873
+ */
874
+ findLastIndex<T>(
875
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
876
+ predicate?: ListIterateeCustom<T, boolean>,
877
+ fromIndex?: number
878
+ ): number;
879
+ }
880
+
881
+ interface LoDashExplicitWrapper<TValue> {
882
+ /**
883
+ * @see _.findLastIndex
884
+ */
885
+ findLastIndex<T>(
886
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
887
+ predicate?: ListIterateeCustom<T, boolean>,
888
+ fromIndex?: number
889
+ ): LoDashExplicitWrapper<number>;
890
+ }
891
+
892
+ // first
893
+
894
+ interface LoDashStatic {
895
+ first: typeof _.head; // tslint:disable-line:no-unnecessary-qualifier
896
+ }
897
+
898
+ interface LoDashImplicitWrapper<TValue> {
899
+ /**
900
+ * @see _.head
901
+ */
902
+ first<T>(this: LoDashImplicitWrapper<List<T> | null | undefined>): T | undefined;
903
+ }
904
+
905
+ interface LoDashExplicitWrapper<TValue> {
906
+ /**
907
+ * @see _.head
908
+ */
909
+ first<T>(this: LoDashExplicitWrapper<List<T> | null | undefined>): LoDashExplicitWrapper<T | undefined>;
910
+ }
911
+
912
+ interface RecursiveArray<T> extends Array<T|RecursiveArray<T>> {}
913
+ interface ListOfRecursiveArraysOrValues<T> extends List<T|RecursiveArray<T>> {}
914
+
915
+ // flatten
916
+
917
+ interface LoDashStatic {
918
+ /**
919
+ * Flattens a nested array. If isDeep is true the array is recursively flattened, otherwise it’s only
920
+ * flattened a single level.
921
+ *
922
+ * @param array The array to flatten.
923
+ * @param isDeep Specify a deep flatten.
924
+ * @return Returns the new flattened array.
925
+ */
926
+ flatten<T>(array: ListOfRecursiveArraysOrValues<T> | null | undefined, isDeep: boolean): T[];
927
+
928
+ /**
929
+ * @see _.flatten
930
+ */
931
+ flatten<T>(array: List<Many<T>> | null | undefined): T[];
932
+ }
933
+
934
+ interface LoDashImplicitWrapper<TValue> {
935
+ /**
936
+ * @see _.flatten
937
+ */
938
+ flatten<T>(this: LoDashImplicitWrapper<ListOfRecursiveArraysOrValues<T> | null | undefined>, isDeep: boolean): LoDashImplicitWrapper<T[]>;
939
+
940
+ /**
941
+ * @see _.flatten
942
+ */
943
+ flatten<T>(this: LoDashImplicitWrapper<List<Many<T>> | null | undefined>): LoDashImplicitWrapper<T[]>;
944
+ }
945
+
946
+ interface LoDashExplicitWrapper<TValue> {
947
+ /**
948
+ * @see _.flatten
949
+ */
950
+ flatten<T>(this: LoDashExplicitWrapper<ListOfRecursiveArraysOrValues<T> | null | undefined>, isDeep: boolean): LoDashExplicitWrapper<T[]>;
951
+
952
+ /**
953
+ * @see _.flatten
954
+ */
955
+ flatten<T>(this: LoDashExplicitWrapper<List<Many<T>> | null | undefined>): LoDashExplicitWrapper<T[]>;
956
+ }
957
+
958
+ // flattenDeep
959
+
960
+ interface LoDashStatic {
961
+ /**
962
+ * Recursively flattens a nested array.
963
+ *
964
+ * @param array The array to recursively flatten.
965
+ * @return Returns the new flattened array.
966
+ */
967
+ flattenDeep<T>(array: ListOfRecursiveArraysOrValues<T> | null | undefined): T[];
968
+ }
969
+
970
+ interface LoDashImplicitWrapper<TValue> {
971
+ /**
972
+ * @see _.flattenDeep
973
+ */
974
+ flattenDeep<T>(this: LoDashImplicitWrapper<ListOfRecursiveArraysOrValues<T> | null | undefined>): LoDashImplicitWrapper<T[]>;
975
+ }
976
+
977
+ interface LoDashExplicitWrapper<TValue> {
978
+ /**
979
+ * @see _.flattenDeep
980
+ */
981
+ flattenDeep<T>(this: LoDashExplicitWrapper<ListOfRecursiveArraysOrValues<T> | null | undefined>): LoDashExplicitWrapper<T[]>;
982
+ }
983
+
984
+ // flattenDepth
985
+
986
+ interface LoDashStatic {
987
+ /**
988
+ * Recursively flatten array up to depth times.
989
+ *
990
+ * @param array The array to recursively flatten.
991
+ * @param number The maximum recursion depth.
992
+ * @return Returns the new flattened array.
993
+ */
994
+ flattenDepth<T>(array: ListOfRecursiveArraysOrValues<T> | null | undefined, depth?: number): T[];
995
+ }
996
+
997
+ interface LoDashImplicitWrapper<TValue> {
998
+ /**
999
+ * @see _.flattenDeep
1000
+ */
1001
+ flattenDepth<T>(this: LoDashImplicitWrapper<ListOfRecursiveArraysOrValues<T> | null | undefined>, depth?: number): LoDashImplicitWrapper<T[]>;
1002
+ }
1003
+
1004
+ interface LoDashExplicitWrapper<TValue> {
1005
+ /**
1006
+ * @see _.flattenDeep
1007
+ */
1008
+ flattenDepth<T>(this: LoDashExplicitWrapper<ListOfRecursiveArraysOrValues<T> | null | undefined>, depth?: number): LoDashExplicitWrapper<T[]>;
1009
+ }
1010
+
1011
+ // fromPairs
1012
+
1013
+ interface LoDashStatic {
1014
+ /**
1015
+ * The inverse of `_.toPairs`; this method returns an object composed
1016
+ * from key-value `pairs`.
1017
+ *
1018
+ * @category Array
1019
+ * @param pairs The key-value pairs.
1020
+ * @returns Returns the new object.
1021
+ * @example
1022
+ *
1023
+ * _.fromPairs([['fred', 30], ['barney', 40]]);
1024
+ * // => { 'fred': 30, 'barney': 40 }
1025
+ */
1026
+ fromPairs<T>(
1027
+ pairs: List<[PropertyName, T]> | null | undefined
1028
+ ): Dictionary<T>;
1029
+
1030
+ /**
1031
+ @see _.fromPairs
1032
+ */
1033
+ fromPairs(
1034
+ pairs: List<any[]> | null | undefined
1035
+ ): Dictionary<any>;
1036
+ }
1037
+
1038
+ interface LoDashImplicitWrapper<TValue> {
1039
+ /**
1040
+ * @see _.fromPairs
1041
+ */
1042
+ fromPairs<T>(
1043
+ this: LoDashImplicitWrapper<List<[PropertyName, T]> | null | undefined>
1044
+ ): LoDashImplicitWrapper<Dictionary<T>>;
1045
+
1046
+ /**
1047
+ @see _.fromPairs
1048
+ */
1049
+ fromPairs(
1050
+ this: LoDashImplicitWrapper<List<any[]> | null | undefined>
1051
+ ): LoDashImplicitWrapper<Dictionary<any>>;
1052
+ }
1053
+
1054
+ interface LoDashExplicitWrapper<TValue> {
1055
+ /**
1056
+ * @see _.fromPairs
1057
+ */
1058
+ fromPairs<T>(
1059
+ this: LoDashExplicitWrapper<List<[PropertyName, T]> | null | undefined>
1060
+ ): LoDashExplicitWrapper<Dictionary<T>>;
1061
+
1062
+ /**
1063
+ @see _.fromPairs
1064
+ */
1065
+ fromPairs(
1066
+ this: LoDashExplicitWrapper<List<any[]> | null | undefined>
1067
+ ): LoDashExplicitWrapper<Dictionary<any>>;
1068
+ }
1069
+
1070
+ // head
1071
+
1072
+ interface LoDashStatic {
1073
+ /**
1074
+ * Gets the first element of array.
1075
+ *
1076
+ * @alias _.first
1077
+ *
1078
+ * @param array The array to query.
1079
+ * @return Returns the first element of array.
1080
+ */
1081
+ head<T>(array: List<T> | null | undefined): T | undefined;
1082
+ }
1083
+
1084
+ interface LoDashImplicitWrapper<TValue> {
1085
+ /**
1086
+ * @see _.head
1087
+ */
1088
+ head<T>(this: LoDashImplicitWrapper<List<T> | null | undefined>): T | undefined;
1089
+ }
1090
+
1091
+ interface LoDashExplicitWrapper<TValue> {
1092
+ /**
1093
+ * @see _.head
1094
+ */
1095
+ head<T>(this: LoDashExplicitWrapper<List<T> | null | undefined>): LoDashExplicitWrapper<T | undefined>;
1096
+ }
1097
+
1098
+ // indexOf
1099
+
1100
+ interface LoDashStatic {
1101
+ /**
1102
+ * Gets the index at which the first occurrence of `value` is found in `array`
1103
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
1104
+ * for equality comparisons. If `fromIndex` is negative, it's used as the offset
1105
+ * from the end of `array`. If `array` is sorted providing `true` for `fromIndex`
1106
+ * performs a faster binary search.
1107
+ *
1108
+ * @category Array
1109
+ * @param array The array to search.
1110
+ * @param value The value to search for.
1111
+ * @param [fromIndex=0] The index to search from.
1112
+ * @returns Returns the index of the matched value, else `-1`.
1113
+ * @example
1114
+ *
1115
+ * _.indexOf([1, 2, 1, 2], 2);
1116
+ * // => 1
1117
+ *
1118
+ * // using `fromIndex`
1119
+ * _.indexOf([1, 2, 1, 2], 2, 2);
1120
+ * // => 3
1121
+ */
1122
+ indexOf<T>(
1123
+ array: List<T> | null | undefined,
1124
+ value: T,
1125
+ fromIndex?: boolean|number
1126
+ ): number;
1127
+ }
1128
+
1129
+ interface LoDashImplicitWrapper<TValue> {
1130
+ /**
1131
+ * @see _.indexOf
1132
+ */
1133
+ indexOf<T>(
1134
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
1135
+ value: T,
1136
+ fromIndex?: boolean|number
1137
+ ): number;
1138
+ }
1139
+
1140
+ interface LoDashExplicitWrapper<TValue> {
1141
+ /**
1142
+ * @see _.indexOf
1143
+ */
1144
+ indexOf<T>(
1145
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
1146
+ value: T,
1147
+ fromIndex?: boolean|number
1148
+ ): LoDashExplicitWrapper<number>;
1149
+ }
1150
+
1151
+ // initial
1152
+
1153
+ interface LoDashStatic {
1154
+ /**
1155
+ * Gets all but the last element of array.
1156
+ *
1157
+ * @param array The array to query.
1158
+ * @return Returns the slice of array.
1159
+ */
1160
+ initial<T>(array: List<T> | null | undefined): T[];
1161
+ }
1162
+
1163
+ interface LoDashImplicitWrapper<TValue> {
1164
+ /**
1165
+ * @see _.initial
1166
+ */
1167
+ initial<T>(this: LoDashImplicitWrapper<List<T> | null | undefined>): LoDashImplicitWrapper<T[]>;
1168
+ }
1169
+
1170
+ interface LoDashExplicitWrapper<TValue> {
1171
+ /**
1172
+ * @see _.initial
1173
+ */
1174
+ initial<T>(this: LoDashExplicitWrapper<List<T> | null | undefined>): LoDashExplicitWrapper<T[]>;
1175
+ }
1176
+
1177
+ // intersection
1178
+
1179
+ interface LoDashStatic {
1180
+ /**
1181
+ * Creates an array of unique values that are included in all of the provided arrays using SameValueZero for
1182
+ * equality comparisons.
1183
+ *
1184
+ * @param arrays The arrays to inspect.
1185
+ * @return Returns the new array of shared values.
1186
+ */
1187
+ intersection<T>(...arrays: Array<List<T>>): T[];
1188
+ }
1189
+
1190
+ interface LoDashImplicitWrapper<TValue> {
1191
+ /**
1192
+ * @see _.intersection
1193
+ */
1194
+ intersection<T>(
1195
+ this: LoDashImplicitWrapper<List<T>>,
1196
+ ...arrays: Array<List<T>>
1197
+ ): LoDashImplicitWrapper<T[]>;
1198
+ }
1199
+
1200
+ interface LoDashExplicitWrapper<TValue> {
1201
+ /**
1202
+ * @see _.intersection
1203
+ */
1204
+ intersection<T>(
1205
+ this: LoDashExplicitWrapper<List<T>>,
1206
+ ...arrays: Array<List<T>>
1207
+ ): LoDashExplicitWrapper<T[]>;
1208
+ }
1209
+
1210
+ // intersectionBy
1211
+
1212
+ interface LoDashStatic {
1213
+ /**
1214
+ * This method is like `_.intersection` except that it accepts `iteratee`
1215
+ * which is invoked for each element of each `arrays` to generate the criterion
1216
+ * by which uniqueness is computed. The iteratee is invoked with one argument: (value).
1217
+ *
1218
+ * @category Array
1219
+ * @param [arrays] The arrays to inspect.
1220
+ * @param [iteratee=_.identity] The iteratee invoked per element.
1221
+ * @returns Returns the new array of shared values.
1222
+ * @example
1223
+ *
1224
+ * _.intersectionBy([2.1, 1.2], [4.3, 2.4], Math.floor);
1225
+ * // => [2.1]
1226
+ *
1227
+ * // using the `_.property` iteratee shorthand
1228
+ * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
1229
+ * // => [{ 'x': 1 }]
1230
+ */
1231
+ intersectionBy<T1, T2>(
1232
+ array: List<T1> | null,
1233
+ values: List<T2>,
1234
+ iteratee: ValueIteratee<T1 | T2>
1235
+ ): T1[];
1236
+
1237
+ /**
1238
+ * @see _.intersectionBy
1239
+ */
1240
+ intersectionBy<T1, T2, T3>(
1241
+ array: List<T1> | null,
1242
+ values1: List<T2>,
1243
+ values2: List<T3>,
1244
+ iteratee: ValueIteratee<T1 | T2 | T3>
1245
+ ): T1[];
1246
+
1247
+ /**
1248
+ * @see _.intersectionBy
1249
+ */
1250
+ intersectionBy<T1, T2, T3, T4>(
1251
+ array: List<T1> | null | undefined,
1252
+ values1: List<T2>,
1253
+ values2: List<T3>,
1254
+ ...values: Array<List<T4> | ValueIteratee<T1 | T2 | T3 | T4>>
1255
+ ): T1[];
1256
+
1257
+ /**
1258
+ * @see _.intersectionBy
1259
+ */
1260
+ intersectionBy<T>(
1261
+ array?: List<T> | null,
1262
+ ...values: Array<List<T>>
1263
+ ): T[];
1264
+ }
1265
+
1266
+ interface LoDashImplicitWrapper<TValue> {
1267
+ /**
1268
+ * @see _.intersectionBy
1269
+ */
1270
+ intersectionBy<T1, T2>(
1271
+ this: LoDashImplicitWrapper<List<T1> | null | undefined>,
1272
+ values: List<T2>,
1273
+ iteratee: ValueIteratee<T1 | T2>
1274
+ ): LoDashImplicitWrapper<T1[]>;
1275
+
1276
+ /**
1277
+ * @see _.intersectionBy
1278
+ */
1279
+ intersectionBy<T1, T2, T3>(
1280
+ this: LoDashImplicitWrapper<List<T1> | null | undefined>,
1281
+ values1: List<T2>,
1282
+ values2: List<T3>,
1283
+ iteratee: ValueIteratee<T1 | T2 | T3>
1284
+ ): LoDashImplicitWrapper<T1[]>;
1285
+
1286
+ /**
1287
+ * @see _.intersectionBy
1288
+ */
1289
+ intersectionBy<T1, T2, T3, T4>(
1290
+ this: LoDashImplicitWrapper<List<T1> | null | undefined>,
1291
+ values1: List<T2>,
1292
+ values2: List<T3>,
1293
+ ...values: Array<List<T4> | ValueIteratee<T1 | T2 | T3 | T4>>
1294
+ ): LoDashImplicitWrapper<T1[]>;
1295
+
1296
+ /**
1297
+ * @see _.intersectionBy
1298
+ */
1299
+ intersectionBy<T>(
1300
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
1301
+ ...values: Array<List<T>>
1302
+ ): LoDashImplicitWrapper<T[]>;
1303
+ }
1304
+
1305
+ interface LoDashExplicitWrapper<TValue> {
1306
+ /**
1307
+ * @see _.intersectionBy
1308
+ */
1309
+ intersectionBy<T1, T2>(
1310
+ this: LoDashExplicitWrapper<List<T1> | null | undefined>,
1311
+ values: List<T2>,
1312
+ iteratee: ValueIteratee<T1 | T2>
1313
+ ): LoDashExplicitWrapper<T1[]>;
1314
+
1315
+ /**
1316
+ * @see _.intersectionBy
1317
+ */
1318
+ intersectionBy<T1, T2, T3>(
1319
+ this: LoDashExplicitWrapper<List<T1> | null | undefined>,
1320
+ values1: List<T2>,
1321
+ values2: List<T3>,
1322
+ iteratee: ValueIteratee<T1 | T2 | T3>
1323
+ ): LoDashExplicitWrapper<T1[]>;
1324
+
1325
+ /**
1326
+ * @see _.intersectionBy
1327
+ */
1328
+ intersectionBy<T1, T2, T3, T4>(
1329
+ this: LoDashExplicitWrapper<List<T1> | null | undefined>,
1330
+ values1: List<T2>,
1331
+ values2: List<T3>,
1332
+ ...values: Array<List<T4> | ValueIteratee<T1 | T2 | T3 | T4>>
1333
+ ): LoDashExplicitWrapper<T1[]>;
1334
+
1335
+ /**
1336
+ * @see _.intersectionBy
1337
+ */
1338
+ intersectionBy<T>(
1339
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
1340
+ ...values: Array<List<T>>
1341
+ ): LoDashExplicitWrapper<T[]>;
1342
+ }
1343
+
1344
+ // intersectionWith
1345
+
1346
+ interface LoDashStatic {
1347
+ /**
1348
+ * Creates an array of unique `array` values not included in the other
1349
+ * provided arrays using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
1350
+ * for equality comparisons.
1351
+ *
1352
+ * @category Array
1353
+ * @param [values] The arrays to inspect.
1354
+ * @param [comparator] The comparator invoked per element.
1355
+ * @returns Returns the new array of filtered values.
1356
+ * @example
1357
+ *
1358
+ * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
1359
+ * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
1360
+
1361
+ * _.intersectionWith(objects, others, _.isEqual);
1362
+ * // => [{ 'x': 1, 'y': 2 }]
1363
+ */
1364
+ intersectionWith<T1, T2>(
1365
+ array: List<T1> | null | undefined,
1366
+ values: List<T2>,
1367
+ comparator: Comparator2<T1, T2>
1368
+ ): T1[];
1369
+
1370
+ /**
1371
+ * @see _.intersectionWith
1372
+ */
1373
+ intersectionWith<T1, T2, T3>(
1374
+ array: List<T1> | null | undefined,
1375
+ values1: List<T2>,
1376
+ values2: List<T3>,
1377
+ comparator: Comparator2<T1, T2 | T3>
1378
+ ): T1[];
1379
+
1380
+ /**
1381
+ * @see _.intersectionWith
1382
+ */
1383
+ intersectionWith<T1, T2, T3, T4>(
1384
+ array: List<T1> | null | undefined,
1385
+ values1: List<T2>,
1386
+ values2: List<T3>,
1387
+ ...values: Array<List<T4> | Comparator2<T1, T2 | T3 | T4>>
1388
+ ): T1[];
1389
+
1390
+ /**
1391
+ * @see _.intersectionWith
1392
+ */
1393
+ intersectionWith<T>(
1394
+ array?: List<T> | null,
1395
+ ...values: Array<List<T>>
1396
+ ): T[];
1397
+ }
1398
+
1399
+ interface LoDashImplicitWrapper<TValue> {
1400
+ /**
1401
+ * @see _.intersectionWith
1402
+ */
1403
+ intersectionWith<T1, T2>(
1404
+ this: LoDashImplicitWrapper<List<T1> | null | undefined>,
1405
+ values: List<T2>,
1406
+ comparator: Comparator2<T1, T2>
1407
+ ): LoDashImplicitWrapper<T1[]>;
1408
+
1409
+ /**
1410
+ * @see _.intersectionWith
1411
+ */
1412
+ intersectionWith<T1, T2, T3>(
1413
+ this: LoDashImplicitWrapper<List<T1> | null | undefined>,
1414
+ values1: List<T2>,
1415
+ values2: List<T3>,
1416
+ comparator: Comparator2<T1, T2 | T3>
1417
+ ): LoDashImplicitWrapper<T1[]>;
1418
+
1419
+ /**
1420
+ * @see _.intersectionWith
1421
+ */
1422
+ intersectionWith<T1, T2, T3, T4>(
1423
+ this: LoDashImplicitWrapper<List<T1> | null | undefined>,
1424
+ values1: List<T2>,
1425
+ values2: List<T3>,
1426
+ ...values: Array<List<T4> | Comparator2<T1, T2 | T3 | T4>>,
1427
+ ): LoDashImplicitWrapper<T1[]>;
1428
+
1429
+ /**
1430
+ * @see _.intersectionWith
1431
+ */
1432
+ intersectionWith<T>(
1433
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
1434
+ ...values: Array<List<T>>
1435
+ ): LoDashImplicitWrapper<T[]>;
1436
+ }
1437
+
1438
+ interface LoDashExplicitWrapper<TValue> {
1439
+ /**
1440
+ * @see _.intersectionWith
1441
+ */
1442
+ intersectionWith<T1, T2>(
1443
+ this: LoDashExplicitWrapper<List<T1> | null | undefined>,
1444
+ values: List<T2>,
1445
+ comparator: Comparator2<T1, T2>
1446
+ ): LoDashExplicitWrapper<T1[]>;
1447
+
1448
+ /**
1449
+ * @see _.intersectionWith
1450
+ */
1451
+ intersectionWith<T1, T2, T3>(
1452
+ this: LoDashExplicitWrapper<List<T1> | null | undefined>,
1453
+ values1: List<T2>,
1454
+ values2: List<T3>,
1455
+ comparator: Comparator2<T1, T2 | T3>
1456
+ ): LoDashExplicitWrapper<T1[]>;
1457
+
1458
+ /**
1459
+ * @see _.intersectionWith
1460
+ */
1461
+ intersectionWith<T1, T2, T3, T4>(
1462
+ this: LoDashExplicitWrapper<List<T1> | null | undefined>,
1463
+ values1: List<T2>,
1464
+ values2: List<T3>,
1465
+ ...values: Array<List<T4> | Comparator2<T1, T2 | T3 | T4>>,
1466
+ ): LoDashExplicitWrapper<T1[]>;
1467
+
1468
+ /**
1469
+ * @see _.intersectionWith
1470
+ */
1471
+ intersectionWith<T>(
1472
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
1473
+ ...values: Array<List<T>>
1474
+ ): LoDashExplicitWrapper<T[]>;
1475
+ }
1476
+
1477
+ // join
1478
+
1479
+ interface LoDashStatic {
1480
+ /**
1481
+ * Converts all elements in `array` into a string separated by `separator`.
1482
+ *
1483
+ * @param array The array to convert.
1484
+ * @param separator The element separator.
1485
+ * @returns Returns the joined string.
1486
+ */
1487
+ join(
1488
+ array: List<any> | null | undefined,
1489
+ separator?: string
1490
+ ): string;
1491
+ }
1492
+
1493
+ interface LoDashImplicitWrapper<TValue> {
1494
+ /**
1495
+ * @see _.join
1496
+ */
1497
+ join(separator?: string): string;
1498
+ }
1499
+
1500
+ interface LoDashExplicitWrapper<TValue> {
1501
+ /**
1502
+ * @see _.join
1503
+ */
1504
+ join(separator?: string): LoDashExplicitWrapper<string>;
1505
+ }
1506
+
1507
+ // last
1508
+
1509
+ interface LoDashStatic {
1510
+ /**
1511
+ * Gets the last element of array.
1512
+ *
1513
+ * @param array The array to query.
1514
+ * @return Returns the last element of array.
1515
+ */
1516
+ last<T>(array: List<T> | null | undefined): T | undefined;
1517
+ }
1518
+
1519
+ interface LoDashImplicitWrapper<TValue> {
1520
+ /**
1521
+ * @see _.last
1522
+ */
1523
+ last<T>(this: LoDashImplicitWrapper<List<T> | null | undefined>): T | undefined;
1524
+ }
1525
+
1526
+ interface LoDashExplicitWrapper<TValue> {
1527
+ /**
1528
+ * @see _.last
1529
+ */
1530
+ last<T>(this: LoDashExplicitWrapper<List<T> | null | undefined>): LoDashExplicitWrapper<T | undefined>;
1531
+ }
1532
+
1533
+ // lastIndexOf
1534
+
1535
+ interface LoDashStatic {
1536
+ /**
1537
+ * This method is like _.indexOf except that it iterates over elements of array from right to left.
1538
+ *
1539
+ * @param array The array to search.
1540
+ * @param value The value to search for.
1541
+ * @param fromIndex The index to search from or true to perform a binary search on a sorted array.
1542
+ * @return Returns the index of the matched value, else -1.
1543
+ */
1544
+ lastIndexOf<T>(
1545
+ array: List<T> | null | undefined,
1546
+ value: T,
1547
+ fromIndex?: true|number
1548
+ ): number;
1549
+ }
1550
+
1551
+ interface LoDashImplicitWrapper<TValue> {
1552
+ /**
1553
+ * @see _.indexOf
1554
+ */
1555
+ lastIndexOf<T>(
1556
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
1557
+ value: T,
1558
+ fromIndex?: true|number
1559
+ ): number;
1560
+ }
1561
+
1562
+ interface LoDashExplicitWrapper<TValue> {
1563
+ /**
1564
+ * @see _.indexOf
1565
+ */
1566
+ lastIndexOf<T>(
1567
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
1568
+ value: T,
1569
+ fromIndex?: true|number
1570
+ ): LoDashExplicitWrapper<number>;
1571
+ }
1572
+
1573
+ // nth
1574
+
1575
+ interface LoDashStatic {
1576
+ /**
1577
+ * Gets the element at index `n` of `array`. If `n` is negative, the nth element from the end is returned.
1578
+ *
1579
+ * @param array array The array to query.
1580
+ * @param value The index of the element to return.
1581
+ * @return Returns the nth element of `array`.
1582
+ */
1583
+ nth<T>(
1584
+ array: List<T> | null | undefined,
1585
+ n?: number
1586
+ ): T | undefined;
1587
+ }
1588
+
1589
+ interface LoDashImplicitWrapper<TValue> {
1590
+ /**
1591
+ * @see _.nth
1592
+ */
1593
+ nth<T>(
1594
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
1595
+ n?: number
1596
+ ): T | undefined;
1597
+ }
1598
+
1599
+ interface LoDashExplicitWrapper<TValue> {
1600
+ /**
1601
+ * @see _.nth
1602
+ */
1603
+ nth<T>(
1604
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
1605
+ n?: number
1606
+ ): LoDashExplicitWrapper<T | undefined>;
1607
+ }
1608
+
1609
+ // pull
1610
+
1611
+ interface LoDashStatic {
1612
+ /**
1613
+ * Removes all provided values from array using SameValueZero for equality comparisons.
1614
+ *
1615
+ * Note: Unlike _.without, this method mutates array.
1616
+ *
1617
+ * @param array The array to modify.
1618
+ * @param values The values to remove.
1619
+ * @return Returns array.
1620
+ */
1621
+ pull<T>(
1622
+ array: T[],
1623
+ ...values: T[]
1624
+ ): T[];
1625
+
1626
+ /**
1627
+ * @see _.pull
1628
+ */
1629
+ pull<T>(
1630
+ array: List<T>,
1631
+ ...values: T[]
1632
+ ): List<T>;
1633
+ }
1634
+
1635
+ interface LoDashImplicitWrapper<TValue> {
1636
+ /**
1637
+ * @see _.pull
1638
+ */
1639
+ pull<T>(
1640
+ this: LoDashImplicitWrapper<List<T>>,
1641
+ ...values: T[]
1642
+ ): this;
1643
+ }
1644
+
1645
+ interface LoDashExplicitWrapper<TValue> {
1646
+ /**
1647
+ * @see _.pull
1648
+ */
1649
+ pull<T>(
1650
+ this: LoDashExplicitWrapper<List<T>>,
1651
+ ...values: T[]
1652
+ ): this;
1653
+ }
1654
+
1655
+ // pullAll
1656
+
1657
+ interface LoDashStatic {
1658
+ /**
1659
+ * This method is like `_.pull` except that it accepts an array of values to remove.
1660
+ *
1661
+ * **Note:** Unlike `_.difference`, this method mutates `array`.
1662
+ *
1663
+ * @category Array
1664
+ * @param array The array to modify.
1665
+ * @param values The values to remove.
1666
+ * @returns Returns `array`.
1667
+ * @example
1668
+ *
1669
+ * var array = [1, 2, 3, 1, 2, 3];
1670
+ *
1671
+ * _.pull(array, [2, 3]);
1672
+ * console.log(array);
1673
+ * // => [1, 1]
1674
+ */
1675
+ pullAll<T>(
1676
+ array: T[],
1677
+ values?: List<T>,
1678
+ ): T[];
1679
+
1680
+ /**
1681
+ * @see _.pullAll
1682
+ */
1683
+ pullAll<T>(
1684
+ array: List<T>,
1685
+ values?: List<T>,
1686
+ ): List<T>;
1687
+ }
1688
+
1689
+ interface LoDashImplicitWrapper<TValue> {
1690
+ /**
1691
+ * @see _.pullAll
1692
+ */
1693
+ pullAll<T>(
1694
+ this: LoDashImplicitWrapper<List<T>>,
1695
+ values?: List<T>
1696
+ ): this;
1697
+ }
1698
+
1699
+ interface LoDashExplicitWrapper<TValue> {
1700
+ /**
1701
+ * @see _.pullAll
1702
+ */
1703
+ pullAll<T>(
1704
+ this: LoDashExplicitWrapper<List<T>>,
1705
+ values?: List<T>
1706
+ ): this;
1707
+ }
1708
+
1709
+ // pullAllBy
1710
+
1711
+ interface LoDashStatic {
1712
+ /**
1713
+ * This method is like `_.pullAll` except that it accepts `iteratee` which is
1714
+ * invoked for each element of `array` and `values` to to generate the criterion
1715
+ * by which uniqueness is computed. The iteratee is invoked with one argument: (value).
1716
+ *
1717
+ * **Note:** Unlike `_.differenceBy`, this method mutates `array`.
1718
+ *
1719
+ * @category Array
1720
+ * @param array The array to modify.
1721
+ * @param values The values to remove.
1722
+ * @param [iteratee=_.identity] The iteratee invoked per element.
1723
+ * @returns Returns `array`.
1724
+ * @example
1725
+ *
1726
+ * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
1727
+ *
1728
+ * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');
1729
+ * console.log(array);
1730
+ * // => [{ 'x': 2 }]
1731
+ */
1732
+ pullAllBy<T>(
1733
+ array: T[],
1734
+ values?: List<T>,
1735
+ iteratee?: ValueIteratee<T>
1736
+ ): T[];
1737
+
1738
+ /**
1739
+ * @see _.pullAllBy
1740
+ */
1741
+ pullAllBy<T>(
1742
+ array: List<T>,
1743
+ values?: List<T>,
1744
+ iteratee?: ValueIteratee<T>
1745
+ ): List<T>;
1746
+
1747
+ /**
1748
+ * @see _.pullAllBy
1749
+ */
1750
+ pullAllBy<T1, T2>(
1751
+ array: T1[],
1752
+ values: List<T2>,
1753
+ iteratee: ValueIteratee<T1 | T2>
1754
+ ): T1[];
1755
+
1756
+ /**
1757
+ * @see _.pullAllBy
1758
+ */
1759
+ pullAllBy<T1, T2>(
1760
+ array: List<T1>,
1761
+ values: List<T2>,
1762
+ iteratee: ValueIteratee<T1 | T2>
1763
+ ): List<T1>;
1764
+ }
1765
+
1766
+ interface LoDashWrapper<TValue> {
1767
+ /**
1768
+ * @see _.pullAllBy
1769
+ */
1770
+ pullAllBy<T>(
1771
+ this: LoDashWrapper<List<T>>,
1772
+ values?: List<T>,
1773
+ iteratee?: ValueIteratee<T>
1774
+ ): this;
1775
+
1776
+ /**
1777
+ * @see _.pullAllBy
1778
+ */
1779
+ pullAllBy<T1, T2>(
1780
+ this: LoDashWrapper<List<T1>>,
1781
+ values: List<T2>,
1782
+ iteratee: ValueIteratee<T1 | T2>
1783
+ ): this;
1784
+ }
1785
+
1786
+ // pullAllWith
1787
+
1788
+ interface LoDashStatic {
1789
+ /**
1790
+ * This method is like `_.pullAll` except that it accepts `comparator` which is
1791
+ * invoked to compare elements of array to values. The comparator is invoked with
1792
+ * two arguments: (arrVal, othVal).
1793
+ *
1794
+ * **Note:** Unlike `_.differenceWith`, this method mutates `array`.
1795
+ *
1796
+ * @category Array
1797
+ * @param array The array to modify.
1798
+ * @param values The values to remove.
1799
+ * @param [iteratee=_.identity] The iteratee invoked per element.
1800
+ * @returns Returns `array`.
1801
+ * @example
1802
+ *
1803
+ * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];
1804
+ *
1805
+ * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);
1806
+ * console.log(array);
1807
+ * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]
1808
+ */
1809
+ pullAllWith<T>(
1810
+ array: T[],
1811
+ values?: List<T>,
1812
+ comparator?: Comparator<T>
1813
+ ): T[];
1814
+
1815
+ /**
1816
+ * @see _.pullAllWith
1817
+ */
1818
+ pullAllWith<T>(
1819
+ array: List<T>,
1820
+ values?: List<T>,
1821
+ comparator?: Comparator<T>
1822
+ ): List<T>;
1823
+
1824
+ /**
1825
+ * @see _.pullAllWith
1826
+ */
1827
+ pullAllWith<T1, T2>(
1828
+ array: T1[],
1829
+ values: List<T2>,
1830
+ comparator: Comparator2<T1, T2>
1831
+ ): T1[];
1832
+
1833
+ /**
1834
+ * @see _.pullAllWith
1835
+ */
1836
+ pullAllWith<T1, T2>(
1837
+ array: List<T1>,
1838
+ values: List<T2>,
1839
+ comparator: Comparator2<T1, T2>
1840
+ ): List<T1>;
1841
+ }
1842
+
1843
+ interface LoDashWrapper<TValue> {
1844
+ /**
1845
+ * @see _.pullAllWith
1846
+ */
1847
+ pullAllWith<T>(
1848
+ this: LoDashWrapper<List<T>>,
1849
+ values?: List<T>,
1850
+ comparator?: Comparator<T>
1851
+ ): this;
1852
+
1853
+ /**
1854
+ * @see _.pullAllWith
1855
+ */
1856
+ pullAllWith<T1, T2>(
1857
+ this: LoDashWrapper<List<T1>>,
1858
+ values: List<T2>,
1859
+ comparator: Comparator2<T1, T2>
1860
+ ): this;
1861
+ }
1862
+
1863
+ // pullAt
1864
+
1865
+ interface LoDashStatic {
1866
+ /**
1867
+ * Removes elements from array corresponding to the given indexes and returns an array of the removed elements.
1868
+ * Indexes may be specified as an array of indexes or as individual arguments.
1869
+ *
1870
+ * Note: Unlike _.at, this method mutates array.
1871
+ *
1872
+ * @param array The array to modify.
1873
+ * @param indexes The indexes of elements to remove, specified as individual indexes or arrays of indexes.
1874
+ * @return Returns the new array of removed elements.
1875
+ */
1876
+ pullAt<T>(
1877
+ array: T[],
1878
+ ...indexes: Array<Many<number>>
1879
+ ): T[];
1880
+
1881
+ /**
1882
+ * @see _.pullAt
1883
+ */
1884
+ pullAt<T>(
1885
+ array: List<T>,
1886
+ ...indexes: Array<Many<number>>
1887
+ ): List<T>;
1888
+ }
1889
+
1890
+ interface LoDashWrapper<TValue> {
1891
+ /**
1892
+ * @see _.pullAt
1893
+ */
1894
+ pullAt(...indexes: Array<Many<number>>): this;
1895
+ }
1896
+
1897
+ // remove
1898
+
1899
+ interface LoDashStatic {
1900
+ /**
1901
+ * Removes all elements from array that predicate returns truthy for and returns an array of the removed
1902
+ * elements. The predicate is bound to thisArg and invoked with three arguments: (value, index, array).
1903
+ *
1904
+ * If a property name is provided for predicate the created _.property style callback returns the property
1905
+ * value of the given element.
1906
+ *
1907
+ * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
1908
+ * elements that have a matching property value, else false.
1909
+ *
1910
+ * If an object is provided for predicate the created _.matches style callback returns true for elements that
1911
+ * have the properties of the given object, else false.
1912
+ *
1913
+ * Note: Unlike _.filter, this method mutates array.
1914
+ *
1915
+ * @param array The array to modify.
1916
+ * @param predicate The function invoked per iteration.
1917
+ * @param thisArg The this binding of predicate.
1918
+ * @return Returns the new array of removed elements.
1919
+ */
1920
+ remove<T>(
1921
+ array: List<T>,
1922
+ predicate?: ListIteratee<T>
1923
+ ): T[];
1924
+ }
1925
+
1926
+ interface LoDashImplicitWrapper<TValue> {
1927
+ /**
1928
+ * @see _.remove
1929
+ */
1930
+ remove<T>(
1931
+ this: LoDashImplicitWrapper<List<T>>,
1932
+ predicate?: ListIteratee<T>
1933
+ ): LoDashImplicitWrapper<T[]>;
1934
+ }
1935
+
1936
+ interface LoDashExplicitWrapper<TValue> {
1937
+ /**
1938
+ * @see _.remove
1939
+ */
1940
+ remove<T>(
1941
+ this: LoDashExplicitWrapper<List<T>>,
1942
+ predicate?: ListIteratee<T>
1943
+ ): LoDashExplicitWrapper<T[]>;
1944
+ }
1945
+
1946
+ // reverse
1947
+
1948
+ interface LoDashStatic {
1949
+ /**
1950
+ * Reverses `array` so that the first element becomes the last, the second
1951
+ * element becomes the second to last, and so on.
1952
+ *
1953
+ * **Note:** This method mutates `array` and is based on
1954
+ * [`Array#reverse`](https://mdn.io/Array/reverse).
1955
+ *
1956
+ * @category Array
1957
+ * @returns Returns `array`.
1958
+ * @example
1959
+ *
1960
+ * var array = [1, 2, 3];
1961
+ *
1962
+ * _.reverse(array);
1963
+ * // => [3, 2, 1]
1964
+ *
1965
+ * console.log(array);
1966
+ * // => [3, 2, 1]
1967
+ */
1968
+ reverse<TList extends List<any>>(
1969
+ array: TList,
1970
+ ): TList;
1971
+ }
1972
+
1973
+ // slice
1974
+
1975
+ interface LoDashStatic {
1976
+ /**
1977
+ * Creates a slice of array from start up to, but not including, end.
1978
+ *
1979
+ * @param array The array to slice.
1980
+ * @param start The start position.
1981
+ * @param end The end position.
1982
+ * @return Returns the slice of array.
1983
+ */
1984
+ slice<T>(
1985
+ array: List<T> | null | undefined,
1986
+ start?: number,
1987
+ end?: number
1988
+ ): T[];
1989
+ }
1990
+
1991
+ interface LoDashImplicitWrapper<TValue> {
1992
+ /**
1993
+ * @see _.slice
1994
+ */
1995
+ slice<T>(
1996
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
1997
+ start?: number,
1998
+ end?: number
1999
+ ): LoDashImplicitWrapper<T[]>;
2000
+ }
2001
+
2002
+ interface LoDashExplicitWrapper<TValue> {
2003
+ /**
2004
+ * @see _.slice
2005
+ */
2006
+ slice<T>(
2007
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2008
+ start?: number,
2009
+ end?: number
2010
+ ): LoDashExplicitWrapper<T[]>;
2011
+ }
2012
+
2013
+ // sortedIndex
2014
+
2015
+ interface LoDashStatic {
2016
+ /**
2017
+ * Uses a binary search to determine the lowest index at which `value` should
2018
+ * be inserted into `array` in order to maintain its sort order.
2019
+ *
2020
+ * @category Array
2021
+ * @param array The sorted array to inspect.
2022
+ * @param value The value to evaluate.
2023
+ * @returns Returns the index at which `value` should be inserted into `array`.
2024
+ * @example
2025
+ *
2026
+ * _.sortedIndex([30, 50], 40);
2027
+ * // => 1
2028
+ *
2029
+ * _.sortedIndex([4, 5], 4);
2030
+ * // => 0
2031
+ */
2032
+ sortedIndex<T>(
2033
+ array: List<T> | null | undefined,
2034
+ value: T
2035
+ ): number;
2036
+ }
2037
+
2038
+ interface LoDashImplicitWrapper<TValue> {
2039
+ /**
2040
+ * @see _.sortedIndex
2041
+ */
2042
+ sortedIndex<T>(
2043
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2044
+ value: T
2045
+ ): number;
2046
+ }
2047
+
2048
+ interface LoDashExplicitWrapper<TValue> {
2049
+ /**
2050
+ * @see _.sortedIndex
2051
+ */
2052
+ sortedIndex<T>(
2053
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2054
+ value: T
2055
+ ): LoDashExplicitWrapper<number>;
2056
+ }
2057
+
2058
+ // sortedIndexBy
2059
+
2060
+ interface LoDashStatic {
2061
+ /**
2062
+ * Uses a binary search to determine the lowest index at which `value` should
2063
+ * be inserted into `array` in order to maintain its sort order.
2064
+ *
2065
+ * @category Array
2066
+ * @param array The sorted array to inspect.
2067
+ * @param value The value to evaluate.
2068
+ * @returns Returns the index at which `value` should be inserted into `array`.
2069
+ * @example
2070
+ *
2071
+ * _.sortedIndex([30, 50], 40);
2072
+ * // => 1
2073
+ *
2074
+ * _.sortedIndex([4, 5], 4);
2075
+ * // => 0
2076
+ */
2077
+ sortedIndex<T>(
2078
+ array: List<T> | null | undefined,
2079
+ value: T
2080
+ ): number;
2081
+ }
2082
+
2083
+ interface LoDashImplicitWrapper<TValue> {
2084
+ /**
2085
+ * @see _.sortedIndex
2086
+ */
2087
+ sortedIndex<T>(
2088
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2089
+ value: T
2090
+ ): number;
2091
+ }
2092
+
2093
+ interface LoDashExplicitWrapper<TValue> {
2094
+ /**
2095
+ * @see _.sortedIndex
2096
+ */
2097
+ sortedIndex<T>(
2098
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2099
+ value: T
2100
+ ): LoDashExplicitWrapper<number>;
2101
+ }
2102
+
2103
+ // _.sortedIndexBy
2104
+ interface LoDashStatic {
2105
+ /**
2106
+ * This method is like `_.sortedIndex` except that it accepts `iteratee`
2107
+ * which is invoked for `value` and each element of `array` to compute their
2108
+ * sort ranking. The iteratee is invoked with one argument: (value).
2109
+ *
2110
+ * @category Array
2111
+ * @param array The sorted array to inspect.
2112
+ * @param value The value to evaluate.
2113
+ * @param [iteratee=_.identity] The iteratee invoked per element.
2114
+ * @returns Returns the index at which `value` should be inserted into `array`.
2115
+ * @example
2116
+ *
2117
+ * var dict = { 'thirty': 30, 'forty': 40, 'fifty': 50 };
2118
+ *
2119
+ * _.sortedIndexBy(['thirty', 'fifty'], 'forty', _.propertyOf(dict));
2120
+ * // => 1
2121
+ *
2122
+ * // using the `_.property` iteratee shorthand
2123
+ * _.sortedIndexBy([{ 'x': 4 }, { 'x': 5 }], { 'x': 4 }, 'x');
2124
+ * // => 0
2125
+ */
2126
+ sortedIndexBy<T>(
2127
+ array: List<T> | null | undefined,
2128
+ value: T,
2129
+ iteratee?: ValueIteratee<T>
2130
+ ): number;
2131
+ }
2132
+
2133
+ interface LoDashImplicitWrapper<TValue> {
2134
+ /**
2135
+ * @see _.sortedIndexBy
2136
+ */
2137
+ sortedIndexBy<T>(
2138
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2139
+ value: T,
2140
+ iteratee?: ValueIteratee<T>
2141
+ ): number;
2142
+ }
2143
+
2144
+ interface LoDashExplicitWrapper<TValue> {
2145
+ /**
2146
+ * @see _.sortedIndexBy
2147
+ */
2148
+ sortedIndexBy<T>(
2149
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2150
+ value: T,
2151
+ iteratee?: ValueIteratee<T>
2152
+ ): LoDashExplicitWrapper<number>;
2153
+ }
2154
+
2155
+ // sortedIndexOf
2156
+
2157
+ interface LoDashStatic {
2158
+ /**
2159
+ * This method is like `_.indexOf` except that it performs a binary
2160
+ * search on a sorted `array`.
2161
+ *
2162
+ * @category Array
2163
+ * @param array The array to search.
2164
+ * @param value The value to search for.
2165
+ * @returns Returns the index of the matched value, else `-1`.
2166
+ * @example
2167
+ *
2168
+ * _.sortedIndexOf([1, 1, 2, 2], 2);
2169
+ * // => 2
2170
+ */
2171
+ sortedIndexOf<T>(
2172
+ array: List<T> | null | undefined,
2173
+ value: T
2174
+ ): number;
2175
+ }
2176
+
2177
+ interface LoDashImplicitWrapper<TValue> {
2178
+ /**
2179
+ * @see _.sortedIndexOf
2180
+ */
2181
+ sortedIndexOf<T>(
2182
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2183
+ value: T
2184
+ ): number;
2185
+ }
2186
+
2187
+ interface LoDashExplicitWrapper<TValue> {
2188
+ /**
2189
+ * @see _.sortedIndexOf
2190
+ */
2191
+ sortedIndexOf<T>(
2192
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2193
+ value: T
2194
+ ): LoDashExplicitWrapper<number>;
2195
+ }
2196
+
2197
+ // sortedLastIndex
2198
+
2199
+ interface LoDashStatic {
2200
+ /**
2201
+ * This method is like `_.sortedIndex` except that it returns the highest
2202
+ * index at which `value` should be inserted into `array` in order to
2203
+ * maintain its sort order.
2204
+ *
2205
+ * @category Array
2206
+ * @param array The sorted array to inspect.
2207
+ * @param value The value to evaluate.
2208
+ * @returns Returns the index at which `value` should be inserted into `array`.
2209
+ * @example
2210
+ *
2211
+ * _.sortedLastIndex([4, 5], 4);
2212
+ * // => 1
2213
+ */
2214
+ sortedLastIndex<T>(
2215
+ array: List<T> | null | undefined,
2216
+ value: T
2217
+ ): number;
2218
+ }
2219
+
2220
+ interface LoDashImplicitWrapper<TValue> {
2221
+ /**
2222
+ * @see _.sortedLastIndex
2223
+ */
2224
+ sortedLastIndex<T>(
2225
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2226
+ value: T
2227
+ ): number;
2228
+ }
2229
+
2230
+ interface LoDashExplicitWrapper<TValue> {
2231
+ /**
2232
+ * @see _.sortedLastIndex
2233
+ */
2234
+ sortedLastIndex<T>(
2235
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2236
+ value: T
2237
+ ): LoDashExplicitWrapper<number>;
2238
+ }
2239
+
2240
+ // sortedLastIndexBy
2241
+
2242
+ interface LoDashStatic {
2243
+ /**
2244
+ * This method is like `_.sortedLastIndex` except that it accepts `iteratee`
2245
+ * which is invoked for `value` and each element of `array` to compute their
2246
+ * sort ranking. The iteratee is invoked with one argument: (value).
2247
+ *
2248
+ * @category Array
2249
+ * @param array The sorted array to inspect.
2250
+ * @param value The value to evaluate.
2251
+ * @param [iteratee=_.identity] The iteratee invoked per element.
2252
+ * @returns Returns the index at which `value` should be inserted into `array`.
2253
+ * @example
2254
+ *
2255
+ * // using the `_.property` iteratee shorthand
2256
+ * _.sortedLastIndexBy([{ 'x': 4 }, { 'x': 5 }], { 'x': 4 }, 'x');
2257
+ * // => 1
2258
+ */
2259
+ sortedLastIndexBy<T>(
2260
+ array: List<T> | null | undefined,
2261
+ value: T,
2262
+ iteratee: ValueIteratee<T>
2263
+ ): number;
2264
+ }
2265
+
2266
+ interface LoDashImplicitWrapper<TValue> {
2267
+ /**
2268
+ * @see _.sortedLastIndexBy
2269
+ */
2270
+ sortedLastIndexBy<T>(
2271
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2272
+ value: T,
2273
+ iteratee: ValueIteratee<T>
2274
+ ): number;
2275
+ }
2276
+
2277
+ interface LoDashExplicitWrapper<TValue> {
2278
+ /**
2279
+ * @see _.sortedLastIndexBy
2280
+ */
2281
+ sortedLastIndexBy<T>(
2282
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2283
+ value: T,
2284
+ iteratee: ValueIteratee<T>
2285
+ ): LoDashExplicitWrapper<number>;
2286
+ }
2287
+
2288
+ // sortedLastIndexOf
2289
+
2290
+ interface LoDashStatic {
2291
+ /**
2292
+ * This method is like `_.lastIndexOf` except that it performs a binary
2293
+ * search on a sorted `array`.
2294
+ *
2295
+ * @category Array
2296
+ * @param array The array to search.
2297
+ * @param value The value to search for.
2298
+ * @returns Returns the index of the matched value, else `-1`.
2299
+ * @example
2300
+ *
2301
+ * _.sortedLastIndexOf([1, 1, 2, 2], 2);
2302
+ * // => 3
2303
+ */
2304
+ sortedLastIndexOf<T>(
2305
+ array: List<T> | null | undefined,
2306
+ value: T
2307
+ ): number;
2308
+ }
2309
+
2310
+ interface LoDashImplicitWrapper<TValue> {
2311
+ /**
2312
+ * @see _.sortedLastIndexOf
2313
+ */
2314
+ sortedLastIndexOf<T>(
2315
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2316
+ value: T
2317
+ ): number;
2318
+ }
2319
+
2320
+ interface LoDashExplicitWrapper<TValue> {
2321
+ /**
2322
+ * @see _.sortedLastIndexOf
2323
+ */
2324
+ sortedLastIndexOf<T>(
2325
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2326
+ value: T
2327
+ ): LoDashExplicitWrapper<number>;
2328
+ }
2329
+
2330
+ // sortedUniq
2331
+
2332
+ interface LoDashStatic {
2333
+ /**
2334
+ * This method is like `_.uniq` except that it's designed and optimized
2335
+ * for sorted arrays.
2336
+ *
2337
+ * @category Array
2338
+ * @param array The array to inspect.
2339
+ * @returns Returns the new duplicate free array.
2340
+ * @example
2341
+ *
2342
+ * _.sortedUniq([1, 1, 2]);
2343
+ * // => [1, 2]
2344
+ */
2345
+ sortedUniq<T>(
2346
+ array: List<T> | null | undefined
2347
+ ): T[];
2348
+ }
2349
+
2350
+ interface LoDashImplicitWrapper<TValue> {
2351
+ /**
2352
+ * @see _.sortedUniq
2353
+ */
2354
+ sortedUniq<T>(this: LoDashImplicitWrapper<List<T> | null | undefined>): LoDashImplicitWrapper<T[]>;
2355
+ }
2356
+
2357
+ interface LoDashExplicitWrapper<TValue> {
2358
+ /**
2359
+ * @see _.sortedUniq
2360
+ */
2361
+ sortedUniq<T>(this: LoDashExplicitWrapper<List<T> | null | undefined>): LoDashExplicitWrapper<T[]>;
2362
+ }
2363
+
2364
+ // sortedUniqBy
2365
+
2366
+ interface LoDashStatic {
2367
+ /**
2368
+ * This method is like `_.uniqBy` except that it's designed and optimized
2369
+ * for sorted arrays.
2370
+ *
2371
+ * @category Array
2372
+ * @param array The array to inspect.
2373
+ * @param [iteratee] The iteratee invoked per element.
2374
+ * @returns Returns the new duplicate free array.
2375
+ * @example
2376
+ *
2377
+ * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);
2378
+ * // => [1.1, 2.2]
2379
+ */
2380
+ sortedUniqBy(
2381
+ array: string | null | undefined,
2382
+ iteratee: StringIterator<NotVoid>
2383
+ ): string[];
2384
+
2385
+ /**
2386
+ * @see _.sortedUniqBy
2387
+ */
2388
+ sortedUniqBy<T>(
2389
+ array: List<T> | null | undefined,
2390
+ iteratee: ListIteratee<T>
2391
+ ): T[];
2392
+ }
2393
+
2394
+ interface LoDashImplicitWrapper<TValue> {
2395
+ /**
2396
+ * @see _.sortedUniqBy
2397
+ */
2398
+ sortedUniqBy(
2399
+ this: LoDashImplicitWrapper<string | null | undefined>,
2400
+ iteratee: StringIterator<NotVoid>
2401
+ ): LoDashImplicitWrapper<string[]>;
2402
+
2403
+ /**
2404
+ * @see _.sortedUniqBy
2405
+ */
2406
+ sortedUniqBy<T>(
2407
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2408
+ iteratee: ListIteratee<T>
2409
+ ): LoDashImplicitWrapper<T[]>;
2410
+ }
2411
+
2412
+ interface LoDashExplicitWrapper<TValue> {
2413
+ /**
2414
+ * @see _.sortedUniqBy
2415
+ */
2416
+ sortedUniqBy(
2417
+ this: LoDashExplicitWrapper<string | null | undefined>,
2418
+ iteratee: StringIterator<NotVoid>
2419
+ ): LoDashExplicitWrapper<string[]>;
2420
+
2421
+ /**
2422
+ * @see _.sortedUniqBy
2423
+ */
2424
+ sortedUniqBy<T>(
2425
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2426
+ iteratee: ListIteratee<T>
2427
+ ): LoDashExplicitWrapper<T[]>;
2428
+ }
2429
+
2430
+ // tail
2431
+
2432
+ interface LoDashStatic {
2433
+ /**
2434
+ * Gets all but the first element of array.
2435
+ *
2436
+ * @param array The array to query.
2437
+ * @return Returns the slice of array.
2438
+ */
2439
+ tail<T>(array: List<T> | null | undefined): T[];
2440
+ }
2441
+
2442
+ interface LoDashImplicitWrapper<TValue> {
2443
+ /**
2444
+ * @see _.tail
2445
+ */
2446
+ tail<T>(this: LoDashImplicitWrapper<List<T> | null | undefined>): LoDashImplicitWrapper<T[]>;
2447
+ }
2448
+
2449
+ interface LoDashExplicitWrapper<TValue> {
2450
+ /**
2451
+ * @see _.tail
2452
+ */
2453
+ tail<T>(this: LoDashExplicitWrapper<List<T> | null | undefined>): LoDashExplicitWrapper<T[]>;
2454
+ }
2455
+
2456
+ // take
2457
+
2458
+ interface LoDashStatic {
2459
+ /**
2460
+ * Creates a slice of array with n elements taken from the beginning.
2461
+ *
2462
+ * @param array The array to query.
2463
+ * @param n The number of elements to take.
2464
+ * @return Returns the slice of array.
2465
+ */
2466
+ take<T>(
2467
+ array: List<T> | null | undefined,
2468
+ n?: number
2469
+ ): T[];
2470
+ }
2471
+
2472
+ interface LoDashImplicitWrapper<TValue> {
2473
+ /**
2474
+ * @see _.take
2475
+ */
2476
+ take<T>(
2477
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2478
+ n?: number
2479
+ ): LoDashImplicitWrapper<T[]>;
2480
+ }
2481
+
2482
+ interface LoDashExplicitWrapper<TValue> {
2483
+ /**
2484
+ * @see _.take
2485
+ */
2486
+ take<T>(
2487
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2488
+ n?: number
2489
+ ): LoDashExplicitWrapper<T[]>;
2490
+ }
2491
+
2492
+ // takeRight
2493
+
2494
+ interface LoDashStatic {
2495
+ /**
2496
+ * Creates a slice of array with n elements taken from the end.
2497
+ *
2498
+ * @param array The array to query.
2499
+ * @param n The number of elements to take.
2500
+ * @return Returns the slice of array.
2501
+ */
2502
+ takeRight<T>(
2503
+ array: List<T> | null | undefined,
2504
+ n?: number
2505
+ ): T[];
2506
+ }
2507
+
2508
+ interface LoDashImplicitWrapper<TValue> {
2509
+ /**
2510
+ * @see _.takeRight
2511
+ */
2512
+ takeRight<T>(
2513
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2514
+ n?: number
2515
+ ): LoDashImplicitWrapper<T[]>;
2516
+ }
2517
+
2518
+ interface LoDashExplicitWrapper<TValue> {
2519
+ /**
2520
+ * @see _.takeRight
2521
+ */
2522
+ takeRight<T>(
2523
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2524
+ n?: number
2525
+ ): LoDashExplicitWrapper<T[]>;
2526
+ }
2527
+
2528
+ // takeRightWhile
2529
+
2530
+ interface LoDashStatic {
2531
+ /**
2532
+ * Creates a slice of array with elements taken from the end. Elements are taken until predicate returns
2533
+ * falsey. The predicate is bound to thisArg and invoked with three arguments: (value, index, array).
2534
+ *
2535
+ * If a property name is provided for predicate the created _.property style callback returns the property
2536
+ * value of the given element.
2537
+ *
2538
+ * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
2539
+ * elements that have a matching property value, else false.
2540
+ *
2541
+ * If an object is provided for predicate the created _.matches style callback returns true for elements that
2542
+ * have the properties of the given object, else false.
2543
+ *
2544
+ * @param array The array to query.
2545
+ * @param predicate The function invoked per iteration.
2546
+ * @param thisArg The this binding of predicate.
2547
+ * @return Returns the slice of array.
2548
+ */
2549
+ takeRightWhile<T>(
2550
+ array: List<T> | null | undefined,
2551
+ predicate?: ListIteratee<T>
2552
+ ): T[];
2553
+ }
2554
+
2555
+ interface LoDashImplicitWrapper<TValue> {
2556
+ /**
2557
+ * @see _.takeRightWhile
2558
+ */
2559
+ takeRightWhile<T>(
2560
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2561
+ predicate?: ListIteratee<T>
2562
+ ): LoDashImplicitWrapper<T[]>;
2563
+ }
2564
+
2565
+ interface LoDashExplicitWrapper<TValue> {
2566
+ /**
2567
+ * @see _.takeRightWhile
2568
+ */
2569
+ takeRightWhile<T>(
2570
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2571
+ predicate?: ListIteratee<T>
2572
+ ): LoDashExplicitWrapper<T[]>;
2573
+ }
2574
+
2575
+ // takeWhile
2576
+
2577
+ interface LoDashStatic {
2578
+ /**
2579
+ * Creates a slice of array with elements taken from the beginning. Elements are taken until predicate returns
2580
+ * falsey. The predicate is bound to thisArg and invoked with three arguments: (value, index, array).
2581
+ *
2582
+ * If a property name is provided for predicate the created _.property style callback returns the property
2583
+ * value of the given element.
2584
+ *
2585
+ * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for
2586
+ * elements that have a matching property value, else false.
2587
+ *
2588
+ * If an object is provided for predicate the created _.matches style callback returns true for elements that
2589
+ * have the properties of the given object, else false.
2590
+ *
2591
+ * @param array The array to query.
2592
+ * @param predicate The function invoked per iteration.
2593
+ * @param thisArg The this binding of predicate.
2594
+ * @return Returns the slice of array.
2595
+ */
2596
+ takeWhile<T>(
2597
+ array: List<T> | null | undefined,
2598
+ predicate?: ListIteratee<T>
2599
+ ): T[];
2600
+ }
2601
+
2602
+ interface LoDashImplicitWrapper<TValue> {
2603
+ /**
2604
+ * @see _.takeWhile
2605
+ */
2606
+ takeWhile<T>(
2607
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2608
+ predicate?: ListIteratee<T>
2609
+ ): LoDashImplicitWrapper<T[]>;
2610
+ }
2611
+
2612
+ interface LoDashExplicitWrapper<TValue> {
2613
+ /**
2614
+ * @see _.takeWhile
2615
+ */
2616
+ takeWhile<T>(
2617
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2618
+ predicate?: ListIteratee<T>
2619
+ ): LoDashExplicitWrapper<T[]>;
2620
+ }
2621
+
2622
+ // union
2623
+
2624
+ interface LoDashStatic {
2625
+ /**
2626
+ * Creates an array of unique values, in order, from all of the provided arrays using SameValueZero for
2627
+ * equality comparisons.
2628
+ *
2629
+ * @param arrays The arrays to inspect.
2630
+ * @return Returns the new array of combined values.
2631
+ */
2632
+ union<T>(...arrays: Array<List<T> | null | undefined>): T[];
2633
+ }
2634
+
2635
+ interface LoDashImplicitWrapper<TValue> {
2636
+ /**
2637
+ * @see _.union
2638
+ */
2639
+ union<T>(
2640
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2641
+ ...arrays: Array<List<T> | null | undefined>
2642
+ ): LoDashImplicitWrapper<T[]>;
2643
+ }
2644
+
2645
+ interface LoDashExplicitWrapper<TValue> {
2646
+ /**
2647
+ * @see _.union
2648
+ */
2649
+ union<T>(
2650
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2651
+ ...arrays: Array<List<T> | null | undefined>
2652
+ ): LoDashExplicitWrapper<T[]>;
2653
+ }
2654
+
2655
+ // unionBy
2656
+
2657
+ interface LoDashStatic {
2658
+ /**
2659
+ * This method is like `_.union` except that it accepts `iteratee` which is
2660
+ * invoked for each element of each `arrays` to generate the criterion by which
2661
+ * uniqueness is computed. The iteratee is invoked with one argument: (value).
2662
+ *
2663
+ * @param arrays The arrays to inspect.
2664
+ * @param iteratee The iteratee invoked per element.
2665
+ * @return Returns the new array of combined values.
2666
+ */
2667
+ unionBy<T>(
2668
+ arrays: List<T> | null | undefined,
2669
+ iteratee?: ValueIteratee<T>
2670
+ ): T[];
2671
+
2672
+ /**
2673
+ * @see _.unionBy
2674
+ */
2675
+ unionBy<T>(
2676
+ arrays1: List<T> | null | undefined,
2677
+ arrays2: List<T> | null | undefined,
2678
+ iteratee?: ValueIteratee<T>
2679
+ ): T[];
2680
+
2681
+ /**
2682
+ * @see _.unionBy
2683
+ */
2684
+ unionBy<T>(
2685
+ arrays1: List<T> | null | undefined,
2686
+ arrays2: List<T> | null | undefined,
2687
+ arrays3: List<T> | null | undefined,
2688
+ iteratee?: ValueIteratee<T>
2689
+ ): T[];
2690
+
2691
+ /**
2692
+ * @see _.unionBy
2693
+ */
2694
+ unionBy<T>(
2695
+ arrays1: List<T> | null | undefined,
2696
+ arrays2: List<T> | null | undefined,
2697
+ arrays3: List<T> | null | undefined,
2698
+ arrays4: List<T> | null | undefined,
2699
+ iteratee?: ValueIteratee<T>
2700
+ ): T[];
2701
+
2702
+ /**
2703
+ * @see _.unionBy
2704
+ */
2705
+ unionBy<T>(
2706
+ arrays1: List<T> | null | undefined,
2707
+ arrays2: List<T> | null | undefined,
2708
+ arrays3: List<T> | null | undefined,
2709
+ arrays4: List<T> | null | undefined,
2710
+ arrays5: List<T> | null | undefined,
2711
+ ...iteratee: Array<ValueIteratee<T> | List<T> | null | undefined>
2712
+ ): T[];
2713
+ }
2714
+
2715
+ interface LoDashImplicitWrapper<TValue> {
2716
+ /**
2717
+ * @see _.unionBy
2718
+ */
2719
+ unionBy<T>(
2720
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2721
+ iteratee?: ValueIteratee<T>
2722
+ ): LoDashImplicitWrapper<T[]>;
2723
+
2724
+ /**
2725
+ * @see _.unionBy
2726
+ */
2727
+ unionBy<T>(
2728
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2729
+ arrays2: List<T> | null | undefined,
2730
+ iteratee?: ValueIteratee<T>
2731
+ ): LoDashImplicitWrapper<T[]>;
2732
+
2733
+ /**
2734
+ * @see _.unionBy
2735
+ */
2736
+ unionBy<T>(
2737
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2738
+ arrays2: List<T> | null | undefined,
2739
+ arrays3: List<T> | null | undefined,
2740
+ iteratee?: ValueIteratee<T>
2741
+ ): LoDashImplicitWrapper<T[]>;
2742
+
2743
+ /**
2744
+ * @see _.unionBy
2745
+ */
2746
+ unionBy<T>(
2747
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2748
+ arrays2: List<T> | null | undefined,
2749
+ arrays3: List<T> | null | undefined,
2750
+ arrays4: List<T> | null | undefined,
2751
+ iteratee?: ValueIteratee<T>
2752
+ ): LoDashImplicitWrapper<T[]>;
2753
+
2754
+ /**
2755
+ * @see _.unionBy
2756
+ */
2757
+ unionBy<T>(
2758
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2759
+ arrays2: List<T> | null | undefined,
2760
+ arrays3: List<T> | null | undefined,
2761
+ arrays4: List<T> | null | undefined,
2762
+ arrays5: List<T> | null | undefined,
2763
+ ...iteratee: Array<ValueIteratee<T> | List<T> | null | undefined>
2764
+ ): LoDashImplicitWrapper<T[]>;
2765
+ }
2766
+
2767
+ interface LoDashExplicitWrapper<TValue> {
2768
+ /**
2769
+ * @see _.unionBy
2770
+ */
2771
+ unionBy<T>(
2772
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2773
+ iteratee?: ValueIteratee<T>
2774
+ ): LoDashExplicitWrapper<T[]>;
2775
+
2776
+ /**
2777
+ * @see _.unionBy
2778
+ */
2779
+ unionBy<T>(
2780
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2781
+ arrays2: List<T> | null | undefined,
2782
+ iteratee?: ValueIteratee<T>
2783
+ ): LoDashExplicitWrapper<T[]>;
2784
+
2785
+ /**
2786
+ * @see _.unionBy
2787
+ */
2788
+ unionBy<T>(
2789
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2790
+ arrays2: List<T> | null | undefined,
2791
+ arrays3: List<T> | null | undefined,
2792
+ iteratee?: ValueIteratee<T>
2793
+ ): LoDashExplicitWrapper<T[]>;
2794
+
2795
+ /**
2796
+ * @see _.unionBy
2797
+ */
2798
+ unionBy<T>(
2799
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2800
+ arrays2: List<T> | null | undefined,
2801
+ arrays3: List<T> | null | undefined,
2802
+ arrays4: List<T> | null | undefined,
2803
+ iteratee?: ValueIteratee<T>
2804
+ ): LoDashExplicitWrapper<T[]>;
2805
+
2806
+ /**
2807
+ * @see _.unionBy
2808
+ */
2809
+ unionBy<T>(
2810
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2811
+ arrays2: List<T> | null | undefined,
2812
+ arrays3: List<T> | null | undefined,
2813
+ arrays4: List<T> | null | undefined,
2814
+ arrays5: List<T> | null | undefined,
2815
+ ...iteratee: Array<ValueIteratee<T> | List<T> | null | undefined>
2816
+ ): LoDashExplicitWrapper<T[]>;
2817
+ }
2818
+
2819
+ // unionWith
2820
+
2821
+ interface LoDashStatic {
2822
+ /**
2823
+ * This method is like `_.union` except that it accepts `comparator` which
2824
+ * is invoked to compare elements of `arrays`. The comparator is invoked
2825
+ * with two arguments: (arrVal, othVal).
2826
+ *
2827
+ * @category Array
2828
+ * @param [arrays] The arrays to inspect.
2829
+ * @param [comparator] The comparator invoked per element.
2830
+ * @returns Returns the new array of combined values.
2831
+ * @example
2832
+ *
2833
+ * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
2834
+ * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
2835
+ *
2836
+ * _.unionWith(objects, others, _.isEqual);
2837
+ * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
2838
+ */
2839
+ unionWith<T>(
2840
+ arrays: List<T> | null | undefined,
2841
+ comparator?: Comparator<T>
2842
+ ): T[];
2843
+
2844
+ /**
2845
+ * @see _.unionBy
2846
+ */
2847
+ unionWith<T>(
2848
+ arrays: List<T> | null | undefined,
2849
+ arrays2: List<T> | null | undefined,
2850
+ comparator?: Comparator<T>
2851
+ ): T[];
2852
+
2853
+ /**
2854
+ * @see _.unionWith
2855
+ */
2856
+ unionWith<T>(
2857
+ arrays: List<T> | null | undefined,
2858
+ arrays2: List<T> | null | undefined,
2859
+ arrays3: List<T> | null | undefined,
2860
+ ...comparator: Array<Comparator<T> | List<T> | null | undefined>
2861
+ ): T[];
2862
+ }
2863
+
2864
+ interface LoDashImplicitWrapper<TValue> {
2865
+ /**
2866
+ * @see _.unionWith
2867
+ */
2868
+ unionWith<T>(
2869
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2870
+ comparator?: Comparator<T>
2871
+ ): LoDashImplicitWrapper<T[]>;
2872
+
2873
+ /**
2874
+ * @see _.unionWith
2875
+ */
2876
+ unionWith<T>(
2877
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2878
+ arrays2: List<T> | null | undefined,
2879
+ comparator?: Comparator<T>
2880
+ ): LoDashImplicitWrapper<T[]>;
2881
+
2882
+ /**
2883
+ * @see _.unionWith
2884
+ */
2885
+ unionWith<T>(
2886
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
2887
+ arrays2: List<T> | null | undefined,
2888
+ arrays3: List<T> | null | undefined,
2889
+ ...comparator: Array<Comparator<T> | List<T> | null | undefined>
2890
+ ): LoDashImplicitWrapper<T[]>;
2891
+ }
2892
+
2893
+ interface LoDashExplicitWrapper<TValue> {
2894
+ /**
2895
+ * @see _.unionWith
2896
+ */
2897
+ unionWith<T>(
2898
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2899
+ comparator?: Comparator<T>
2900
+ ): LoDashExplicitWrapper<T[]>;
2901
+
2902
+ /**
2903
+ * @see _.unionWith
2904
+ */
2905
+ unionWith<T>(
2906
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2907
+ arrays2: List<T> | null | undefined,
2908
+ comparator?: Comparator<T>
2909
+ ): LoDashExplicitWrapper<T[]>;
2910
+
2911
+ /**
2912
+ * @see _.unionWith
2913
+ */
2914
+ unionWith<T>(
2915
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
2916
+ arrays2: List<T> | null | undefined,
2917
+ arrays3: List<T> | null | undefined,
2918
+ ...comparator: Array<Comparator<T> | List<T> | null | undefined>
2919
+ ): LoDashExplicitWrapper<T[]>;
2920
+ }
2921
+
2922
+ // uniq
2923
+
2924
+ interface LoDashStatic {
2925
+ /**
2926
+ * Creates a duplicate-free version of an array, using
2927
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
2928
+ * for equality comparisons, in which only the first occurrence of each element
2929
+ * is kept.
2930
+ *
2931
+ * @category Array
2932
+ * @param array The array to inspect.
2933
+ * @returns Returns the new duplicate free array.
2934
+ * @example
2935
+ *
2936
+ * _.uniq([2, 1, 2]);
2937
+ * // => [2, 1]
2938
+ */
2939
+ uniq<T>(
2940
+ array: List<T> | null | undefined
2941
+ ): T[];
2942
+ }
2943
+
2944
+ interface LoDashImplicitWrapper<TValue> {
2945
+ /**
2946
+ * @see _.uniq
2947
+ */
2948
+ uniq<T>(this: LoDashImplicitWrapper<List<T> | null | undefined>): LoDashImplicitWrapper<T[]>;
2949
+ }
2950
+
2951
+ interface LoDashExplicitWrapper<TValue> {
2952
+ /**
2953
+ * @see _.uniq
2954
+ */
2955
+ uniq<T>(this: LoDashExplicitWrapper<List<T> | null | undefined>): LoDashExplicitWrapper<T[]>;
2956
+ }
2957
+
2958
+ // uniqBy
2959
+
2960
+ interface LoDashStatic {
2961
+ /**
2962
+ * This method is like `_.uniq` except that it accepts `iteratee` which is
2963
+ * invoked for each element in `array` to generate the criterion by which
2964
+ * uniqueness is computed. The iteratee is invoked with one argument: (value).
2965
+ *
2966
+ * @category Array
2967
+ * @param array The array to inspect.
2968
+ * @param [iteratee=_.identity] The iteratee invoked per element.
2969
+ * @returns Returns the new duplicate free array.
2970
+ * @example
2971
+ *
2972
+ * _.uniqBy([2.1, 1.2, 2.3], Math.floor);
2973
+ * // => [2.1, 1.2]
2974
+ *
2975
+ * // using the `_.property` iteratee shorthand
2976
+ * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
2977
+ * // => [{ 'x': 1 }, { 'x': 2 }]
2978
+ */
2979
+ uniqBy(
2980
+ array: string | null | undefined,
2981
+ iteratee: StringIterator<NotVoid>
2982
+ ): string[];
2983
+
2984
+ /**
2985
+ * @see _.uniqBy
2986
+ */
2987
+ uniqBy<T>(
2988
+ array: List<T> | null | undefined,
2989
+ iteratee: ListIteratee<T>
2990
+ ): T[];
2991
+ }
2992
+
2993
+ interface LoDashImplicitWrapper<TValue> {
2994
+ /**
2995
+ * @see _.uniqBy
2996
+ */
2997
+ uniqBy(
2998
+ this: LoDashImplicitWrapper<string | null | undefined>,
2999
+ iteratee: StringIterator<NotVoid>
3000
+ ): LoDashImplicitWrapper<string[]>;
3001
+
3002
+ /**
3003
+ * @see _.uniqBy
3004
+ */
3005
+ uniqBy<T>(
3006
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
3007
+ iteratee: ListIteratee<T>
3008
+ ): LoDashImplicitWrapper<T[]>;
3009
+ }
3010
+
3011
+ interface LoDashExplicitWrapper<TValue> {
3012
+ /**
3013
+ * @see _.uniqBy
3014
+ */
3015
+ uniqBy(
3016
+ this: LoDashExplicitWrapper<string | null | undefined>,
3017
+ iteratee: StringIterator<NotVoid>
3018
+ ): LoDashExplicitWrapper<string[]>;
3019
+
3020
+ /**
3021
+ * @see _.uniqBy
3022
+ */
3023
+ uniqBy<T>(
3024
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
3025
+ iteratee: ListIteratee<T>
3026
+ ): LoDashExplicitWrapper<T[]>;
3027
+ }
3028
+
3029
+ // uniqWith
3030
+
3031
+ interface LoDashStatic {
3032
+ /**
3033
+ * This method is like `_.uniq` except that it accepts `comparator` which
3034
+ * is invoked to compare elements of `array`. The comparator is invoked with
3035
+ * two arguments: (arrVal, othVal).
3036
+ *
3037
+ * @category Array
3038
+ * @param array The array to inspect.
3039
+ * @param [comparator] The comparator invoked per element.
3040
+ * @returns Returns the new duplicate free array.
3041
+ * @example
3042
+ *
3043
+ * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];
3044
+ *
3045
+ * _.uniqWith(objects, _.isEqual);
3046
+ * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]
3047
+ */
3048
+ uniqWith<T>(
3049
+ array: List<T> | null | undefined,
3050
+ comparator?: Comparator<T>
3051
+ ): T[];
3052
+ }
3053
+
3054
+ interface LoDashImplicitWrapper<TValue> {
3055
+ /**
3056
+ * @see _.uniqWith
3057
+ */
3058
+ uniqWith<T>(
3059
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
3060
+ comparator?: Comparator<T>
3061
+ ): LoDashImplicitWrapper<T[]>;
3062
+ }
3063
+
3064
+ interface LoDashExplicitWrapper<TValue> {
3065
+ /**
3066
+ * @see _.uniqWith
3067
+ */
3068
+ uniqWith<T>(
3069
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
3070
+ comparator?: Comparator<T>
3071
+ ): LoDashExplicitWrapper<T[]>;
3072
+ }
3073
+
3074
+ // unzip
3075
+
3076
+ interface LoDashStatic {
3077
+ /**
3078
+ * This method is like _.zip except that it accepts an array of grouped elements and creates an array
3079
+ * regrouping the elements to their pre-zip configuration.
3080
+ *
3081
+ * @param array The array of grouped elements to process.
3082
+ * @return Returns the new array of regrouped elements.
3083
+ */
3084
+ unzip<T>(array: T[][] | List<List<T>> | null | undefined): T[][];
3085
+ }
3086
+
3087
+ interface LoDashImplicitWrapper<TValue> {
3088
+ /**
3089
+ * @see _.unzip
3090
+ */
3091
+ unzip<T>(this: LoDashImplicitWrapper<T[][] | List<List<T>> | null | undefined>): LoDashImplicitWrapper<T[][]>;
3092
+ }
3093
+
3094
+ interface LoDashExplicitWrapper<TValue> {
3095
+ /**
3096
+ * @see _.unzip
3097
+ */
3098
+ unzip<T>(this: LoDashExplicitWrapper<T[][] | List<List<T>> | null | undefined>): LoDashExplicitWrapper<T[][]>;
3099
+ }
3100
+
3101
+ // unzipWith
3102
+
3103
+ interface LoDashStatic {
3104
+ /**
3105
+ * This method is like _.unzip except that it accepts an iteratee to specify how regrouped values should be
3106
+ * combined. The iteratee is bound to thisArg and invoked with four arguments: (accumulator, value, index,
3107
+ * group).
3108
+ *
3109
+ * @param array The array of grouped elements to process.
3110
+ * @param iteratee The function to combine regrouped values.
3111
+ * @param thisArg The this binding of iteratee.
3112
+ * @return Returns the new array of regrouped elements.
3113
+ */
3114
+ unzipWith<T, TResult>(
3115
+ array: List<List<T>> | null | undefined,
3116
+ iteratee: (...values: T[]) => TResult
3117
+ ): TResult[];
3118
+
3119
+ /**
3120
+ * @see _.unzipWith
3121
+ */
3122
+ unzipWith<T>(
3123
+ array: List<List<T>> | null | undefined
3124
+ ): T[][];
3125
+ }
3126
+
3127
+ interface LoDashImplicitWrapper<TValue> {
3128
+ /**
3129
+ * @see _.unzipWith
3130
+ */
3131
+ unzipWith<T, TResult>(
3132
+ this: LoDashImplicitWrapper<List<List<T>> | null | undefined>,
3133
+ iteratee: (...values: T[]) => TResult
3134
+ ): LoDashImplicitWrapper<TResult[]>;
3135
+
3136
+ /**
3137
+ * @see _.unzipWith
3138
+ */
3139
+ unzipWith<T>(
3140
+ this: LoDashImplicitWrapper<List<List<T>> | null | undefined>
3141
+ ): LoDashImplicitWrapper<T[][]>;
3142
+ }
3143
+
3144
+ interface LoDashExplicitWrapper<TValue> {
3145
+ /**
3146
+ * @see _.unzipWith
3147
+ */
3148
+ unzipWith<T, TResult>(
3149
+ this: LoDashExplicitWrapper<List<List<T>> | null | undefined>,
3150
+ iteratee: (...values: T[]) => TResult
3151
+ ): LoDashExplicitWrapper<TResult[]>;
3152
+
3153
+ /**
3154
+ * @see _.unzipWith
3155
+ */
3156
+ unzipWith<T>(
3157
+ this: LoDashExplicitWrapper<List<List<T>> | null | undefined>
3158
+ ): LoDashExplicitWrapper<T[][]>;
3159
+ }
3160
+
3161
+ // without
3162
+
3163
+ interface LoDashStatic {
3164
+ /**
3165
+ * Creates an array excluding all provided values using SameValueZero for equality comparisons.
3166
+ *
3167
+ * @param array The array to filter.
3168
+ * @param values The values to exclude.
3169
+ * @return Returns the new array of filtered values.
3170
+ */
3171
+ without<T>(
3172
+ array: List<T> | null | undefined,
3173
+ ...values: T[]
3174
+ ): T[];
3175
+ }
3176
+
3177
+ interface LoDashImplicitWrapper<TValue> {
3178
+ /**
3179
+ * @see _.without
3180
+ */
3181
+ without<T>(
3182
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
3183
+ ...values: T[]
3184
+ ): LoDashImplicitWrapper<T[]>;
3185
+ }
3186
+
3187
+ interface LoDashExplicitWrapper<TValue> {
3188
+ /**
3189
+ * @see _.without
3190
+ */
3191
+ without<T>(
3192
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
3193
+ ...values: T[]
3194
+ ): LoDashExplicitWrapper<T[]>;
3195
+ }
3196
+
3197
+ // xor
3198
+
3199
+ interface LoDashStatic {
3200
+ /**
3201
+ * Creates an array of unique values that is the symmetric difference of the provided arrays.
3202
+ *
3203
+ * @param arrays The arrays to inspect.
3204
+ * @return Returns the new array of values.
3205
+ */
3206
+ xor<T>(...arrays: Array<List<T> | null | undefined>): T[];
3207
+ }
3208
+
3209
+ interface LoDashImplicitWrapper<TValue> {
3210
+ /**
3211
+ * @see _.xor
3212
+ */
3213
+ xor<T>(
3214
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
3215
+ ...arrays: Array<List<T> | null | undefined>
3216
+ ): LoDashImplicitWrapper<T[]>;
3217
+ }
3218
+
3219
+ interface LoDashExplicitWrapper<TValue> {
3220
+ /**
3221
+ * @see _.xor
3222
+ */
3223
+ xor<T>(
3224
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
3225
+ ...arrays: Array<List<T> | null | undefined>
3226
+ ): LoDashExplicitWrapper<T[]>;
3227
+ }
3228
+
3229
+ // xorBy
3230
+
3231
+ interface LoDashStatic {
3232
+ /**
3233
+ * This method is like `_.xor` except that it accepts `iteratee` which is
3234
+ * invoked for each element of each `arrays` to generate the criterion by which
3235
+ * uniqueness is computed. The iteratee is invoked with one argument: (value).
3236
+ *
3237
+ * @category Array
3238
+ * @param [arrays] The arrays to inspect.
3239
+ * @param [iteratee=_.identity] The iteratee invoked per element.
3240
+ * @returns Returns the new array of values.
3241
+ * @example
3242
+ *
3243
+ * _.xorBy([2.1, 1.2], [4.3, 2.4], Math.floor);
3244
+ * // => [1.2, 4.3]
3245
+ *
3246
+ * // using the `_.property` iteratee shorthand
3247
+ * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
3248
+ * // => [{ 'x': 2 }]
3249
+ */
3250
+ xorBy<T>(
3251
+ arrays: List<T> | null | undefined,
3252
+ iteratee?: ValueIteratee<T>
3253
+ ): T[];
3254
+
3255
+ /**
3256
+ * @see _.xorBy
3257
+ */
3258
+ xorBy<T>(
3259
+ arrays: List<T> | null | undefined,
3260
+ arrays2: List<T> | null | undefined,
3261
+ iteratee?: ValueIteratee<T>
3262
+ ): T[];
3263
+
3264
+ /**
3265
+ * @see _.xorBy
3266
+ */
3267
+ xorBy<T>(
3268
+ arrays: List<T> | null | undefined,
3269
+ arrays2: List<T> | null | undefined,
3270
+ arrays3: List<T> | null | undefined,
3271
+ ...iteratee: Array<ValueIteratee<T> | List<T> | null | undefined>
3272
+ ): T[];
3273
+ }
3274
+
3275
+ interface LoDashImplicitWrapper<TValue> {
3276
+ /**
3277
+ * @see _.xor
3278
+ */
3279
+ xorBy<T>(
3280
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
3281
+ iteratee?: ValueIteratee<T>
3282
+ ): LoDashImplicitWrapper<T[]>;
3283
+
3284
+ /**
3285
+ * @see _.xorBy
3286
+ */
3287
+ xorBy<T>(
3288
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
3289
+ arrays2: List<T> | null | undefined,
3290
+ iteratee?: ValueIteratee<T>
3291
+ ): LoDashImplicitWrapper<T[]>;
3292
+
3293
+ /**
3294
+ * @see _.xorBy
3295
+ */
3296
+ xorBy<T>(
3297
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
3298
+ arrays2: List<T> | null | undefined,
3299
+ arrays3: List<T> | null | undefined,
3300
+ ...iteratee: Array<ValueIteratee<T> | List<T> | null | undefined>
3301
+ ): LoDashImplicitWrapper<T[]>;
3302
+ }
3303
+
3304
+ interface LoDashExplicitWrapper<TValue> {
3305
+ /**
3306
+ * @see _.xorBy
3307
+ */
3308
+ xorBy<T>(
3309
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
3310
+ iteratee?: ValueIteratee<T>
3311
+ ): LoDashExplicitWrapper<T[]>;
3312
+
3313
+ /**
3314
+ * @see _.xorBy
3315
+ */
3316
+ xorBy<T>(
3317
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
3318
+ arrays2: List<T> | null | undefined,
3319
+ iteratee?: ValueIteratee<T>
3320
+ ): LoDashExplicitWrapper<T[]>;
3321
+
3322
+ /**
3323
+ * @see _.xorBy
3324
+ */
3325
+ xorBy<T>(
3326
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
3327
+ arrays2: List<T> | null | undefined,
3328
+ arrays3: List<T> | null | undefined,
3329
+ ...iteratee: Array<ValueIteratee<T> | List<T> | null | undefined>
3330
+ ): LoDashExplicitWrapper<T[]>;
3331
+ }
3332
+
3333
+ // xorWith
3334
+
3335
+ interface LoDashStatic {
3336
+ /**
3337
+ * This method is like `_.xor` except that it accepts `comparator` which is
3338
+ * invoked to compare elements of `arrays`. The comparator is invoked with
3339
+ * two arguments: (arrVal, othVal).
3340
+ *
3341
+ * @category Array
3342
+ * @param [arrays] The arrays to inspect.
3343
+ * @param [comparator] The comparator invoked per element.
3344
+ * @returns Returns the new array of values.
3345
+ * @example
3346
+ *
3347
+ * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
3348
+ * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
3349
+ *
3350
+ * _.xorWith(objects, others, _.isEqual);
3351
+ * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
3352
+ */
3353
+ xorWith<T>(
3354
+ arrays: List<T> | null | undefined,
3355
+ comparator?: Comparator<T>
3356
+ ): T[];
3357
+
3358
+ /**
3359
+ * @see _.xorWith
3360
+ */
3361
+ xorWith<T>(
3362
+ arrays: List<T> | null | undefined,
3363
+ arrays2: List<T> | null | undefined,
3364
+ comparator?: Comparator<T>
3365
+ ): T[];
3366
+
3367
+ /**
3368
+ * @see _.xorWith
3369
+ */
3370
+ xorWith<T>(
3371
+ arrays: List<T> | null | undefined,
3372
+ arrays2: List<T> | null | undefined,
3373
+ arrays3: List<T> | null | undefined,
3374
+ ...comparator: Array<Comparator<T> | List<T> | null | undefined>
3375
+ ): T[];
3376
+ }
3377
+
3378
+ interface LoDashImplicitWrapper<TValue> {
3379
+ /**
3380
+ * @see _.xorWith
3381
+ */
3382
+ xorWith<T>(
3383
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
3384
+ comparator?: Comparator<T>
3385
+ ): LoDashImplicitWrapper<T[]>;
3386
+
3387
+ /**
3388
+ * @see _.xorWith
3389
+ */
3390
+ xorWith<T>(
3391
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
3392
+ arrays2: List<T> | null | undefined,
3393
+ comparator?: Comparator<T>
3394
+ ): LoDashImplicitWrapper<T[]>;
3395
+
3396
+ /**
3397
+ * @see _.xorWith
3398
+ */
3399
+ xorWith<T>(
3400
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
3401
+ arrays2: List<T> | null | undefined,
3402
+ arrays3: List<T> | null | undefined,
3403
+ ...comparator: Array<Comparator<T> | List<T> | null | undefined>
3404
+ ): LoDashImplicitWrapper<T[]>;
3405
+ }
3406
+
3407
+ interface LoDashExplicitWrapper<TValue> {
3408
+ /**
3409
+ * @see _.xorWith
3410
+ */
3411
+ xorWith<T>(
3412
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
3413
+ comparator?: Comparator<T>
3414
+ ): LoDashExplicitWrapper<T[]>;
3415
+
3416
+ /**
3417
+ * @see _.xorWith
3418
+ */
3419
+ xorWith<T>(
3420
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
3421
+ arrays2: List<T> | null | undefined,
3422
+ comparator?: Comparator<T>
3423
+ ): LoDashExplicitWrapper<T[]>;
3424
+
3425
+ /**
3426
+ * @see _.xorWith
3427
+ */
3428
+ xorWith<T>(
3429
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
3430
+ arrays2: List<T> | null | undefined,
3431
+ arrays3: List<T> | null | undefined,
3432
+ ...comparator: Array<Comparator<T> | List<T> | null | undefined>
3433
+ ): LoDashExplicitWrapper<T[]>;
3434
+ }
3435
+
3436
+ // zip
3437
+
3438
+ interface LoDashStatic {
3439
+ /**
3440
+ * Creates an array of grouped elements, the first of which contains the first elements of the given arrays,
3441
+ * the second of which contains the second elements of the given arrays, and so on.
3442
+ *
3443
+ * @param arrays The arrays to process.
3444
+ * @return Returns the new array of grouped elements.
3445
+ */
3446
+ zip<T1, T2>(arrays1: List<T1>, arrays2: List<T2>): Array<[T1 | undefined, T2 | undefined]>;
3447
+
3448
+ /**
3449
+ * @see _.zip
3450
+ */
3451
+ zip<T1, T2, T3>(arrays1: List<T1>, arrays2: List<T2>, arrays3: List<T3>): Array<[T1 | undefined, T2 | undefined, T3 | undefined]>;
3452
+
3453
+ /**
3454
+ * @see _.zip
3455
+ */
3456
+ zip<T1, T2, T3, T4>(arrays1: List<T1>, arrays2: List<T2>, arrays3: List<T3>, arrays4: List<T4>): Array<[T1 | undefined, T2 | undefined, T3 | undefined, T4 | undefined]>;
3457
+
3458
+ /**
3459
+ * @see _.zip
3460
+ */
3461
+ zip<T1, T2, T3, T4, T5>(arrays1: List<T1>, arrays2: List<T2>, arrays3: List<T3>, arrays4: List<T4>, arrays5: List<T5>): Array<[T1 | undefined, T2 | undefined, T3 | undefined, T4 | undefined, T5 | undefined]>;
3462
+
3463
+ /**
3464
+ * @see _.zip
3465
+ */
3466
+ zip<T>(...arrays: Array<List<T> | null | undefined>): (T | undefined)[][];
3467
+ }
3468
+
3469
+ interface LoDashImplicitWrapper<TValue> {
3470
+ /**
3471
+ * @see _.zip
3472
+ */
3473
+ zip<T1, T2>(
3474
+ this: LoDashImplicitWrapper<List<T1>>,
3475
+ arrays2: List<T2>,
3476
+ ): LoDashImplicitWrapper<Array<[T1 | undefined, T2 | undefined]>>;
3477
+
3478
+ /**
3479
+ * @see _.zip
3480
+ */
3481
+ zip<T1, T2, T3>(
3482
+ this: LoDashImplicitWrapper<List<T1>>,
3483
+ arrays2: List<T2>,
3484
+ arrays3: List<T3>,
3485
+ ): LoDashImplicitWrapper<Array<[T1 | undefined, T2 | undefined, T3 | undefined]>>;
3486
+
3487
+ /**
3488
+ * @see _.zip
3489
+ */
3490
+ zip<T1, T2, T3, T4>(
3491
+ this: LoDashImplicitWrapper<List<T1>>,
3492
+ arrays2: List<T2>,
3493
+ arrays3: List<T3>,
3494
+ arrays4: List<T4>,
3495
+ ): LoDashImplicitWrapper<Array<[T1 | undefined, T2 | undefined, T3 | undefined, T4 | undefined]>>;
3496
+
3497
+ /**
3498
+ * @see _.zip
3499
+ */
3500
+ zip<T1, T2, T3, T4, T5>(
3501
+ this: LoDashImplicitWrapper<List<T1>>,
3502
+ arrays2: List<T2>,
3503
+ arrays3: List<T3>,
3504
+ arrays4: List<T4>,
3505
+ arrays5: List<T5>,
3506
+ ): LoDashImplicitWrapper<Array<[T1 | undefined, T2 | undefined, T3 | undefined, T4 | undefined, T5 | undefined]>>;
3507
+
3508
+ /**
3509
+ * @see _.zip
3510
+ */
3511
+ zip<T>(
3512
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
3513
+ ...arrays: Array<List<T> | null | undefined>
3514
+ ): LoDashImplicitWrapper<Array<Array<T | undefined>>>;
3515
+ }
3516
+
3517
+ interface LoDashExplicitWrapper<TValue> {
3518
+ /**
3519
+ * @see _.zip
3520
+ */
3521
+ zip<T1, T2>(
3522
+ this: LoDashExplicitWrapper<List<T1>>,
3523
+ arrays2: List<T2>,
3524
+ ): LoDashExplicitWrapper<Array<[T1 | undefined, T2 | undefined]>>;
3525
+
3526
+ /**
3527
+ * @see _.zip
3528
+ */
3529
+ zip<T1, T2, T3>(
3530
+ this: LoDashExplicitWrapper<List<T1>>,
3531
+ arrays2: List<T2>,
3532
+ arrays3: List<T3>,
3533
+ ): LoDashExplicitWrapper<Array<[T1 | undefined, T2 | undefined, T3 | undefined]>>;
3534
+
3535
+ /**
3536
+ * @see _.zip
3537
+ */
3538
+ zip<T1, T2, T3, T4>(
3539
+ this: LoDashExplicitWrapper<List<T1>>,
3540
+ arrays2: List<T2>,
3541
+ arrays3: List<T3>,
3542
+ arrays4: List<T4>,
3543
+ ): LoDashExplicitWrapper<Array<[T1 | undefined, T2 | undefined, T3 | undefined, T4 | undefined]>>;
3544
+
3545
+ /**
3546
+ * @see _.zip
3547
+ */
3548
+ zip<T1, T2, T3, T4, T5>(
3549
+ this: LoDashExplicitWrapper<List<T1>>,
3550
+ arrays2: List<T2>,
3551
+ arrays3: List<T3>,
3552
+ arrays4: List<T4>,
3553
+ arrays5: List<T5>,
3554
+ ): LoDashExplicitWrapper<Array<[T1 | undefined, T2 | undefined, T3 | undefined, T4 | undefined, T5 | undefined]>>;
3555
+
3556
+ /**
3557
+ * @see _.zip
3558
+ */
3559
+ zip<T>(
3560
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
3561
+ ...arrays: Array<List<T> | null | undefined>
3562
+ ): LoDashExplicitWrapper<Array<Array<T | undefined>>>;
3563
+ }
3564
+
3565
+ // zipObject
3566
+
3567
+ interface LoDashStatic {
3568
+ /**
3569
+ * This method is like _.fromPairs except that it accepts two arrays, one of property
3570
+ * identifiers and one of corresponding values.
3571
+ *
3572
+ * @param props The property names.
3573
+ * @param values The property values.
3574
+ * @return Returns the new object.
3575
+ */
3576
+ zipObject<T>(
3577
+ props: List<PropertyName>,
3578
+ values: List<T>
3579
+ ): Dictionary<T>;
3580
+
3581
+ /**
3582
+ * @see _.zipObject
3583
+ */
3584
+ zipObject(
3585
+ props?: List<PropertyName>
3586
+ ): Dictionary<undefined>;
3587
+ }
3588
+
3589
+ interface LoDashImplicitWrapper<TValue> {
3590
+ /**
3591
+ * @see _.zipObject
3592
+ */
3593
+ zipObject<T>(
3594
+ this: LoDashImplicitWrapper<List<PropertyName>>,
3595
+ values: List<T>
3596
+ ): LoDashImplicitWrapper<Dictionary<T>>;
3597
+
3598
+ /**
3599
+ * @see _.zipObject
3600
+ */
3601
+ zipObject(
3602
+ this: LoDashImplicitWrapper<List<PropertyName>>
3603
+ ): LoDashImplicitWrapper<Dictionary<undefined>>;
3604
+ }
3605
+
3606
+ interface LoDashExplicitWrapper<TValue> {
3607
+ /**
3608
+ * @see _.zipObject
3609
+ */
3610
+ zipObject<T>(
3611
+ this: LoDashExplicitWrapper<List<PropertyName>>,
3612
+ values: List<T>
3613
+ ): LoDashExplicitWrapper<Dictionary<T>>;
3614
+
3615
+ /**
3616
+ * @see _.zipObject
3617
+ */
3618
+ zipObject(
3619
+ this: LoDashExplicitWrapper<List<PropertyName>>
3620
+ ): LoDashExplicitWrapper<Dictionary<undefined>>;
3621
+ }
3622
+
3623
+ // zipObjectDeep
3624
+
3625
+ interface LoDashStatic {
3626
+ /**
3627
+ * This method is like _.zipObject except that it supports property paths.
3628
+ *
3629
+ * @param paths The property names.
3630
+ * @param values The property values.
3631
+ * @return Returns the new object.
3632
+ */
3633
+ zipObjectDeep(
3634
+ paths?: List<PropertyPath>,
3635
+ values?: List<any>
3636
+ ): object;
3637
+ }
3638
+
3639
+ interface LoDashImplicitWrapper<TValue> {
3640
+ /**
3641
+ * @see _.zipObjectDeep
3642
+ */
3643
+ zipObjectDeep(
3644
+ this: LoDashImplicitWrapper<List<PropertyPath>>,
3645
+ values?: List<any>
3646
+ ): LoDashImplicitWrapper<object>;
3647
+ }
3648
+
3649
+ interface LoDashExplicitWrapper<TValue> {
3650
+ /**
3651
+ * @see _.zipObjectDeep
3652
+ */
3653
+ zipObjectDeep(
3654
+ this: LoDashExplicitWrapper<List<PropertyPath>>,
3655
+ values?: List<any>
3656
+ ): LoDashExplicitWrapper<object>;
3657
+ }
3658
+
3659
+ // zipWith
3660
+
3661
+ interface LoDashStatic {
3662
+ /**
3663
+ * This method is like _.zip except that it accepts an iteratee to specify how grouped values should be
3664
+ * combined. The iteratee is bound to thisArg and invoked with four arguments: (accumulator, value, index,
3665
+ * group).
3666
+ * @param [arrays] The arrays to process.
3667
+ * @param [iteratee] The function to combine grouped values.
3668
+ * @param [thisArg] The `this` binding of `iteratee`.
3669
+ * @return Returns the new array of grouped elements.
3670
+ */
3671
+ zipWith<T, TResult>(
3672
+ arrays: List<T>,
3673
+ iteratee: (value1: T) => TResult
3674
+ ): TResult[];
3675
+
3676
+ /**
3677
+ * @see _.zipWith
3678
+ */
3679
+ zipWith<T1, T2, TResult>(
3680
+ arrays1: List<T1>,
3681
+ arrays2: List<T2>,
3682
+ iteratee: (value1: T1, value2: T2) => TResult
3683
+ ): TResult[];
3684
+
3685
+ /**
3686
+ * @see _.zipWith
3687
+ */
3688
+ zipWith<T1, T2, T3, TResult>(
3689
+ arrays1: List<T1>,
3690
+ arrays2: List<T2>,
3691
+ arrays3: List<T3>,
3692
+ iteratee: (value1: T1, value2: T2, value3: T3) => TResult
3693
+ ): TResult[];
3694
+
3695
+ /**
3696
+ * @see _.zipWith
3697
+ */
3698
+ zipWith<T1, T2, T3, T4, TResult>(
3699
+ arrays1: List<T1>,
3700
+ arrays2: List<T2>,
3701
+ arrays3: List<T3>,
3702
+ arrays4: List<T4>,
3703
+ iteratee: (value1: T1, value2: T2, value3: T3, value4: T4) => TResult
3704
+ ): TResult[];
3705
+
3706
+ /**
3707
+ * @see _.zipWith
3708
+ */
3709
+ zipWith<T1, T2, T3, T4, T5, TResult>(
3710
+ arrays1: List<T1>,
3711
+ arrays2: List<T2>,
3712
+ arrays3: List<T3>,
3713
+ arrays4: List<T4>,
3714
+ arrays5: List<T5>,
3715
+ iteratee: (value1: T1, value2: T2, value3: T3, value4: T4, value5: T5) => TResult
3716
+ ): TResult[];
3717
+
3718
+ /**
3719
+ * @see _.zipWith
3720
+ */
3721
+ zipWith<T, TResult>(
3722
+ ...iteratee: Array<((...group: T[]) => TResult) | List<T> | null | undefined>
3723
+ ): TResult[];
3724
+ }
3725
+
3726
+ interface LoDashImplicitWrapper<TValue> {
3727
+ /**
3728
+ * @see _.zipWith
3729
+ */
3730
+ zipWith<T, TResult>(
3731
+ this: LoDashImplicitWrapper<List<T>>,
3732
+ iteratee: (value1: T) => TResult
3733
+ ): LoDashImplicitWrapper<TResult[]>;
3734
+
3735
+ /**
3736
+ * @see _.zipWith
3737
+ */
3738
+ zipWith<T1, T2, TResult>(
3739
+ this: LoDashImplicitWrapper<List<T1>>,
3740
+ arrays2: List<T2>,
3741
+ iteratee: (value1: T1, value2: T2) => TResult
3742
+ ): LoDashImplicitWrapper<TResult[]>;
3743
+
3744
+ /**
3745
+ * @see _.zipWith
3746
+ */
3747
+ zipWith<T1, T2, T3, TResult>(
3748
+ this: LoDashImplicitWrapper<List<T1>>,
3749
+ arrays2: List<T2>,
3750
+ arrays3: List<T3>,
3751
+ iteratee: (value1: T1, value2: T2, value3: T3) => TResult
3752
+ ): LoDashImplicitWrapper<TResult[]>;
3753
+
3754
+ /**
3755
+ * @see _.zipWith
3756
+ */
3757
+ zipWith<T1, T2, T3, T4, TResult>(
3758
+ this: LoDashImplicitWrapper<List<T1>>,
3759
+ arrays2: List<T2>,
3760
+ arrays3: List<T3>,
3761
+ arrays4: List<T4>,
3762
+ iteratee: (value1: T1, value2: T2, value3: T3, value4: T4) => TResult
3763
+ ): LoDashImplicitWrapper<TResult[]>;
3764
+
3765
+ /**
3766
+ * @see _.zipWith
3767
+ */
3768
+ zipWith<T1, T2, T3, T4, T5, TResult>(
3769
+ this: LoDashImplicitWrapper<List<T1>>,
3770
+ arrays2: List<T2>,
3771
+ arrays3: List<T3>,
3772
+ arrays4: List<T4>,
3773
+ arrays5: List<T5>,
3774
+ iteratee: (value1: T1, value2: T2, value3: T3, value4: T4, value5: T5) => TResult
3775
+ ): LoDashImplicitWrapper<TResult[]>;
3776
+
3777
+ /**
3778
+ * @see _.zipWith
3779
+ */
3780
+ zipWith<T, TResult>(
3781
+ this: LoDashImplicitWrapper<List<T> | null | undefined>,
3782
+ ...iteratee: Array<((...group: T[]) => TResult) | List<T> | null | undefined>
3783
+ ): LoDashImplicitWrapper<TResult[]>;
3784
+ }
3785
+
3786
+ interface LoDashExplicitWrapper<TValue> {
3787
+ /**
3788
+ * @see _.zipWith
3789
+ */
3790
+ zipWith<T, TResult>(
3791
+ this: LoDashExplicitWrapper<List<T>>,
3792
+ iteratee: (value1: T) => TResult
3793
+ ): LoDashExplicitWrapper<TResult[]>;
3794
+
3795
+ /**
3796
+ * @see _.zipWith
3797
+ */
3798
+ zipWith<T1, T2, TResult>(
3799
+ this: LoDashExplicitWrapper<List<T1>>,
3800
+ arrays2: List<T2>,
3801
+ iteratee: (value1: T1, value2: T2) => TResult
3802
+ ): LoDashExplicitWrapper<TResult[]>;
3803
+
3804
+ /**
3805
+ * @see _.zipWith
3806
+ */
3807
+ zipWith<T1, T2, T3, TResult>(
3808
+ this: LoDashExplicitWrapper<List<T1>>,
3809
+ arrays2: List<T2>,
3810
+ arrays3: List<T3>,
3811
+ iteratee: (value1: T1, value2: T2, value3: T3) => TResult
3812
+ ): LoDashExplicitWrapper<TResult[]>;
3813
+
3814
+ /**
3815
+ * @see _.zipWith
3816
+ */
3817
+ zipWith<T1, T2, T3, T4, TResult>(
3818
+ this: LoDashExplicitWrapper<List<T1>>,
3819
+ arrays2: List<T2>,
3820
+ arrays3: List<T3>,
3821
+ arrays4: List<T4>,
3822
+ iteratee: (value1: T1, value2: T2, value3: T3, value4: T4) => TResult
3823
+ ): LoDashExplicitWrapper<TResult[]>;
3824
+
3825
+ /**
3826
+ * @see _.zipWith
3827
+ */
3828
+ zipWith<T1, T2, T3, T4, T5, TResult>(
3829
+ this: LoDashExplicitWrapper<List<T1>>,
3830
+ arrays2: List<T2>,
3831
+ arrays3: List<T3>,
3832
+ arrays4: List<T4>,
3833
+ arrays5: List<T5>,
3834
+ iteratee: (value1: T1, value2: T2, value3: T3, value4: T4, value5: T5) => TResult
3835
+ ): LoDashExplicitWrapper<TResult[]>;
3836
+
3837
+ /**
3838
+ * @see _.zipWith
3839
+ */
3840
+ zipWith<T, TResult>(
3841
+ this: LoDashExplicitWrapper<List<T> | null | undefined>,
3842
+ ...iteratee: Array<((...group: T[]) => TResult) | List<T> | null | undefined>
3843
+ ): LoDashExplicitWrapper<TResult[]>;
3844
+ }
3845
+ }