@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,1367 @@
1
+ import _ = require("../index");
2
+ declare module "../index" {
3
+ // after
4
+
5
+ interface LoDashStatic {
6
+ /**
7
+ * The opposite of _.before; this method creates a function that invokes func once it’s called n or more times.
8
+ *
9
+ * @param n The number of calls before func is invoked.
10
+ * @param func The function to restrict.
11
+ * @return Returns the new restricted function.
12
+ */
13
+ after<TFunc extends (...args: any[]) => any>(
14
+ n: number,
15
+ func: TFunc
16
+ ): TFunc;
17
+ }
18
+
19
+ interface LoDashImplicitWrapper<TValue> {
20
+ /**
21
+ * @see _.after
22
+ **/
23
+ after<TFunc extends (...args: any[]) => any>(func: TFunc): LoDashImplicitWrapper<TFunc>;
24
+ }
25
+
26
+ interface LoDashExplicitWrapper<TValue> {
27
+ /**
28
+ * @see _.after
29
+ **/
30
+ after<TFunc extends (...args: any[]) => any>(func: TFunc): LoDashExplicitWrapper<TFunc>;
31
+ }
32
+
33
+ // ary
34
+
35
+ interface LoDashStatic {
36
+ /**
37
+ * Creates a function that accepts up to n arguments ignoring any additional arguments.
38
+ *
39
+ * @param func The function to cap arguments for.
40
+ * @param n The arity cap.
41
+ * @returns Returns the new function.
42
+ */
43
+ ary(
44
+ func: (...args: any[]) => any,
45
+ n?: number
46
+ ): (...args: any[]) => any;
47
+ }
48
+
49
+ interface LoDashImplicitWrapper<TValue> {
50
+ /**
51
+ * @see _.ary
52
+ */
53
+ ary(n?: number): LoDashImplicitWrapper<(...args: any[]) => any>;
54
+ }
55
+
56
+ interface LoDashExplicitWrapper<TValue> {
57
+ /**
58
+ * @see _.ary
59
+ */
60
+ ary(n?: number): LoDashExplicitWrapper<(...args: any[]) => any>;
61
+ }
62
+
63
+ // before
64
+
65
+ interface LoDashStatic {
66
+ /**
67
+ * Creates a function that invokes func, with the this binding and arguments of the created function, while
68
+ * it’s called less than n times. Subsequent calls to the created function return the result of the last func
69
+ * invocation.
70
+ *
71
+ * @param n The number of calls at which func is no longer invoked.
72
+ * @param func The function to restrict.
73
+ * @return Returns the new restricted function.
74
+ */
75
+ before<TFunc extends (...args: any[]) => any>(
76
+ n: number,
77
+ func: TFunc
78
+ ): TFunc;
79
+ }
80
+
81
+ interface LoDashImplicitWrapper<TValue> {
82
+ /**
83
+ * @see _.before
84
+ **/
85
+ before<TFunc extends (...args: any[]) => any>(func: TFunc): LoDashImplicitWrapper<TFunc>;
86
+ }
87
+
88
+ interface LoDashExplicitWrapper<TValue> {
89
+ /**
90
+ * @see _.before
91
+ **/
92
+ before<TFunc extends (...args: any[]) => any>(func: TFunc): LoDashExplicitWrapper<TFunc>;
93
+ }
94
+
95
+ // bind
96
+
97
+ interface FunctionBind {
98
+ placeholder: any;
99
+
100
+ (
101
+ func: (...args: any[]) => any,
102
+ thisArg: any,
103
+ ...partials: any[]
104
+ ): (...args: any[]) => any;
105
+ }
106
+
107
+ interface LoDashStatic {
108
+ /**
109
+ * Creates a function that invokes func with the this binding of thisArg and prepends any additional _.bind
110
+ * arguments to those provided to the bound function.
111
+ *
112
+ * The _.bind.placeholder value, which defaults to _ in monolithic builds, may be used as a placeholder for
113
+ * partially applied arguments.
114
+ *
115
+ * Note: Unlike native Function#bind this method does not set the "length" property of bound functions.
116
+ *
117
+ * @param func The function to bind.
118
+ * @param thisArg The this binding of func.
119
+ * @param partials The arguments to be partially applied.
120
+ * @return Returns the new bound function.
121
+ */
122
+ bind: FunctionBind;
123
+ }
124
+
125
+ interface LoDashImplicitWrapper<TValue> {
126
+ /**
127
+ * @see _.bind
128
+ */
129
+ bind(
130
+ thisArg: any,
131
+ ...partials: any[]
132
+ ): LoDashImplicitWrapper<(...args: any[]) => any>;
133
+ }
134
+
135
+ interface LoDashExplicitWrapper<TValue> {
136
+ /**
137
+ * @see _.bind
138
+ */
139
+ bind(
140
+ thisArg: any,
141
+ ...partials: any[]
142
+ ): LoDashExplicitWrapper<(...args: any[]) => any>;
143
+ }
144
+
145
+ // bindKey
146
+
147
+ interface FunctionBindKey {
148
+ placeholder: any;
149
+
150
+ (
151
+ object: object,
152
+ key: string,
153
+ ...partials: any[]
154
+ ): (...args: any[]) => any;
155
+ }
156
+
157
+ interface LoDashStatic {
158
+ /**
159
+ * Creates a function that invokes the method at object[key] and prepends any additional _.bindKey arguments
160
+ * to those provided to the bound function.
161
+ *
162
+ * This method differs from _.bind by allowing bound functions to reference methods that may be redefined
163
+ * or don’t yet exist. See Peter Michaux’s article for more details.
164
+ *
165
+ * The _.bindKey.placeholder value, which defaults to _ in monolithic builds, may be used as a placeholder
166
+ * for partially applied arguments.
167
+ *
168
+ * @param object The object the method belongs to.
169
+ * @param key The key of the method.
170
+ * @param partials The arguments to be partially applied.
171
+ * @return Returns the new bound function.
172
+ */
173
+ bindKey: FunctionBindKey;
174
+ }
175
+
176
+ interface LoDashImplicitWrapper<TValue> {
177
+ /**
178
+ * @see _.bindKey
179
+ */
180
+ bindKey(
181
+ key: string,
182
+ ...partials: any[]
183
+ ): LoDashImplicitWrapper<(...args: any[]) => any>;
184
+ }
185
+
186
+ interface LoDashExplicitWrapper<TValue> {
187
+ /**
188
+ * @see _.bindKey
189
+ */
190
+ bindKey(
191
+ key: string,
192
+ ...partials: any[]
193
+ ): LoDashExplicitWrapper<(...args: any[]) => any>;
194
+ }
195
+
196
+ // curry
197
+
198
+ interface LoDashStatic {
199
+ /**
200
+ * Creates a function that accepts one or more arguments of func that when called either invokes func returning
201
+ * its result, if all func arguments have been provided, or returns a function that accepts one or more of the
202
+ * remaining func arguments, and so on. The arity of func may be specified if func.length is not sufficient.
203
+ * @param func The function to curry.
204
+ * @param arity The arity of func.
205
+ * @return Returns the new curried function.
206
+ */
207
+ curry<T1, R>(func: (t1: T1) => R, arity?: number):
208
+ CurriedFunction1<T1, R>;
209
+ /**
210
+ * Creates a function that accepts one or more arguments of func that when called either invokes func returning
211
+ * its result, if all func arguments have been provided, or returns a function that accepts one or more of the
212
+ * remaining func arguments, and so on. The arity of func may be specified if func.length is not sufficient.
213
+ * @param func The function to curry.
214
+ * @param arity The arity of func.
215
+ * @return Returns the new curried function.
216
+ */
217
+ curry<T1, T2, R>(func: (t1: T1, t2: T2) => R, arity?: number):
218
+ CurriedFunction2<T1, T2, R>;
219
+ /**
220
+ * Creates a function that accepts one or more arguments of func that when called either invokes func returning
221
+ * its result, if all func arguments have been provided, or returns a function that accepts one or more of the
222
+ * remaining func arguments, and so on. The arity of func may be specified if func.length is not sufficient.
223
+ * @param func The function to curry.
224
+ * @param arity The arity of func.
225
+ * @return Returns the new curried function.
226
+ */
227
+ curry<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arity?: number):
228
+ CurriedFunction3<T1, T2, T3, R>;
229
+ /**
230
+ * Creates a function that accepts one or more arguments of func that when called either invokes func returning
231
+ * its result, if all func arguments have been provided, or returns a function that accepts one or more of the
232
+ * remaining func arguments, and so on. The arity of func may be specified if func.length is not sufficient.
233
+ * @param func The function to curry.
234
+ * @param arity The arity of func.
235
+ * @return Returns the new curried function.
236
+ */
237
+ curry<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arity?: number):
238
+ CurriedFunction4<T1, T2, T3, T4, R>;
239
+ /**
240
+ * Creates a function that accepts one or more arguments of func that when called either invokes func returning
241
+ * its result, if all func arguments have been provided, or returns a function that accepts one or more of the
242
+ * remaining func arguments, and so on. The arity of func may be specified if func.length is not sufficient.
243
+ * @param func The function to curry.
244
+ * @param arity The arity of func.
245
+ * @return Returns the new curried function.
246
+ */
247
+ curry<T1, T2, T3, T4, T5, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R, arity?: number):
248
+ CurriedFunction5<T1, T2, T3, T4, T5, R>;
249
+ /**
250
+ * Creates a function that accepts one or more arguments of func that when called either invokes func returning
251
+ * its result, if all func arguments have been provided, or returns a function that accepts one or more of the
252
+ * remaining func arguments, and so on. The arity of func may be specified if func.length is not sufficient.
253
+ * @param func The function to curry.
254
+ * @param arity The arity of func.
255
+ * @return Returns the new curried function.
256
+ */
257
+ curry(func: (...args: any[]) => any, arity?: number): (...args: any[]) => any;
258
+ }
259
+
260
+ interface CurriedFunction1<T1, R> {
261
+ (): CurriedFunction1<T1, R>;
262
+ (t1: T1): R;
263
+ }
264
+
265
+ interface CurriedFunction2<T1, T2, R> {
266
+ (): CurriedFunction2<T1, T2, R>;
267
+ (t1: T1): CurriedFunction1<T2, R>;
268
+ (t1: T1, t2: T2): R;
269
+ }
270
+
271
+ interface CurriedFunction3<T1, T2, T3, R> {
272
+ (): CurriedFunction3<T1, T2, T3, R>;
273
+ (t1: T1): CurriedFunction2<T2, T3, R>;
274
+ (t1: T1, t2: T2): CurriedFunction1<T3, R>;
275
+ (t1: T1, t2: T2, t3: T3): R;
276
+ }
277
+
278
+ interface CurriedFunction4<T1, T2, T3, T4, R> {
279
+ (): CurriedFunction4<T1, T2, T3, T4, R>;
280
+ (t1: T1): CurriedFunction3<T2, T3, T4, R>;
281
+ (t1: T1, t2: T2): CurriedFunction2<T3, T4, R>;
282
+ (t1: T1, t2: T2, t3: T3): CurriedFunction1<T4, R>;
283
+ (t1: T1, t2: T2, t3: T3, t4: T4): R;
284
+ }
285
+
286
+ interface CurriedFunction5<T1, T2, T3, T4, T5, R> {
287
+ (): CurriedFunction5<T1, T2, T3, T4, T5, R>;
288
+ (t1: T1): CurriedFunction4<T2, T3, T4, T5, R>;
289
+ (t1: T1, t2: T2): CurriedFunction3<T3, T4, T5, R>;
290
+ (t1: T1, t2: T2, t3: T3): CurriedFunction2<T4, T5, R>;
291
+ (t1: T1, t2: T2, t3: T3, t4: T4): CurriedFunction1<T5, R>;
292
+ (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5): R;
293
+ }
294
+ interface RightCurriedFunction1<T1, R> {
295
+ (): RightCurriedFunction1<T1, R>;
296
+ (t1: T1): R;
297
+ }
298
+ interface RightCurriedFunction2<T1, T2, R> {
299
+ (): RightCurriedFunction2<T1, T2, R>;
300
+ (t2: T2): RightCurriedFunction1<T1, R>;
301
+ (t1: T1, t2: T2): R;
302
+ }
303
+ interface RightCurriedFunction3<T1, T2, T3, R> {
304
+ (): RightCurriedFunction3<T1, T2, T3, R>;
305
+ (t3: T3): RightCurriedFunction2<T1, T2, R>;
306
+ (t2: T2, t3: T3): RightCurriedFunction1<T1, R>;
307
+ (t1: T1, t2: T2, t3: T3): R;
308
+ }
309
+ interface RightCurriedFunction4<T1, T2, T3, T4, R> {
310
+ (): RightCurriedFunction4<T1, T2, T3, T4, R>;
311
+ (t4: T4): RightCurriedFunction3<T1, T2, T3, R>;
312
+ (t3: T3, t4: T4): RightCurriedFunction2<T1, T2, R>;
313
+ (t2: T2, t3: T3, t4: T4): RightCurriedFunction1<T1, R>;
314
+ (t1: T1, t2: T2, t3: T3, t4: T4): R;
315
+ }
316
+ interface RightCurriedFunction5<T1, T2, T3, T4, T5, R> {
317
+ (): RightCurriedFunction5<T1, T2, T3, T4, T5, R>;
318
+ (t5: T5): RightCurriedFunction4<T1, T2, T3, T4, R>;
319
+ (t4: T4, t5: T5): RightCurriedFunction3<T1, T2, T3, R>;
320
+ (t3: T3, t4: T4, t5: T5): RightCurriedFunction2<T1, T2, R>;
321
+ (t2: T2, t3: T3, t4: T4, t5: T5): RightCurriedFunction1<T1, R>;
322
+ (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5): R;
323
+ }
324
+
325
+ interface LoDashImplicitWrapper<TValue> {
326
+ /**
327
+ * @see _.curry
328
+ **/
329
+ curry<T1, R>(this: LoDashImplicitWrapper<(t1: T1) => R>, arity?: number):
330
+ LoDashImplicitWrapper<CurriedFunction1<T1, R>>;
331
+
332
+ /**
333
+ * @see _.curry
334
+ **/
335
+ curry<T1, T2, R>(this: LoDashImplicitWrapper<(t1: T1, t2: T2) => R>, arity?: number):
336
+ LoDashImplicitWrapper<CurriedFunction2<T1, T2, R>>;
337
+
338
+ /**
339
+ * @see _.curry
340
+ **/
341
+ curry<T1, T2, T3, R>(this: LoDashImplicitWrapper<(t1: T1, t2: T2, t3: T3) => R>, arity?: number):
342
+ LoDashImplicitWrapper<CurriedFunction3<T1, T2, T3, R>>;
343
+
344
+ /**
345
+ * @see _.curry
346
+ **/
347
+ curry<T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<(t1: T1, t2: T2, t3: T3, t4: T4) => R>, arity?: number):
348
+ LoDashImplicitWrapper<CurriedFunction4<T1, T2, T3, T4, R>>;
349
+
350
+ /**
351
+ * @see _.curry
352
+ **/
353
+ curry<T1, T2, T3, T4, T5, R>(this: LoDashImplicitWrapper<(t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R>, arity?: number):
354
+ LoDashImplicitWrapper<CurriedFunction5<T1, T2, T3, T4, T5, R>>;
355
+
356
+ /**
357
+ * @see _.curry
358
+ **/
359
+ curry(arity?: number): LoDashImplicitWrapper<(...args: any[]) => any>;
360
+ }
361
+
362
+ interface LoDashExplicitWrapper<TValue> {
363
+ /**
364
+ * @see _.curry
365
+ **/
366
+ curry<T1, R>(this: LoDashExplicitWrapper<(t1: T1) => R>):
367
+ LoDashExplicitWrapper<CurriedFunction1<T1, R>>;
368
+
369
+ /**
370
+ * @see _.curry
371
+ **/
372
+ curry<T1, T2, R>(this: LoDashExplicitWrapper<(t1: T1, t2: T2) => R>):
373
+ LoDashExplicitWrapper<CurriedFunction2<T1, T2, R>>;
374
+
375
+ /**
376
+ * @see _.curry
377
+ **/
378
+ curry<T1, T2, T3, R>(this: LoDashExplicitWrapper<(t1: T1, t2: T2, t3: T3) => R>):
379
+ LoDashExplicitWrapper<CurriedFunction3<T1, T2, T3, R>>;
380
+
381
+ /**
382
+ * @see _.curry
383
+ **/
384
+ curry<T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<(t1: T1, t2: T2, t3: T3, t4: T4) => R>):
385
+ LoDashExplicitWrapper<CurriedFunction4<T1, T2, T3, T4, R>>;
386
+
387
+ /**
388
+ * @see _.curry
389
+ **/
390
+ curry<T1, T2, T3, T4, T5, R>(this: LoDashExplicitWrapper<(t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R>):
391
+ LoDashExplicitWrapper<CurriedFunction5<T1, T2, T3, T4, T5, R>>;
392
+
393
+ /**
394
+ * @see _.curry
395
+ **/
396
+ curry(arity?: number): LoDashExplicitWrapper<(...args: any[]) => any>;
397
+ }
398
+
399
+ // curryRight
400
+
401
+ interface LoDashStatic {
402
+ /**
403
+ * This method is like _.curry except that arguments are applied to func in the manner of _.partialRight
404
+ * instead of _.partial.
405
+ * @param func The function to curry.
406
+ * @param arity The arity of func.
407
+ * @return Returns the new curried function.
408
+ */
409
+ curryRight<T1, R>(func: (t1: T1) => R, arity?: number):
410
+ RightCurriedFunction1<T1, R>;
411
+ /**
412
+ * This method is like _.curry except that arguments are applied to func in the manner of _.partialRight
413
+ * instead of _.partial.
414
+ * @param func The function to curry.
415
+ * @param arity The arity of func.
416
+ * @return Returns the new curried function.
417
+ */
418
+ curryRight<T1, T2, R>(func: (t1: T1, t2: T2) => R, arity?: number):
419
+ RightCurriedFunction2<T1, T2, R>;
420
+ /**
421
+ * This method is like _.curry except that arguments are applied to func in the manner of _.partialRight
422
+ * instead of _.partial.
423
+ * @param func The function to curry.
424
+ * @param arity The arity of func.
425
+ * @return Returns the new curried function.
426
+ */
427
+ curryRight<T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arity?: number):
428
+ RightCurriedFunction3<T1, T2, T3, R>;
429
+ /**
430
+ * This method is like _.curry except that arguments are applied to func in the manner of _.partialRight
431
+ * instead of _.partial.
432
+ * @param func The function to curry.
433
+ * @param arity The arity of func.
434
+ * @return Returns the new curried function.
435
+ */
436
+ curryRight<T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arity?: number):
437
+ RightCurriedFunction4<T1, T2, T3, T4, R>;
438
+ /**
439
+ * This method is like _.curry except that arguments are applied to func in the manner of _.partialRight
440
+ * instead of _.partial.
441
+ * @param func The function to curry.
442
+ * @param arity The arity of func.
443
+ * @return Returns the new curried function.
444
+ */
445
+ curryRight<T1, T2, T3, T4, T5, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R, arity?: number):
446
+ RightCurriedFunction5<T1, T2, T3, T4, T5, R>;
447
+ /**
448
+ * This method is like _.curry except that arguments are applied to func in the manner of _.partialRight
449
+ * instead of _.partial.
450
+ * @param func The function to curry.
451
+ * @param arity The arity of func.
452
+ * @return Returns the new curried function.
453
+ */
454
+ curryRight(func: (...args: any[]) => any, arity?: number): (...args: any[]) => any;
455
+ }
456
+
457
+ interface LoDashImplicitWrapper<TValue> {
458
+ /**
459
+ * @see _.curryRight
460
+ **/
461
+ curryRight<T1, R>(this: LoDashImplicitWrapper<(t1: T1) => R>, arity?: number):
462
+ LoDashImplicitWrapper<RightCurriedFunction1<T1, R>>;
463
+
464
+ /**
465
+ * @see _.curryRight
466
+ **/
467
+ curryRight<T1, T2, R>(this: LoDashImplicitWrapper<(t1: T1, t2: T2) => R>, arity?: number):
468
+ LoDashImplicitWrapper<RightCurriedFunction2<T1, T2, R>>;
469
+
470
+ /**
471
+ * @see _.curryRight
472
+ **/
473
+ curryRight<T1, T2, T3, R>(this: LoDashImplicitWrapper<(t1: T1, t2: T2, t3: T3) => R>, arity?: number):
474
+ LoDashImplicitWrapper<RightCurriedFunction3<T1, T2, T3, R>>;
475
+
476
+ /**
477
+ * @see _.curryRight
478
+ **/
479
+ curryRight<T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<(t1: T1, t2: T2, t3: T3, t4: T4) => R>, arity?: number):
480
+ LoDashImplicitWrapper<RightCurriedFunction4<T1, T2, T3, T4, R>>;
481
+
482
+ /**
483
+ * @see _.curryRight
484
+ **/
485
+ curryRight<T1, T2, T3, T4, T5, R>(this: LoDashImplicitWrapper<(t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R>, arity?: number):
486
+ LoDashImplicitWrapper<RightCurriedFunction5<T1, T2, T3, T4, T5, R>>;
487
+
488
+ /**
489
+ * @see _.curryRight
490
+ **/
491
+ curryRight(arity?: number): LoDashImplicitWrapper<(...args: any[]) => any>;
492
+ }
493
+
494
+ interface LoDashExplicitWrapper<TValue> {
495
+ /**
496
+ * @see _.curryRight
497
+ **/
498
+ curryRight<T1, R>(this: LoDashExplicitWrapper<(t1: T1) => R>, arity?: number):
499
+ LoDashExplicitWrapper<RightCurriedFunction1<T1, R>>;
500
+
501
+ /**
502
+ * @see _.curryRight
503
+ **/
504
+ curryRight<T1, T2, R>(this: LoDashExplicitWrapper<(t1: T1, t2: T2) => R>, arity?: number):
505
+ LoDashExplicitWrapper<RightCurriedFunction2<T1, T2, R>>;
506
+
507
+ /**
508
+ * @see _.curryRight
509
+ **/
510
+ curryRight<T1, T2, T3, R>(this: LoDashExplicitWrapper<(t1: T1, t2: T2, t3: T3) => R>, arity?: number):
511
+ LoDashExplicitWrapper<RightCurriedFunction3<T1, T2, T3, R>>;
512
+
513
+ /**
514
+ * @see _.curryRight
515
+ **/
516
+ curryRight<T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<(t1: T1, t2: T2, t3: T3, t4: T4) => R>, arity?: number):
517
+ LoDashExplicitWrapper<RightCurriedFunction4<T1, T2, T3, T4, R>>;
518
+
519
+ /**
520
+ * @see _.curryRight
521
+ **/
522
+ curryRight<T1, T2, T3, T4, T5, R>(this: LoDashExplicitWrapper<(t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R>, arity?: number):
523
+ LoDashExplicitWrapper<RightCurriedFunction5<T1, T2, T3, T4, T5, R>>;
524
+
525
+ /**
526
+ * @see _.curryRight
527
+ **/
528
+ curryRight(arity?: number): LoDashExplicitWrapper<(...args: any[]) => any>;
529
+ }
530
+
531
+ // debounce
532
+
533
+ interface DebounceSettings {
534
+ /**
535
+ * Specify invoking on the leading edge of the timeout.
536
+ */
537
+ leading?: boolean;
538
+
539
+ /**
540
+ * The maximum time func is allowed to be delayed before it’s invoked.
541
+ */
542
+ maxWait?: number;
543
+
544
+ /**
545
+ * Specify invoking on the trailing edge of the timeout.
546
+ */
547
+ trailing?: boolean;
548
+ }
549
+
550
+ interface LoDashStatic {
551
+ /**
552
+ * Creates a debounced function that delays invoking func until after wait milliseconds have elapsed since
553
+ * the last time the debounced function was invoked. The debounced function comes with a cancel method to
554
+ * cancel delayed invocations and a flush method to immediately invoke them. Provide an options object to
555
+ * indicate that func should be invoked on the leading and/or trailing edge of the wait timeout. Subsequent
556
+ * calls to the debounced function return the result of the last func invocation.
557
+ *
558
+ * Note: If leading and trailing options are true, func is invoked on the trailing edge of the timeout only
559
+ * if the the debounced function is invoked more than once during the wait timeout.
560
+ *
561
+ * See David Corbacho’s article for details over the differences between _.debounce and _.throttle.
562
+ *
563
+ * @param func The function to debounce.
564
+ * @param wait The number of milliseconds to delay.
565
+ * @param options The options object.
566
+ * @param options.leading Specify invoking on the leading edge of the timeout.
567
+ * @param options.maxWait The maximum time func is allowed to be delayed before it’s invoked.
568
+ * @param options.trailing Specify invoking on the trailing edge of the timeout.
569
+ * @return Returns the new debounced function.
570
+ */
571
+ debounce<T extends (...args: any[]) => any>(
572
+ func: T,
573
+ wait?: number,
574
+ options?: DebounceSettings
575
+ ): T & Cancelable;
576
+ }
577
+
578
+ interface LoDashImplicitWrapper<TValue> {
579
+ /**
580
+ * @see _.debounce
581
+ */
582
+ debounce(
583
+ wait?: number,
584
+ options?: DebounceSettings
585
+ ): LoDashImplicitWrapper<TValue & Cancelable>;
586
+ }
587
+
588
+ interface LoDashExplicitWrapper<TValue> {
589
+ /**
590
+ * @see _.debounce
591
+ */
592
+ debounce(
593
+ wait?: number,
594
+ options?: DebounceSettings
595
+ ): LoDashExplicitWrapper<TValue & Cancelable>;
596
+ }
597
+
598
+ // defer
599
+
600
+ interface LoDashStatic {
601
+ /**
602
+ * Defers invoking the func until the current call stack has cleared. Any additional arguments are provided to
603
+ * func when it’s invoked.
604
+ *
605
+ * @param func The function to defer.
606
+ * @param args The arguments to invoke the function with.
607
+ * @return Returns the timer id.
608
+ */
609
+ defer(
610
+ func: (...args: any[]) => any,
611
+ ...args: any[]
612
+ ): number;
613
+ }
614
+
615
+ interface LoDashImplicitWrapper<TValue> {
616
+ /**
617
+ * @see _.defer
618
+ */
619
+ defer(...args: any[]): LoDashImplicitWrapper<number>;
620
+ }
621
+
622
+ interface LoDashExplicitWrapper<TValue> {
623
+ /**
624
+ * @see _.defer
625
+ */
626
+ defer(...args: any[]): LoDashExplicitWrapper<number>;
627
+ }
628
+
629
+ // delay
630
+
631
+ interface LoDashStatic {
632
+ /**
633
+ * Invokes func after wait milliseconds. Any additional arguments are provided to func when it’s invoked.
634
+ *
635
+ * @param func The function to delay.
636
+ * @param wait The number of milliseconds to delay invocation.
637
+ * @param args The arguments to invoke the function with.
638
+ * @return Returns the timer id.
639
+ */
640
+ delay(
641
+ func: (...args: any[]) => any,
642
+ wait: number,
643
+ ...args: any[]
644
+ ): number;
645
+ }
646
+
647
+ interface LoDashImplicitWrapper<TValue> {
648
+ /**
649
+ * @see _.delay
650
+ */
651
+ delay(
652
+ wait: number,
653
+ ...args: any[]
654
+ ): LoDashImplicitWrapper<number>;
655
+ }
656
+
657
+ interface LoDashExplicitWrapper<TValue> {
658
+ /**
659
+ * @see _.delay
660
+ */
661
+ delay(
662
+ wait: number,
663
+ ...args: any[]
664
+ ): LoDashExplicitWrapper<number>;
665
+ }
666
+
667
+ // flip
668
+
669
+ interface LoDashStatic {
670
+ /**
671
+ * Creates a function that invokes `func` with arguments reversed.
672
+ *
673
+ * @category Function
674
+ * @param func The function to flip arguments for.
675
+ * @returns Returns the new function.
676
+ * @example
677
+ *
678
+ * var flipped = _.flip(function() {
679
+ * return _.toArray(arguments);
680
+ * });
681
+ *
682
+ * flipped('a', 'b', 'c', 'd');
683
+ * // => ['d', 'c', 'b', 'a']
684
+ */
685
+ flip<T extends (...args: any[]) => any>(func: T): T;
686
+ }
687
+
688
+ interface LoDashWrapper<TValue> {
689
+ /**
690
+ * @see _.flip
691
+ */
692
+ flip(): this;
693
+ }
694
+
695
+ // memoize
696
+
697
+ interface MemoizedFunction {
698
+ cache: MapCache;
699
+ }
700
+
701
+ interface LoDashStatic {
702
+ /**
703
+ * Creates a function that memoizes the result of func. If resolver is provided it determines the cache key for
704
+ * storing the result based on the arguments provided to the memoized function. By default, the first argument
705
+ * provided to the memoized function is coerced to a string and used as the cache key. The func is invoked with
706
+ * the this binding of the memoized function.
707
+ *
708
+ * @param func The function to have its output memoized.
709
+ * @param resolver The function to resolve the cache key.
710
+ * @return Returns the new memoizing function.
711
+ */
712
+ memoize: {
713
+ <T extends (...args: any[]) => any>(func: T, resolver?: (...args: any[]) => any): T & MemoizedFunction;
714
+ Cache: MapCacheConstructor;
715
+ };
716
+ }
717
+
718
+ interface LoDashImplicitWrapper<TValue> {
719
+ /**
720
+ * @see _.memoize
721
+ */
722
+ memoize(resolver?: (...args: any[]) => any): LoDashImplicitWrapper<TValue & MemoizedFunction>;
723
+ }
724
+
725
+ interface LoDashExplicitWrapper<TValue> {
726
+ /**
727
+ * @see _.memoize
728
+ */
729
+ memoize(resolver?: (...args: any[]) => any): LoDashExplicitWrapper<TValue & MemoizedFunction>;
730
+ }
731
+
732
+ // negate
733
+
734
+ interface LoDashStatic {
735
+ /**
736
+ * Creates a function that negates the result of the predicate func. The func predicate is invoked with
737
+ * the this binding and arguments of the created function.
738
+ *
739
+ * @param predicate The predicate to negate.
740
+ * @return Returns the new function.
741
+ */
742
+ negate<T extends (...args: any[]) => any>(predicate: T): T;
743
+ }
744
+
745
+ interface LoDashWrapper<TValue> {
746
+ /**
747
+ * @see _.negate
748
+ */
749
+ negate(): this;
750
+ }
751
+
752
+ // once
753
+
754
+ interface LoDashStatic {
755
+ /**
756
+ * Creates a function that is restricted to invoking func once. Repeat calls to the function return the value
757
+ * of the first call. The func is invoked with the this binding and arguments of the created function.
758
+ *
759
+ * @param func The function to restrict.
760
+ * @return Returns the new restricted function.
761
+ */
762
+ once<T extends (...args: any[]) => any>(func: T): T;
763
+ }
764
+
765
+ interface LoDashWrapper<TValue> {
766
+ /**
767
+ * @see _.once
768
+ */
769
+ once(): this;
770
+ }
771
+
772
+ // overArgs
773
+
774
+ interface LoDashStatic {
775
+ /**
776
+ * Creates a function that runs each argument through a corresponding transform function.
777
+ *
778
+ * @param func The function to wrap.
779
+ * @param transforms The functions to transform arguments, specified as individual functions or arrays
780
+ * of functions.
781
+ * @return Returns the new function.
782
+ */
783
+ overArgs(
784
+ func: (...args: any[]) => any,
785
+ ...transforms: Array<Many<(...args: any[]) => any>>
786
+ ): (...args: any[]) => any;
787
+ }
788
+
789
+ interface LoDashImplicitWrapper<TValue> {
790
+ /**
791
+ * @see _.overArgs
792
+ */
793
+ overArgs(...transforms: Array<Many<(...args: any[]) => any>>): LoDashImplicitWrapper<(...args: any[]) => any>;
794
+ }
795
+
796
+ interface LoDashExplicitWrapper<TValue> {
797
+ /**
798
+ * @see _.overArgs
799
+ */
800
+ overArgs(...transforms: Array<Many<(...args: any[]) => any>>): LoDashExplicitWrapper<(...args: any[]) => any>;
801
+ }
802
+
803
+ // partial
804
+
805
+ interface LoDashStatic {
806
+ /**
807
+ * Creates a function that, when called, invokes func with any additional partial arguments
808
+ * prepended to those provided to the new function. This method is similar to _.bind except
809
+ * it does not alter the this binding.
810
+ * @param func The function to partially apply arguments to.
811
+ * @param args Arguments to be partially applied.
812
+ * @return The new partially applied function.
813
+ **/
814
+ partial: Partial;
815
+ }
816
+
817
+ interface LoDashImplicitWrapper<TValue> {
818
+ /**
819
+ * @see _.partial
820
+ */
821
+ partial: ImplicitPartial;
822
+ }
823
+
824
+ interface LoDashExplicitWrapper<TValue> {
825
+ /**
826
+ * @see _.partial
827
+ */
828
+ partial: ExplicitPartial;
829
+ }
830
+
831
+ type PH = LoDashStatic;
832
+
833
+ type Function0<R> = () => R;
834
+ type Function1<T1, R> = (t1: T1) => R;
835
+ type Function2<T1, T2, R> = (t1: T1, t2: T2) => R;
836
+ type Function3<T1, T2, T3, R> = (t1: T1, t2: T2, t3: T3) => R;
837
+ type Function4<T1, T2, T3, T4, R> = (t1: T1, t2: T2, t3: T3, t4: T4) => R;
838
+
839
+ interface Partial {
840
+ // arity 0
841
+ <R>(func: Function0<R>): Function0<R>;
842
+ // arity 1
843
+ <T1, R>(func: Function1<T1, R>): Function1<T1, R>;
844
+ <T1, R>(func: Function1<T1, R>, arg1: T1): Function0<R>;
845
+ // arity 2
846
+ <T1, T2, R>(func: Function2<T1, T2, R>): Function2<T1, T2, R>;
847
+ <T1, T2, R>(func: Function2<T1, T2, R>, arg1: T1): Function1< T2, R>;
848
+ <T1, T2, R>(func: Function2<T1, T2, R>, plc1: PH, arg2: T2): Function1<T1, R>;
849
+ <T1, T2, R>(func: Function2<T1, T2, R>, arg1: T1, arg2: T2): Function0< R>;
850
+ // arity 3
851
+ <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>): Function3<T1, T2, T3, R>;
852
+ <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1): Function2< T2, T3, R>;
853
+ <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, plc1: PH, arg2: T2): Function2<T1, T3, R>;
854
+ <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1, arg2: T2): Function1< T3, R>;
855
+ <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, plc1: PH, plc2: PH, arg3: T3): Function2<T1, T2, R>;
856
+ <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1, plc2: PH, arg3: T3): Function1< T2, R>;
857
+ <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, plc1: PH, arg2: T2, arg3: T3): Function1<T1, R>;
858
+ <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1, arg2: T2, arg3: T3): Function0< R>;
859
+ // arity 4
860
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>): Function4<T1, T2, T3, T4, R>;
861
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1): Function3< T2, T3, T4, R>;
862
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: PH, arg2: T2): Function3<T1, T3, T4, R>;
863
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2): Function2< T3, T4, R>;
864
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: PH, plc2: PH, arg3: T3): Function3<T1, T2, T4, R>;
865
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: PH, arg3: T3): Function2< T2, T4, R>;
866
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: PH, arg2: T2, arg3: T3): Function2<T1, T4, R>;
867
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2, arg3: T3): Function1< T4, R>;
868
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: PH, plc2: PH, plc3: PH, arg4: T4): Function3<T1, T2, T3, R>;
869
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: PH, plc3: PH, arg4: T4): Function2< T2, T3, R>;
870
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: PH, arg2: T2, plc3: PH, arg4: T4): Function2<T1, T3, R>;
871
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2, plc3: PH, arg4: T4): Function1< T3, R>;
872
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: PH, plc2: PH, arg3: T3, arg4: T4): Function2<T1, T2, R>;
873
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: PH, arg3: T3, arg4: T4): Function1< T2, R>;
874
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, plc1: PH, arg2: T2, arg3: T3, arg4: T4): Function1<T1, R>;
875
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2, arg3: T3, arg4: T4): Function0< R>;
876
+ // catch-all
877
+ (func: (...args: any[]) => any, ...args: any[]): (...args: any[]) => any;
878
+ }
879
+
880
+ interface ImplicitPartial {
881
+ // arity 0
882
+ <R>(this: LoDashImplicitWrapper<Function0<R>>): LoDashImplicitWrapper<Function0<R>>;
883
+ // arity 1
884
+ <T1, R>(this: LoDashImplicitWrapper<Function1<T1, R>>): LoDashImplicitWrapper<Function1<T1, R>>;
885
+ <T1, R>(this: LoDashImplicitWrapper<Function1<T1, R>>, arg1: T1): LoDashImplicitWrapper<Function0<R>>;
886
+ // arity 2
887
+ <T1, T2, R>(this: LoDashImplicitWrapper<Function2<T1, T2, R>>): LoDashImplicitWrapper<Function2<T1, T2, R>>;
888
+ <T1, T2, R>(this: LoDashImplicitWrapper<Function2<T1, T2, R>>, arg1: T1): LoDashImplicitWrapper<Function1< T2, R>>;
889
+ <T1, T2, R>(this: LoDashImplicitWrapper<Function2<T1, T2, R>>, plc1: PH, arg2: T2): LoDashImplicitWrapper<Function1<T1, R>>;
890
+ <T1, T2, R>(this: LoDashImplicitWrapper<Function2<T1, T2, R>>, arg1: T1, arg2: T2): LoDashImplicitWrapper<Function0< R>>;
891
+ // arity 3
892
+ <T1, T2, T3, R>(this: LoDashImplicitWrapper<Function3<T1, T2, T3, R>>): LoDashImplicitWrapper<Function3<T1, T2, T3, R>>;
893
+ <T1, T2, T3, R>(this: LoDashImplicitWrapper<Function3<T1, T2, T3, R>>, arg1: T1): LoDashImplicitWrapper<Function2< T2, T3, R>>;
894
+ <T1, T2, T3, R>(this: LoDashImplicitWrapper<Function3<T1, T2, T3, R>>, plc1: PH, arg2: T2): LoDashImplicitWrapper<Function2<T1, T3, R>>;
895
+ <T1, T2, T3, R>(this: LoDashImplicitWrapper<Function3<T1, T2, T3, R>>, arg1: T1, arg2: T2): LoDashImplicitWrapper<Function1< T3, R>>;
896
+ <T1, T2, T3, R>(this: LoDashImplicitWrapper<Function3<T1, T2, T3, R>>, plc1: PH, plc2: PH, arg3: T3): LoDashImplicitWrapper<Function2<T1, T2, R>>;
897
+ <T1, T2, T3, R>(this: LoDashImplicitWrapper<Function3<T1, T2, T3, R>>, arg1: T1, plc2: PH, arg3: T3): LoDashImplicitWrapper<Function1< T2, R>>;
898
+ <T1, T2, T3, R>(this: LoDashImplicitWrapper<Function3<T1, T2, T3, R>>, plc1: PH, arg2: T2, arg3: T3): LoDashImplicitWrapper<Function1<T1, R>>;
899
+ <T1, T2, T3, R>(this: LoDashImplicitWrapper<Function3<T1, T2, T3, R>>, arg1: T1, arg2: T2, arg3: T3): LoDashImplicitWrapper<Function0< R>>;
900
+ // arity 4
901
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>): LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>;
902
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1): LoDashImplicitWrapper<Function3< T2, T3, T4, R>>;
903
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, plc1: PH, arg2: T2): LoDashImplicitWrapper<Function3<T1, T3, T4, R>>;
904
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, arg2: T2): LoDashImplicitWrapper<Function2< T3, T4, R>>;
905
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, plc1: PH, plc2: PH, arg3: T3): LoDashImplicitWrapper<Function3<T1, T2, T4, R>>;
906
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, plc2: PH, arg3: T3): LoDashImplicitWrapper<Function2< T2, T4, R>>;
907
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, plc1: PH, arg2: T2, arg3: T3): LoDashImplicitWrapper<Function2<T1, T4, R>>;
908
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, arg2: T2, arg3: T3): LoDashImplicitWrapper<Function1< T4, R>>;
909
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, plc1: PH, plc2: PH, plc3: PH, arg4: T4): LoDashImplicitWrapper<Function3<T1, T2, T3, R>>;
910
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, plc2: PH, plc3: PH, arg4: T4): LoDashImplicitWrapper<Function2< T2, T3, R>>;
911
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, plc1: PH, arg2: T2, plc3: PH, arg4: T4): LoDashImplicitWrapper<Function2<T1, T3, R>>;
912
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, arg2: T2, plc3: PH, arg4: T4): LoDashImplicitWrapper<Function1< T3, R>>;
913
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, plc1: PH, plc2: PH, arg3: T3, arg4: T4): LoDashImplicitWrapper<Function2<T1, T2, R>>;
914
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, plc2: PH, arg3: T3, arg4: T4): LoDashImplicitWrapper<Function1< T2, R>>;
915
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, plc1: PH, arg2: T2, arg3: T3, arg4: T4): LoDashImplicitWrapper<Function1<T1, R>>;
916
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, arg2: T2, arg3: T3, arg4: T4): LoDashImplicitWrapper<Function0< R>>;
917
+ // catch-all
918
+ (...args: any[]): LoDashImplicitWrapper<(...args: any[]) => any>;
919
+ }
920
+
921
+ interface ExplicitPartial {
922
+ // arity 0
923
+ <R>(this: LoDashExplicitWrapper<Function0<R>>): LoDashExplicitWrapper<Function0<R>>;
924
+ // arity 1
925
+ <T1, R>(this: LoDashExplicitWrapper<Function1<T1, R>>): LoDashExplicitWrapper<Function1<T1, R>>;
926
+ <T1, R>(this: LoDashExplicitWrapper<Function1<T1, R>>, arg1: T1): LoDashExplicitWrapper<Function0<R>>;
927
+ // arity 2
928
+ <T1, T2, R>(this: LoDashExplicitWrapper<Function2<T1, T2, R>>): LoDashExplicitWrapper<Function2<T1, T2, R>>;
929
+ <T1, T2, R>(this: LoDashExplicitWrapper<Function2<T1, T2, R>>, arg1: T1): LoDashExplicitWrapper<Function1< T2, R>>;
930
+ <T1, T2, R>(this: LoDashExplicitWrapper<Function2<T1, T2, R>>, plc1: PH, arg2: T2): LoDashExplicitWrapper<Function1<T1, R>>;
931
+ <T1, T2, R>(this: LoDashExplicitWrapper<Function2<T1, T2, R>>, arg1: T1, arg2: T2): LoDashExplicitWrapper<Function0< R>>;
932
+ // arity 3
933
+ <T1, T2, T3, R>(this: LoDashExplicitWrapper<Function3<T1, T2, T3, R>>): LoDashExplicitWrapper<Function3<T1, T2, T3, R>>;
934
+ <T1, T2, T3, R>(this: LoDashExplicitWrapper<Function3<T1, T2, T3, R>>, arg1: T1): LoDashExplicitWrapper<Function2< T2, T3, R>>;
935
+ <T1, T2, T3, R>(this: LoDashExplicitWrapper<Function3<T1, T2, T3, R>>, plc1: PH, arg2: T2): LoDashExplicitWrapper<Function2<T1, T3, R>>;
936
+ <T1, T2, T3, R>(this: LoDashExplicitWrapper<Function3<T1, T2, T3, R>>, arg1: T1, arg2: T2): LoDashExplicitWrapper<Function1< T3, R>>;
937
+ <T1, T2, T3, R>(this: LoDashExplicitWrapper<Function3<T1, T2, T3, R>>, plc1: PH, plc2: PH, arg3: T3): LoDashExplicitWrapper<Function2<T1, T2, R>>;
938
+ <T1, T2, T3, R>(this: LoDashExplicitWrapper<Function3<T1, T2, T3, R>>, arg1: T1, plc2: PH, arg3: T3): LoDashExplicitWrapper<Function1< T2, R>>;
939
+ <T1, T2, T3, R>(this: LoDashExplicitWrapper<Function3<T1, T2, T3, R>>, plc1: PH, arg2: T2, arg3: T3): LoDashExplicitWrapper<Function1<T1, R>>;
940
+ <T1, T2, T3, R>(this: LoDashExplicitWrapper<Function3<T1, T2, T3, R>>, arg1: T1, arg2: T2, arg3: T3): LoDashExplicitWrapper<Function0< R>>;
941
+ // arity 4
942
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>): LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>;
943
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1): LoDashExplicitWrapper<Function3< T2, T3, T4, R>>;
944
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, plc1: PH, arg2: T2): LoDashExplicitWrapper<Function3<T1, T3, T4, R>>;
945
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, arg2: T2): LoDashExplicitWrapper<Function2< T3, T4, R>>;
946
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, plc1: PH, plc2: PH, arg3: T3): LoDashExplicitWrapper<Function3<T1, T2, T4, R>>;
947
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, plc2: PH, arg3: T3): LoDashExplicitWrapper<Function2< T2, T4, R>>;
948
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, plc1: PH, arg2: T2, arg3: T3): LoDashExplicitWrapper<Function2<T1, T4, R>>;
949
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, arg2: T2, arg3: T3): LoDashExplicitWrapper<Function1< T4, R>>;
950
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, plc1: PH, plc2: PH, plc3: PH, arg4: T4): LoDashExplicitWrapper<Function3<T1, T2, T3, R>>;
951
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, plc2: PH, plc3: PH, arg4: T4): LoDashExplicitWrapper<Function2< T2, T3, R>>;
952
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, plc1: PH, arg2: T2, plc3: PH, arg4: T4): LoDashExplicitWrapper<Function2<T1, T3, R>>;
953
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, arg2: T2, plc3: PH, arg4: T4): LoDashExplicitWrapper<Function1< T3, R>>;
954
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, plc1: PH, plc2: PH, arg3: T3, arg4: T4): LoDashExplicitWrapper<Function2<T1, T2, R>>;
955
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, plc2: PH, arg3: T3, arg4: T4): LoDashExplicitWrapper<Function1< T2, R>>;
956
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, plc1: PH, arg2: T2, arg3: T3, arg4: T4): LoDashExplicitWrapper<Function1<T1, R>>;
957
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, arg2: T2, arg3: T3, arg4: T4): LoDashExplicitWrapper<Function0< R>>;
958
+ // catch-all
959
+ (...args: any[]): LoDashExplicitWrapper<(...args: any[]) => any>;
960
+ }
961
+
962
+ // partialRight
963
+
964
+ interface LoDashStatic {
965
+ /**
966
+ * This method is like _.partial except that partial arguments are appended to those provided
967
+ * to the new function.
968
+ * @param func The function to partially apply arguments to.
969
+ * @param args Arguments to be partially applied.
970
+ * @return The new partially applied function.
971
+ **/
972
+ partialRight: PartialRight;
973
+ }
974
+
975
+ interface LoDashImplicitWrapper<TValue> {
976
+ /**
977
+ * @see _.partialRight
978
+ */
979
+ partialRight: ImplicitPartialRight;
980
+ }
981
+
982
+ interface LoDashExplicitWrapper<TValue> {
983
+ /**
984
+ * @see _.partialRight
985
+ */
986
+ partialRight: ExplicitPartialRight;
987
+ }
988
+
989
+ interface PartialRight {
990
+ // arity 0
991
+ <R>(func: Function0<R>): Function0<R>;
992
+ // arity 1
993
+ <T1, R>(func: Function1<T1, R>): Function1<T1, R>;
994
+ <T1, R>(func: Function1<T1, R>, arg1: T1): Function0<R>;
995
+ // arity 2
996
+ <T1, T2, R>(func: Function2<T1, T2, R>): Function2<T1, T2, R>;
997
+ <T1, T2, R>(func: Function2<T1, T2, R>, arg1: T1, plc2: PH): Function1< T2, R>;
998
+ <T1, T2, R>(func: Function2<T1, T2, R>, arg2: T2): Function1<T1, R>;
999
+ <T1, T2, R>(func: Function2<T1, T2, R>, arg1: T1, arg2: T2): Function0< R>;
1000
+ // arity 3
1001
+ <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>): Function3<T1, T2, T3, R>;
1002
+ <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1, plc2: PH, plc3: PH): Function2< T2, T3, R>;
1003
+ <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg2: T2, plc3: PH): Function2<T1, T3, R>;
1004
+ <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1, arg2: T2, plc3: PH): Function1< T3, R>;
1005
+ <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg3: T3): Function2<T1, T2, R>;
1006
+ <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1, plc2: PH, arg3: T3): Function1< T2, R>;
1007
+ <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg2: T2, arg3: T3): Function1<T1, R>;
1008
+ <T1, T2, T3, R>(func: Function3<T1, T2, T3, R>, arg1: T1, arg2: T2, arg3: T3): Function0< R>;
1009
+ // arity 4
1010
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>): Function4<T1, T2, T3, T4, R>;
1011
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: PH, plc3: PH, plc4: PH): Function3< T2, T3, T4, R>;
1012
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg2: T2, plc3: PH, plc4: PH): Function3<T1, T3, T4, R>;
1013
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2, plc3: PH, plc4: PH): Function2< T3, T4, R>;
1014
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg3: T3, plc4: PH): Function3<T1, T2, T4, R>;
1015
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: PH, arg3: T3, plc4: PH): Function2< T2, T4, R>;
1016
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg2: T2, arg3: T3, plc4: PH): Function2<T1, T4, R>;
1017
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2, arg3: T3, plc4: PH): Function1< T4, R>;
1018
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg4: T4): Function3<T1, T2, T3, R>;
1019
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: PH, plc3: PH, arg4: T4): Function2< T2, T3, R>;
1020
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg2: T2, plc3: PH, arg4: T4): Function2<T1, T3, R>;
1021
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2, plc3: PH, arg4: T4): Function1< T3, R>;
1022
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg3: T3, arg4: T4): Function2<T1, T2, R>;
1023
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, plc2: PH, arg3: T3, arg4: T4): Function1< T2, R>;
1024
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg2: T2, arg3: T3, arg4: T4): Function1<T1, R>;
1025
+ <T1, T2, T3, T4, R>(func: Function4<T1, T2, T3, T4, R>, arg1: T1, arg2: T2, arg3: T3, arg4: T4): Function0< R>;
1026
+ // catch-all
1027
+ (func: (...args: any[]) => any, ...args: any[]): (...args: any[]) => any;
1028
+ }
1029
+
1030
+ interface ImplicitPartialRight {
1031
+ // arity 0
1032
+ <R>(this: LoDashImplicitWrapper<Function0<R>>): LoDashImplicitWrapper<Function0<R>>;
1033
+ // arity 1
1034
+ <T1, R>(this: LoDashImplicitWrapper<Function1<T1, R>>): LoDashImplicitWrapper<Function1<T1, R>>;
1035
+ <T1, R>(this: LoDashImplicitWrapper<Function1<T1, R>>, arg1: T1): LoDashImplicitWrapper<Function0<R>>;
1036
+ // arity 2
1037
+ <T1, T2, R>(this: LoDashImplicitWrapper<Function2<T1, T2, R>>): LoDashImplicitWrapper<Function2<T1, T2, R>>;
1038
+ <T1, T2, R>(this: LoDashImplicitWrapper<Function2<T1, T2, R>>, arg1: T1, plc2: PH): LoDashImplicitWrapper<Function1< T2, R>>;
1039
+ <T1, T2, R>(this: LoDashImplicitWrapper<Function2<T1, T2, R>>, arg2: T2): LoDashImplicitWrapper<Function1<T1, R>>;
1040
+ <T1, T2, R>(this: LoDashImplicitWrapper<Function2<T1, T2, R>>, arg1: T1, arg2: T2): LoDashImplicitWrapper<Function0< R>>;
1041
+ // arity 3
1042
+ <T1, T2, T3, R>(this: LoDashImplicitWrapper<Function3<T1, T2, T3, R>>): LoDashImplicitWrapper<Function3<T1, T2, T3, R>>;
1043
+ <T1, T2, T3, R>(this: LoDashImplicitWrapper<Function3<T1, T2, T3, R>>, arg1: T1, plc2: PH, plc3: PH): LoDashImplicitWrapper<Function2< T2, T3, R>>;
1044
+ <T1, T2, T3, R>(this: LoDashImplicitWrapper<Function3<T1, T2, T3, R>>, arg2: T2, plc3: PH): LoDashImplicitWrapper<Function2<T1, T3, R>>;
1045
+ <T1, T2, T3, R>(this: LoDashImplicitWrapper<Function3<T1, T2, T3, R>>, arg1: T1, arg2: T2, plc3: PH): LoDashImplicitWrapper<Function1< T3, R>>;
1046
+ <T1, T2, T3, R>(this: LoDashImplicitWrapper<Function3<T1, T2, T3, R>>, arg3: T3): LoDashImplicitWrapper<Function2<T1, T2, R>>;
1047
+ <T1, T2, T3, R>(this: LoDashImplicitWrapper<Function3<T1, T2, T3, R>>, arg1: T1, plc2: PH, arg3: T3): LoDashImplicitWrapper<Function1< T2, R>>;
1048
+ <T1, T2, T3, R>(this: LoDashImplicitWrapper<Function3<T1, T2, T3, R>>, arg2: T2, arg3: T3): LoDashImplicitWrapper<Function1<T1, R>>;
1049
+ <T1, T2, T3, R>(this: LoDashImplicitWrapper<Function3<T1, T2, T3, R>>, arg1: T1, arg2: T2, arg3: T3): LoDashImplicitWrapper<Function0< R>>;
1050
+ // arity 4
1051
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>): LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>;
1052
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, plc2: PH, plc3: PH, plc4: PH): LoDashImplicitWrapper<Function3< T2, T3, T4, R>>;
1053
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg2: T2, plc3: PH, plc4: PH): LoDashImplicitWrapper<Function3<T1, T3, T4, R>>;
1054
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, arg2: T2, plc3: PH, plc4: PH): LoDashImplicitWrapper<Function2< T3, T4, R>>;
1055
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg3: T3, plc4: PH): LoDashImplicitWrapper<Function3<T1, T2, T4, R>>;
1056
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, plc2: PH, arg3: T3, plc4: PH): LoDashImplicitWrapper<Function2< T2, T4, R>>;
1057
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg2: T2, arg3: T3, plc4: PH): LoDashImplicitWrapper<Function2<T1, T4, R>>;
1058
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, arg2: T2, arg3: T3, plc4: PH): LoDashImplicitWrapper<Function1< T4, R>>;
1059
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg4: T4): LoDashImplicitWrapper<Function3<T1, T2, T3, R>>;
1060
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, plc2: PH, plc3: PH, arg4: T4): LoDashImplicitWrapper<Function2< T2, T3, R>>;
1061
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg2: T2, plc3: PH, arg4: T4): LoDashImplicitWrapper<Function2<T1, T3, R>>;
1062
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, arg2: T2, plc3: PH, arg4: T4): LoDashImplicitWrapper<Function1< T3, R>>;
1063
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg3: T3, arg4: T4): LoDashImplicitWrapper<Function2<T1, T2, R>>;
1064
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, plc2: PH, arg3: T3, arg4: T4): LoDashImplicitWrapper<Function1< T2, R>>;
1065
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg2: T2, arg3: T3, arg4: T4): LoDashImplicitWrapper<Function1<T1, R>>;
1066
+ <T1, T2, T3, T4, R>(this: LoDashImplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, arg2: T2, arg3: T3, arg4: T4): LoDashImplicitWrapper<Function0< R>>;
1067
+ // catch-all
1068
+ (...args: any[]): LoDashImplicitWrapper<(...args: any[]) => any>;
1069
+ }
1070
+
1071
+ interface ExplicitPartialRight {
1072
+ // arity 0
1073
+ <R>(this: LoDashExplicitWrapper<Function0<R>>): LoDashExplicitWrapper<Function0<R>>;
1074
+ // arity 1
1075
+ <T1, R>(this: LoDashExplicitWrapper<Function1<T1, R>>): LoDashExplicitWrapper<Function1<T1, R>>;
1076
+ <T1, R>(this: LoDashExplicitWrapper<Function1<T1, R>>, arg1: T1): LoDashExplicitWrapper<Function0<R>>;
1077
+ // arity 2
1078
+ <T1, T2, R>(this: LoDashExplicitWrapper<Function2<T1, T2, R>>): LoDashExplicitWrapper<Function2<T1, T2, R>>;
1079
+ <T1, T2, R>(this: LoDashExplicitWrapper<Function2<T1, T2, R>>, arg1: T1, plc2: PH): LoDashExplicitWrapper<Function1< T2, R>>;
1080
+ <T1, T2, R>(this: LoDashExplicitWrapper<Function2<T1, T2, R>>, arg2: T2): LoDashExplicitWrapper<Function1<T1, R>>;
1081
+ <T1, T2, R>(this: LoDashExplicitWrapper<Function2<T1, T2, R>>, arg1: T1, arg2: T2): LoDashExplicitWrapper<Function0< R>>;
1082
+ // arity 3
1083
+ <T1, T2, T3, R>(this: LoDashExplicitWrapper<Function3<T1, T2, T3, R>>): LoDashExplicitWrapper<Function3<T1, T2, T3, R>>;
1084
+ <T1, T2, T3, R>(this: LoDashExplicitWrapper<Function3<T1, T2, T3, R>>, arg1: T1, plc2: PH, plc3: PH): LoDashExplicitWrapper<Function2< T2, T3, R>>;
1085
+ <T1, T2, T3, R>(this: LoDashExplicitWrapper<Function3<T1, T2, T3, R>>, arg2: T2, plc3: PH): LoDashExplicitWrapper<Function2<T1, T3, R>>;
1086
+ <T1, T2, T3, R>(this: LoDashExplicitWrapper<Function3<T1, T2, T3, R>>, arg1: T1, arg2: T2, plc3: PH): LoDashExplicitWrapper<Function1< T3, R>>;
1087
+ <T1, T2, T3, R>(this: LoDashExplicitWrapper<Function3<T1, T2, T3, R>>, arg3: T3): LoDashExplicitWrapper<Function2<T1, T2, R>>;
1088
+ <T1, T2, T3, R>(this: LoDashExplicitWrapper<Function3<T1, T2, T3, R>>, arg1: T1, plc2: PH, arg3: T3): LoDashExplicitWrapper<Function1< T2, R>>;
1089
+ <T1, T2, T3, R>(this: LoDashExplicitWrapper<Function3<T1, T2, T3, R>>, arg2: T2, arg3: T3): LoDashExplicitWrapper<Function1<T1, R>>;
1090
+ <T1, T2, T3, R>(this: LoDashExplicitWrapper<Function3<T1, T2, T3, R>>, arg1: T1, arg2: T2, arg3: T3): LoDashExplicitWrapper<Function0< R>>;
1091
+ // arity 4
1092
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>): LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>;
1093
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, plc2: PH, plc3: PH, plc4: PH): LoDashExplicitWrapper<Function3< T2, T3, T4, R>>;
1094
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg2: T2, plc3: PH, plc4: PH): LoDashExplicitWrapper<Function3<T1, T3, T4, R>>;
1095
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, arg2: T2, plc3: PH, plc4: PH): LoDashExplicitWrapper<Function2< T3, T4, R>>;
1096
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg3: T3, plc4: PH): LoDashExplicitWrapper<Function3<T1, T2, T4, R>>;
1097
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, plc2: PH, arg3: T3, plc4: PH): LoDashExplicitWrapper<Function2< T2, T4, R>>;
1098
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg2: T2, arg3: T3, plc4: PH): LoDashExplicitWrapper<Function2<T1, T4, R>>;
1099
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, arg2: T2, arg3: T3, plc4: PH): LoDashExplicitWrapper<Function1< T4, R>>;
1100
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg4: T4): LoDashExplicitWrapper<Function3<T1, T2, T3, R>>;
1101
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, plc2: PH, plc3: PH, arg4: T4): LoDashExplicitWrapper<Function2< T2, T3, R>>;
1102
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg2: T2, plc3: PH, arg4: T4): LoDashExplicitWrapper<Function2<T1, T3, R>>;
1103
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, arg2: T2, plc3: PH, arg4: T4): LoDashExplicitWrapper<Function1< T3, R>>;
1104
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg3: T3, arg4: T4): LoDashExplicitWrapper<Function2<T1, T2, R>>;
1105
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, plc2: PH, arg3: T3, arg4: T4): LoDashExplicitWrapper<Function1< T2, R>>;
1106
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg2: T2, arg3: T3, arg4: T4): LoDashExplicitWrapper<Function1<T1, R>>;
1107
+ <T1, T2, T3, T4, R>(this: LoDashExplicitWrapper<Function4<T1, T2, T3, T4, R>>, arg1: T1, arg2: T2, arg3: T3, arg4: T4): LoDashExplicitWrapper<Function0< R>>;
1108
+ // catch-all
1109
+ (...args: any[]): LoDashExplicitWrapper<(...args: any[]) => any>;
1110
+ }
1111
+
1112
+ // rearg
1113
+
1114
+ interface LoDashStatic {
1115
+ /**
1116
+ * Creates a function that invokes func with arguments arranged according to the specified indexes where the
1117
+ * argument value at the first index is provided as the first argument, the argument value at the second index
1118
+ * is provided as the second argument, and so on.
1119
+ * @param func The function to rearrange arguments for.
1120
+ * @param indexes The arranged argument indexes, specified as individual indexes or arrays of indexes.
1121
+ * @return Returns the new function.
1122
+ */
1123
+ rearg(func: (...args: any[]) => any, ...indexes: Array<Many<number>>): (...args: any[]) => any;
1124
+ }
1125
+
1126
+ interface LoDashImplicitWrapper<TValue> {
1127
+ /**
1128
+ * @see _.rearg
1129
+ */
1130
+ rearg(...indexes: Array<Many<number>>): LoDashImplicitWrapper<(...args: any[]) => any>;
1131
+ }
1132
+
1133
+ interface LoDashExplicitWrapper<TValue> {
1134
+ /**
1135
+ * @see _.rearg
1136
+ */
1137
+ rearg(...indexes: Array<Many<number>>): LoDashExplicitWrapper<(...args: any[]) => any>;
1138
+ }
1139
+
1140
+ // rest
1141
+
1142
+ interface LoDashStatic {
1143
+ /**
1144
+ * Creates a function that invokes func with the this binding of the created function and arguments from start
1145
+ * and beyond provided as an array.
1146
+ *
1147
+ * Note: This method is based on the rest parameter.
1148
+ *
1149
+ * @param func The function to apply a rest parameter to.
1150
+ * @param start The start position of the rest parameter.
1151
+ * @return Returns the new function.
1152
+ */
1153
+ rest(
1154
+ func: (...args: any[]) => any,
1155
+ start?: number
1156
+ ): (...args: any[]) => any;
1157
+ }
1158
+
1159
+ interface LoDashImplicitWrapper<TValue> {
1160
+ /**
1161
+ * @see _.rest
1162
+ */
1163
+ rest(start?: number): LoDashImplicitWrapper<(...args: any[]) => any>;
1164
+ }
1165
+
1166
+ interface LoDashExplicitWrapper<TValue> {
1167
+ /**
1168
+ * @see _.rest
1169
+ */
1170
+ rest(start?: number): LoDashExplicitWrapper<(...args: any[]) => any>;
1171
+ }
1172
+
1173
+ // spread
1174
+
1175
+ interface LoDashStatic {
1176
+ /**
1177
+ * Creates a function that invokes func with the this binding of the created function and an array of arguments
1178
+ * much like Function#apply.
1179
+ *
1180
+ * Note: This method is based on the spread operator.
1181
+ *
1182
+ * @param func The function to spread arguments over.
1183
+ * @return Returns the new function.
1184
+ */
1185
+ spread<TResult>(func: (...args: any[]) => TResult): (...args: any[]) => TResult;
1186
+
1187
+ /**
1188
+ * @see _.spread
1189
+ */
1190
+ spread<TResult>(func: (...args: any[]) => TResult, start: number): (...args: any[]) => TResult;
1191
+ }
1192
+
1193
+ interface LoDashImplicitWrapper<TValue> {
1194
+ /**
1195
+ * @see _.spread
1196
+ */
1197
+ spread<TResult>(this: LoDashImplicitWrapper<(...args: any[]) => TResult>): LoDashImplicitWrapper<(...args: any[]) => TResult>;
1198
+
1199
+ /**
1200
+ * @see _.spread
1201
+ */
1202
+ spread<TResult>(this: LoDashImplicitWrapper<(...args: any[]) => TResult>, start: number): LoDashImplicitWrapper<(...args: any[]) => TResult>;
1203
+ }
1204
+
1205
+ interface LoDashExplicitWrapper<TValue> {
1206
+ /**
1207
+ * @see _.spread
1208
+ */
1209
+ spread<TResult>(this: LoDashExplicitWrapper<(...args: any[]) => TResult>): LoDashExplicitWrapper<(...args: any[]) => TResult>;
1210
+
1211
+ /**
1212
+ * @see _.spread
1213
+ */
1214
+ spread<TResult>(this: LoDashExplicitWrapper<(...args: any[]) => TResult>, start: number): LoDashExplicitWrapper<(...args: any[]) => TResult>;
1215
+ }
1216
+
1217
+ // throttle
1218
+
1219
+ interface ThrottleSettings {
1220
+ /**
1221
+ * If you'd like to disable the leading-edge call, pass this as false.
1222
+ */
1223
+ leading?: boolean;
1224
+
1225
+ /**
1226
+ * If you'd like to disable the execution on the trailing-edge, pass false.
1227
+ */
1228
+ trailing?: boolean;
1229
+ }
1230
+
1231
+ interface LoDashStatic {
1232
+ /**
1233
+ * Creates a throttled function that only invokes func at most once per every wait milliseconds. The throttled
1234
+ * function comes with a cancel method to cancel delayed invocations and a flush method to immediately invoke
1235
+ * them. Provide an options object to indicate that func should be invoked on the leading and/or trailing edge
1236
+ * of the wait timeout. Subsequent calls to the throttled function return the result of the last func call.
1237
+ *
1238
+ * Note: If leading and trailing options are true, func is invoked on the trailing edge of the timeout only if
1239
+ * the the throttled function is invoked more than once during the wait timeout.
1240
+ *
1241
+ * @param func The function to throttle.
1242
+ * @param wait The number of milliseconds to throttle invocations to.
1243
+ * @param options The options object.
1244
+ * @param options.leading Specify invoking on the leading edge of the timeout.
1245
+ * @param options.trailing Specify invoking on the trailing edge of the timeout.
1246
+ * @return Returns the new throttled function.
1247
+ */
1248
+ throttle<T extends (...args: any[]) => any>(
1249
+ func: T,
1250
+ wait?: number,
1251
+ options?: ThrottleSettings
1252
+ ): T & Cancelable;
1253
+ }
1254
+
1255
+ interface LoDashImplicitWrapper<TValue> {
1256
+ /**
1257
+ * @see _.throttle
1258
+ */
1259
+ throttle(
1260
+ wait?: number,
1261
+ options?: ThrottleSettings
1262
+ ): LoDashImplicitWrapper<TValue & Cancelable>;
1263
+ }
1264
+
1265
+ interface LoDashExplicitWrapper<TValue> {
1266
+ /**
1267
+ * @see _.throttle
1268
+ */
1269
+ throttle(
1270
+ wait?: number,
1271
+ options?: ThrottleSettings
1272
+ ): LoDashExplicitWrapper<TValue & Cancelable>;
1273
+ }
1274
+
1275
+ // unary
1276
+
1277
+ interface LoDashStatic {
1278
+ /**
1279
+ * Creates a function that accepts up to one argument, ignoring any
1280
+ * additional arguments.
1281
+ *
1282
+ * @category Function
1283
+ * @param func The function to cap arguments for.
1284
+ * @returns Returns the new function.
1285
+ * @example
1286
+ *
1287
+ * _.map(['6', '8', '10'], _.unary(parseInt));
1288
+ * // => [6, 8, 10]
1289
+ */
1290
+ unary<T, TResult>(func: (arg1: T, ...args: any[]) => TResult): (arg1: T) => TResult;
1291
+ }
1292
+
1293
+ interface LoDashImplicitWrapper<TValue> {
1294
+ /**
1295
+ * @see _.unary
1296
+ */
1297
+ unary<T, TResult>(this: LoDashImplicitWrapper<(arg1: T, ...args: any[]) => TResult>): LoDashImplicitWrapper<(arg1: T) => TResult>;
1298
+ }
1299
+
1300
+ interface LoDashExplicitWrapper<TValue> {
1301
+ /**
1302
+ * @see _.unary
1303
+ */
1304
+ unary<T, TResult>(this: LoDashExplicitWrapper<(arg1: T, ...args: any[]) => TResult>): LoDashExplicitWrapper<(arg1: T) => TResult>;
1305
+ }
1306
+
1307
+ // wrap
1308
+
1309
+ interface LoDashStatic {
1310
+ /**
1311
+ * Creates a function that provides value to the wrapper function as its first argument. Any additional
1312
+ * arguments provided to the function are appended to those provided to the wrapper function. The wrapper is
1313
+ * invoked with the this binding of the created function.
1314
+ *
1315
+ * @param value The value to wrap.
1316
+ * @param wrapper The wrapper function.
1317
+ * @return Returns the new function.
1318
+ */
1319
+ wrap<T, TArgs, TResult>(
1320
+ value: T,
1321
+ wrapper: (value: T, ...args: TArgs[]) => TResult
1322
+ ): (...args: TArgs[]) => TResult;
1323
+
1324
+ /**
1325
+ * @see _.wrap
1326
+ */
1327
+ wrap<T, TResult>(
1328
+ value: T,
1329
+ wrapper: (value: T, ...args: any[]) => TResult
1330
+ ): (...args: any[]) => TResult;
1331
+ }
1332
+
1333
+ interface LoDashImplicitWrapper<TValue> {
1334
+ /**
1335
+ * @see _.wrap
1336
+ */
1337
+ wrap<TArgs, TResult>(
1338
+ wrapper: (value: TValue, ...args: TArgs[]) => TResult
1339
+ ): LoDashImplicitWrapper<(...args: TArgs[]) => TResult>;
1340
+
1341
+ /**
1342
+ * @see _.wrap
1343
+ */
1344
+ wrap<TResult>(
1345
+ wrapper: (value: TValue, ...args: any[]) => TResult
1346
+ ): LoDashImplicitWrapper<(...args: any[]) => TResult>;
1347
+ }
1348
+
1349
+ interface LoDashExplicitWrapper<TValue> {
1350
+ /**
1351
+ * @see _.wrap
1352
+ */
1353
+ /**
1354
+ * @see _.wrap
1355
+ */
1356
+ wrap<TArgs, TResult>(
1357
+ wrapper: (value: TValue, ...args: TArgs[]) => TResult
1358
+ ): LoDashExplicitWrapper<(...args: TArgs[]) => TResult>;
1359
+
1360
+ /**
1361
+ * @see _.wrap
1362
+ */
1363
+ wrap<TResult>(
1364
+ wrapper: (value: TValue, ...args: any[]) => TResult
1365
+ ): LoDashExplicitWrapper<(...args: any[]) => TResult>;
1366
+ }
1367
+ }