@modern-js/utils 2.12.1-alpha.1 → 2.12.1-alpha.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (271) hide show
  1. package/dist/cjs/compiled.js +3 -3
  2. package/dist/cjs/import.js +1 -1
  3. package/dist/compiled/address/index.js +1 -0
  4. package/dist/compiled/address/lib/address.d.ts +28 -0
  5. package/dist/compiled/address/package.json +1 -0
  6. package/dist/compiled/ajv/codegen.js +1 -0
  7. package/dist/compiled/ajv/index.js +9 -0
  8. package/dist/compiled/ajv/license +22 -0
  9. package/dist/compiled/ajv/package.json +1 -0
  10. package/dist/compiled/ajv/types/ajv.d.ts +16 -0
  11. package/dist/compiled/ajv/types/compile/codegen/code.d.ts +40 -0
  12. package/dist/compiled/ajv/types/compile/codegen/index.d.ts +79 -0
  13. package/dist/compiled/ajv/types/compile/codegen/scope.d.ts +79 -0
  14. package/dist/compiled/ajv/types/compile/errors.d.ts +13 -0
  15. package/dist/compiled/ajv/types/compile/index.d.ts +80 -0
  16. package/dist/compiled/ajv/types/compile/ref_error.d.ts +6 -0
  17. package/dist/compiled/ajv/types/compile/resolve.d.ts +12 -0
  18. package/dist/compiled/ajv/types/compile/rules.d.ts +28 -0
  19. package/dist/compiled/ajv/types/compile/util.d.ts +40 -0
  20. package/dist/compiled/ajv/types/compile/validate/index.d.ts +42 -0
  21. package/dist/compiled/ajv/types/compile/validate/subschema.d.ts +47 -0
  22. package/dist/compiled/ajv/types/core.d.ts +173 -0
  23. package/dist/compiled/ajv/types/runtime/validation_error.d.ts +7 -0
  24. package/dist/compiled/ajv/types/types/index.d.ts +183 -0
  25. package/dist/compiled/ajv/types/types/json-schema.d.ts +124 -0
  26. package/dist/compiled/ajv/types/types/jtd-schema.d.ts +169 -0
  27. package/dist/compiled/ajv/types/vocabularies/errors.d.ts +1 -0
  28. package/dist/compiled/ajv/uri-js.d.ts +59 -0
  29. package/dist/compiled/ajv-keywords/index.d.ts +1 -0
  30. package/dist/compiled/ajv-keywords/index.js +1 -0
  31. package/dist/compiled/ajv-keywords/license +21 -0
  32. package/dist/compiled/ajv-keywords/package.json +1 -0
  33. package/dist/compiled/better-ajv-errors/index.d.ts +1 -0
  34. package/dist/compiled/better-ajv-errors/index.js +1 -0
  35. package/dist/compiled/better-ajv-errors/license +13 -0
  36. package/dist/compiled/better-ajv-errors/package.json +1 -0
  37. package/dist/compiled/browserslist/index.d.ts +178 -0
  38. package/dist/compiled/browserslist/index.js +1 -0
  39. package/dist/compiled/browserslist/license +20 -0
  40. package/dist/compiled/browserslist/package.json +1 -0
  41. package/dist/compiled/chalk/index.d.ts +415 -0
  42. package/dist/compiled/chalk/index.js +1 -0
  43. package/dist/compiled/chalk/license +9 -0
  44. package/dist/compiled/chalk/package.json +1 -0
  45. package/dist/compiled/chokidar/anymatch/index.d.ts +19 -0
  46. package/dist/compiled/chokidar/fsevents.node +0 -0
  47. package/dist/compiled/chokidar/index.js +40 -0
  48. package/dist/compiled/chokidar/license +21 -0
  49. package/dist/compiled/chokidar/package.json +1 -0
  50. package/dist/compiled/chokidar/types/index.d.ts +188 -0
  51. package/dist/compiled/commander/index.js +1 -0
  52. package/dist/compiled/commander/license +22 -0
  53. package/dist/compiled/commander/package.json +1 -0
  54. package/dist/compiled/commander/typings/index.d.ts +890 -0
  55. package/dist/compiled/debug/index.d.ts +54 -0
  56. package/dist/compiled/debug/index.js +1 -0
  57. package/dist/compiled/debug/license +20 -0
  58. package/dist/compiled/debug/ms/index.d.ts +25 -0
  59. package/dist/compiled/debug/package.json +1 -0
  60. package/dist/compiled/dotenv/index.js +1 -0
  61. package/dist/compiled/dotenv/license +23 -0
  62. package/dist/compiled/dotenv/package.json +1 -0
  63. package/dist/compiled/dotenv/types/index.d.ts +59 -0
  64. package/dist/compiled/dotenv-expand/index.d.ts +15 -0
  65. package/dist/compiled/dotenv-expand/index.js +1 -0
  66. package/dist/compiled/dotenv-expand/license +24 -0
  67. package/dist/compiled/dotenv-expand/package.json +1 -0
  68. package/dist/compiled/execa/index.d.ts +564 -0
  69. package/dist/compiled/execa/index.js +1 -0
  70. package/dist/compiled/execa/license +9 -0
  71. package/dist/compiled/execa/package.json +1 -0
  72. package/dist/compiled/fast-glob/@nodelib/fs.scandir/out/adapters/fs.d.ts +20 -0
  73. package/dist/compiled/fast-glob/@nodelib/fs.scandir/out/index.d.ts +12 -0
  74. package/dist/compiled/fast-glob/@nodelib/fs.scandir/out/providers/async.d.ts +7 -0
  75. package/dist/compiled/fast-glob/@nodelib/fs.scandir/out/settings.d.ts +20 -0
  76. package/dist/compiled/fast-glob/@nodelib/fs.scandir/out/types/index.d.ts +20 -0
  77. package/dist/compiled/fast-glob/@nodelib/fs.stat/out/adapters/fs.d.ts +13 -0
  78. package/dist/compiled/fast-glob/@nodelib/fs.stat/out/index.d.ts +12 -0
  79. package/dist/compiled/fast-glob/@nodelib/fs.stat/out/providers/async.d.ts +4 -0
  80. package/dist/compiled/fast-glob/@nodelib/fs.stat/out/settings.d.ts +16 -0
  81. package/dist/compiled/fast-glob/@nodelib/fs.stat/out/types/index.d.ts +4 -0
  82. package/dist/compiled/fast-glob/@nodelib/fs.walk/out/index.d.ts +14 -0
  83. package/dist/compiled/fast-glob/@nodelib/fs.walk/out/providers/async.d.ts +12 -0
  84. package/dist/compiled/fast-glob/@nodelib/fs.walk/out/readers/async.d.ts +30 -0
  85. package/dist/compiled/fast-glob/@nodelib/fs.walk/out/readers/reader.d.ts +6 -0
  86. package/dist/compiled/fast-glob/@nodelib/fs.walk/out/settings.d.ts +30 -0
  87. package/dist/compiled/fast-glob/@nodelib/fs.walk/out/types/index.d.ts +8 -0
  88. package/dist/compiled/fast-glob/index.js +37 -0
  89. package/dist/compiled/fast-glob/license +21 -0
  90. package/dist/compiled/fast-glob/out/index.d.ts +27 -0
  91. package/dist/compiled/fast-glob/out/managers/tasks.d.ts +22 -0
  92. package/dist/compiled/fast-glob/out/settings.d.ts +164 -0
  93. package/dist/compiled/fast-glob/out/types/index.d.ts +31 -0
  94. package/dist/compiled/fast-glob/package.json +1 -0
  95. package/dist/compiled/filesize/filesize.d.ts +131 -0
  96. package/dist/compiled/filesize/index.js +9 -0
  97. package/dist/compiled/filesize/license +28 -0
  98. package/dist/compiled/filesize/package.json +1 -0
  99. package/dist/compiled/fs-extra/index.d.ts +563 -0
  100. package/dist/compiled/fs-extra/index.js +1 -0
  101. package/dist/compiled/fs-extra/license +15 -0
  102. package/dist/compiled/fs-extra/package.json +1 -0
  103. package/dist/compiled/glob/index.d.ts +91 -0
  104. package/dist/compiled/glob/index.js +1 -0
  105. package/dist/compiled/glob/license +21 -0
  106. package/dist/compiled/glob/minimatch/index.d.ts +204 -0
  107. package/dist/compiled/glob/package.json +1 -0
  108. package/dist/compiled/globby/index.d.ts +186 -0
  109. package/dist/compiled/globby/index.js +1 -0
  110. package/dist/compiled/globby/license +9 -0
  111. package/dist/compiled/globby/package.json +1 -0
  112. package/dist/compiled/gzip-size/index.d.ts +96 -0
  113. package/dist/compiled/gzip-size/index.js +1 -0
  114. package/dist/compiled/gzip-size/license +9 -0
  115. package/dist/compiled/gzip-size/package.json +1 -0
  116. package/dist/compiled/import-lazy/index.d.ts +26 -0
  117. package/dist/compiled/import-lazy/index.js +1 -0
  118. package/dist/compiled/import-lazy/license +9 -0
  119. package/dist/compiled/import-lazy/package.json +1 -0
  120. package/dist/compiled/inquirer/index.d.ts +997 -0
  121. package/dist/compiled/inquirer/index.js +9 -0
  122. package/dist/compiled/inquirer/lib/objects/choice.d.ts +65 -0
  123. package/dist/compiled/inquirer/lib/objects/choices.d.ts +206 -0
  124. package/dist/compiled/inquirer/lib/objects/separator.d.ts +37 -0
  125. package/dist/compiled/inquirer/lib/ui/baseUI.d.ts +37 -0
  126. package/dist/compiled/inquirer/lib/ui/bottom-bar.d.ts +65 -0
  127. package/dist/compiled/inquirer/lib/ui/prompt.d.ts +104 -0
  128. package/dist/compiled/inquirer/license +22 -0
  129. package/dist/compiled/inquirer/package.json +1 -0
  130. package/dist/compiled/inquirer/through/index.d.ts +25 -0
  131. package/dist/compiled/js-yaml/index.d.ts +154 -0
  132. package/dist/compiled/js-yaml/index.js +1 -0
  133. package/dist/compiled/js-yaml/license +21 -0
  134. package/dist/compiled/js-yaml/package.json +1 -0
  135. package/dist/compiled/json5/index.js +1 -0
  136. package/dist/compiled/json5/lib/index.d.ts +4 -0
  137. package/dist/compiled/json5/lib/parse.d.ts +15 -0
  138. package/dist/compiled/json5/lib/stringify.d.ts +89 -0
  139. package/dist/compiled/json5/package.json +1 -0
  140. package/dist/compiled/lodash/common/array.d.ts +2126 -0
  141. package/dist/compiled/lodash/common/collection.d.ts +1930 -0
  142. package/dist/compiled/lodash/common/common.d.ts +280 -0
  143. package/dist/compiled/lodash/common/date.d.ts +23 -0
  144. package/dist/compiled/lodash/common/function.d.ts +1446 -0
  145. package/dist/compiled/lodash/common/lang.d.ts +1693 -0
  146. package/dist/compiled/lodash/common/math.d.ts +405 -0
  147. package/dist/compiled/lodash/common/number.d.ts +131 -0
  148. package/dist/compiled/lodash/common/object.d.ts +2519 -0
  149. package/dist/compiled/lodash/common/seq.d.ts +210 -0
  150. package/dist/compiled/lodash/common/string.d.ts +788 -0
  151. package/dist/compiled/lodash/common/util.d.ts +1220 -0
  152. package/dist/compiled/lodash/index.d.ts +46 -0
  153. package/dist/compiled/lodash/index.js +5 -0
  154. package/dist/compiled/lodash/license +47 -0
  155. package/dist/compiled/lodash/package.json +1 -0
  156. package/dist/compiled/mime-types/index.d.ts +14 -0
  157. package/dist/compiled/mime-types/index.js +14 -0
  158. package/dist/compiled/mime-types/license +23 -0
  159. package/dist/compiled/mime-types/package.json +1 -0
  160. package/dist/compiled/minimist/index.d.ts +95 -0
  161. package/dist/compiled/minimist/index.js +1 -0
  162. package/dist/compiled/minimist/license +18 -0
  163. package/dist/compiled/minimist/package.json +1 -0
  164. package/dist/compiled/nanoid/index.d.ts +91 -0
  165. package/dist/compiled/nanoid/index.js +1 -0
  166. package/dist/compiled/nanoid/license +20 -0
  167. package/dist/compiled/nanoid/package.json +1 -0
  168. package/dist/compiled/ora/cli-spinners/index.d.ts +125 -0
  169. package/dist/compiled/ora/index.d.ts +277 -0
  170. package/dist/compiled/ora/index.js +3 -0
  171. package/dist/compiled/ora/license +9 -0
  172. package/dist/compiled/ora/package.json +1 -0
  173. package/dist/compiled/pkg-up/index.d.ts +48 -0
  174. package/dist/compiled/pkg-up/index.js +1 -0
  175. package/dist/compiled/pkg-up/license +9 -0
  176. package/dist/compiled/pkg-up/package.json +1 -0
  177. package/dist/compiled/recursive-readdir/index.d.ts +21 -0
  178. package/dist/compiled/recursive-readdir/index.js +1 -0
  179. package/dist/compiled/recursive-readdir/license +21 -0
  180. package/dist/compiled/recursive-readdir/package.json +1 -0
  181. package/dist/compiled/schema-utils3/index.d.ts +1 -0
  182. package/dist/compiled/schema-utils3/index.js +3 -0
  183. package/dist/compiled/schema-utils3/license +20 -0
  184. package/dist/compiled/schema-utils3/package.json +1 -0
  185. package/dist/compiled/semver/classes/comparator.d.ts +17 -0
  186. package/dist/compiled/semver/classes/range.d.ts +21 -0
  187. package/dist/compiled/semver/classes/semver.d.ts +62 -0
  188. package/dist/compiled/semver/functions/clean.d.ts +8 -0
  189. package/dist/compiled/semver/functions/cmp.d.ts +16 -0
  190. package/dist/compiled/semver/functions/coerce.d.ts +12 -0
  191. package/dist/compiled/semver/functions/compare-build.d.ts +16 -0
  192. package/dist/compiled/semver/functions/compare-loose.d.ts +5 -0
  193. package/dist/compiled/semver/functions/compare.d.ts +20 -0
  194. package/dist/compiled/semver/functions/diff.d.ts +13 -0
  195. package/dist/compiled/semver/functions/eq.d.ts +9 -0
  196. package/dist/compiled/semver/functions/gt.d.ts +9 -0
  197. package/dist/compiled/semver/functions/gte.d.ts +9 -0
  198. package/dist/compiled/semver/functions/inc.d.ts +15 -0
  199. package/dist/compiled/semver/functions/lt.d.ts +9 -0
  200. package/dist/compiled/semver/functions/lte.d.ts +8 -0
  201. package/dist/compiled/semver/functions/major.d.ts +9 -0
  202. package/dist/compiled/semver/functions/minor.d.ts +9 -0
  203. package/dist/compiled/semver/functions/neq.d.ts +9 -0
  204. package/dist/compiled/semver/functions/parse.d.ts +12 -0
  205. package/dist/compiled/semver/functions/patch.d.ts +9 -0
  206. package/dist/compiled/semver/functions/prerelease.d.ts +12 -0
  207. package/dist/compiled/semver/functions/rcompare.d.ts +15 -0
  208. package/dist/compiled/semver/functions/rsort.d.ts +9 -0
  209. package/dist/compiled/semver/functions/satisfies.d.ts +14 -0
  210. package/dist/compiled/semver/functions/sort.d.ts +9 -0
  211. package/dist/compiled/semver/functions/valid.d.ts +11 -0
  212. package/dist/compiled/semver/index.d.ts +133 -0
  213. package/dist/compiled/semver/index.js +1 -0
  214. package/dist/compiled/semver/internals/identifiers.d.ts +13 -0
  215. package/dist/compiled/semver/license +15 -0
  216. package/dist/compiled/semver/package.json +1 -0
  217. package/dist/compiled/semver/ranges/gtr.d.ts +14 -0
  218. package/dist/compiled/semver/ranges/intersects.d.ts +13 -0
  219. package/dist/compiled/semver/ranges/ltr.d.ts +14 -0
  220. package/dist/compiled/semver/ranges/max-satisfying.d.ts +14 -0
  221. package/dist/compiled/semver/ranges/min-satisfying.d.ts +14 -0
  222. package/dist/compiled/semver/ranges/min-version.d.ts +10 -0
  223. package/dist/compiled/semver/ranges/outside.d.ts +15 -0
  224. package/dist/compiled/semver/ranges/simplify.d.ts +14 -0
  225. package/dist/compiled/semver/ranges/subset.d.ts +13 -0
  226. package/dist/compiled/semver/ranges/to-comparators.d.ts +9 -0
  227. package/dist/compiled/semver/ranges/valid.d.ts +12 -0
  228. package/dist/compiled/signale/index.d.ts +162 -0
  229. package/dist/compiled/signale/index.js +1 -0
  230. package/dist/compiled/signale/package.json +1 -0
  231. package/dist/compiled/slash/index.d.ts +25 -0
  232. package/dist/compiled/slash/index.js +1 -0
  233. package/dist/compiled/slash/license +9 -0
  234. package/dist/compiled/slash/package.json +1 -0
  235. package/dist/compiled/strip-ansi/index.d.ts +17 -0
  236. package/dist/compiled/strip-ansi/index.js +1 -0
  237. package/dist/compiled/strip-ansi/license +9 -0
  238. package/dist/compiled/strip-ansi/package.json +1 -0
  239. package/dist/compiled/tsconfig-paths/index.js +1 -0
  240. package/dist/compiled/tsconfig-paths/lib/config-loader.d.ts +33 -0
  241. package/dist/compiled/tsconfig-paths/lib/filesystem.d.ts +34 -0
  242. package/dist/compiled/tsconfig-paths/lib/index.d.ts +5 -0
  243. package/dist/compiled/tsconfig-paths/lib/mapping-entry.d.ts +18 -0
  244. package/dist/compiled/tsconfig-paths/lib/match-path-async.d.ts +21 -0
  245. package/dist/compiled/tsconfig-paths/lib/match-path-sync.d.ts +32 -0
  246. package/dist/compiled/tsconfig-paths/lib/register.d.ts +12 -0
  247. package/dist/compiled/tsconfig-paths/lib/try-path.d.ts +15 -0
  248. package/dist/compiled/tsconfig-paths/lib/tsconfig-loader.d.ts +28 -0
  249. package/dist/compiled/tsconfig-paths/license +21 -0
  250. package/dist/compiled/tsconfig-paths/package.json +1 -0
  251. package/dist/compiled/upath/index.js +1 -0
  252. package/dist/compiled/upath/license +22 -0
  253. package/dist/compiled/upath/package.json +1 -0
  254. package/dist/compiled/upath/upath.d.ts +241 -0
  255. package/dist/compiled/url-join/index.d.ts +17 -0
  256. package/dist/compiled/url-join/index.js +1 -0
  257. package/dist/compiled/url-join/license +21 -0
  258. package/dist/compiled/url-join/package.json +1 -0
  259. package/dist/compiled/webpack-chain/index.js +1 -0
  260. package/dist/compiled/webpack-chain/license +373 -0
  261. package/dist/compiled/webpack-chain/package.json +1 -0
  262. package/dist/compiled/webpack-chain/types/index.d.ts +388 -0
  263. package/dist/compiled/webpack-dev-middleware/index.js +7 -0
  264. package/dist/compiled/webpack-dev-middleware/license +20 -0
  265. package/dist/compiled/webpack-dev-middleware/package.json +1 -0
  266. package/dist/compiled/webpack-dev-middleware/types/index.d.ts +262 -0
  267. package/dist/esm/compiled.js +3 -3
  268. package/dist/esm/import.js +1 -1
  269. package/dist/esm-node/compiled.js +3 -3
  270. package/dist/esm-node/import.js +1 -1
  271. package/package.json +1 -1
@@ -0,0 +1,2519 @@
1
+ import _ = require("../index");
2
+ declare module "../index" {
3
+ interface LoDashStatic {
4
+ /**
5
+ * Assigns own enumerable properties of source objects to the destination
6
+ * object. Source objects are applied from left to right. Subsequent sources
7
+ * overwrite property assignments of previous sources.
8
+ *
9
+ * **Note:** This method mutates `object` and is loosely based on
10
+ * [`Object.assign`](https://mdn.io/Object/assign).
11
+ *
12
+ * @category Object
13
+ * @param object The destination object.
14
+ * @param [sources] The source objects.
15
+ * @returns Returns `object`.
16
+ * @example
17
+ *
18
+ * function Foo() {
19
+ * this.c = 3;
20
+ * }
21
+ *
22
+ * function Bar() {
23
+ * this.e = 5;
24
+ * }
25
+ *
26
+ * Foo.prototype.d = 4;
27
+ * Bar.prototype.f = 6;
28
+ *
29
+ * _.assign({ 'a': 1 }, new Foo, new Bar);
30
+ * // => { 'a': 1, 'c': 3, 'e': 5 }
31
+ */
32
+ assign<TObject, TSource>(object: TObject, source: TSource): TObject & TSource;
33
+ /**
34
+ * @see _.assign
35
+ */
36
+ assign<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2): TObject & TSource1 & TSource2;
37
+ /**
38
+ * @see _.assign
39
+ */
40
+ assign<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3): TObject & TSource1 & TSource2 & TSource3;
41
+ /**
42
+ * @see _.assign
43
+ */
44
+ assign<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): TObject & TSource1 & TSource2 & TSource3 & TSource4;
45
+ /**
46
+ * @see _.assign
47
+ */
48
+ assign<TObject>(object: TObject): TObject;
49
+ /**
50
+ * @see _.assign
51
+ */
52
+ assign(object: any, ...otherArgs: any[]): any;
53
+ }
54
+ interface Object<T> {
55
+ /**
56
+ * @see _.assign
57
+ */
58
+ assign<TSource>(source: TSource): Object<T & TSource>;
59
+ /**
60
+ * @see _.assign
61
+ */
62
+ assign<TSource1, TSource2>(source1: TSource1, source2: TSource2): Object<T & TSource1 & TSource2>;
63
+ /**
64
+ * @see _.assign
65
+ */
66
+ assign<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): Object<T & TSource1 & TSource2 & TSource3>;
67
+ /**
68
+ * @see _.assign
69
+ */
70
+ assign<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
71
+ /**
72
+ * @see _.assign
73
+ */
74
+ assign(): Object<T>;
75
+ /**
76
+ * @see _.assign
77
+ */
78
+ assign(...otherArgs: any[]): Object<any>;
79
+ }
80
+ interface ObjectChain<T> {
81
+ /**
82
+ * @see _.assign
83
+ */
84
+ assign<TSource>(source: TSource): ObjectChain<T & TSource>;
85
+ /**
86
+ * @see _.assign
87
+ */
88
+ assign<TSource1, TSource2>(source1: TSource1, source2: TSource2): ObjectChain<T & TSource1 & TSource2>;
89
+ /**
90
+ * @see _.assign
91
+ */
92
+ assign<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): ObjectChain<T & TSource1 & TSource2 & TSource3>;
93
+ /**
94
+ * @see _.assign
95
+ */
96
+ assign<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
97
+ /**
98
+ * @see _.assign
99
+ */
100
+ assign(): ObjectChain<T>;
101
+ /**
102
+ * @see _.assign
103
+ */
104
+ assign(...otherArgs: any[]): ObjectChain<any>;
105
+ }
106
+ interface LoDashStatic {
107
+ /**
108
+ * This method is like `_.assign` except that it iterates over own and
109
+ * inherited source properties.
110
+ *
111
+ * **Note:** This method mutates `object`.
112
+ *
113
+ * @alias extend
114
+ * @category Object
115
+ * @param object The destination object.
116
+ * @param [sources] The source objects.
117
+ * @returns Returns `object`.
118
+ * @example
119
+ *
120
+ * function Foo() {
121
+ * this.b = 2;
122
+ * }
123
+ *
124
+ * function Bar() {
125
+ * this.d = 4;
126
+ * }
127
+ *
128
+ * Foo.prototype.c = 3;
129
+ * Bar.prototype.e = 5;
130
+ *
131
+ * _.assignIn({ 'a': 1 }, new Foo, new Bar);
132
+ * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5 }
133
+ */
134
+ assignIn<TObject, TSource>(object: TObject, source: TSource): TObject & TSource;
135
+ /**
136
+ * @see _.assignIn
137
+ */
138
+ assignIn<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2): TObject & TSource1 & TSource2;
139
+ /**
140
+ * @see _.assignIn
141
+ */
142
+ assignIn<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3): TObject & TSource1 & TSource2 & TSource3;
143
+ /**
144
+ * @see _.assignIn
145
+ */
146
+ assignIn<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): TObject & TSource1 & TSource2 & TSource3 & TSource4;
147
+ /**
148
+ * @see _.assignIn
149
+ */
150
+ assignIn<TObject>(object: TObject): TObject;
151
+ /**
152
+ * @see _.assignIn
153
+ */
154
+ assignIn<TResult>(object: any, ...otherArgs: any[]): TResult;
155
+ }
156
+ interface Object<T> {
157
+ /**
158
+ * @see _.assignIn
159
+ */
160
+ assignIn<TSource>(source: TSource): Object<T & TSource>;
161
+ /**
162
+ * @see _.assignIn
163
+ */
164
+ assignIn<TSource1, TSource2>(source1: TSource1, source2: TSource2): Object<T & TSource1 & TSource2>;
165
+ /**
166
+ * @see _.assignIn
167
+ */
168
+ assignIn<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): Object<T & TSource1 & TSource2 & TSource3>;
169
+ /**
170
+ * @see _.assignIn
171
+ */
172
+ assignIn<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
173
+ /**
174
+ * @see _.assignIn
175
+ */
176
+ assignIn(): Object<T>;
177
+ /**
178
+ * @see _.assignIn
179
+ */
180
+ assignIn<TResult>(...otherArgs: any[]): Object<TResult>;
181
+ }
182
+ interface ObjectChain<T> {
183
+ /**
184
+ * @see _.assignIn
185
+ */
186
+ assignIn<TSource>(source: TSource): ObjectChain<T & TSource>;
187
+ /**
188
+ * @see _.assignIn
189
+ */
190
+ assignIn<TSource1, TSource2>(source1: TSource1, source2: TSource2): ObjectChain<T & TSource1 & TSource2>;
191
+ /**
192
+ * @see _.assignIn
193
+ */
194
+ assignIn<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): ObjectChain<T & TSource1 & TSource2 & TSource3>;
195
+ /**
196
+ * @see _.assignIn
197
+ */
198
+ assignIn<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
199
+ /**
200
+ * @see _.assignIn
201
+ */
202
+ assignIn(): ObjectChain<T>;
203
+ /**
204
+ * @see _.assignIn
205
+ */
206
+ assignIn(...otherArgs: any[]): ObjectChain<any>;
207
+ }
208
+ type AssignCustomizer = (objectValue: any, sourceValue: any, key?: string, object?: {}, source?: {}) => any;
209
+ interface LoDashStatic {
210
+ /**
211
+ * This method is like `_.assignIn` except that it accepts `customizer` which
212
+ * is invoked to produce the assigned values. If `customizer` returns `undefined`
213
+ * assignment is handled by the method instead. The `customizer` is invoked
214
+ * with five arguments: (objValue, srcValue, key, object, source).
215
+ *
216
+ * **Note:** This method mutates `object`.
217
+ *
218
+ * @alias extendWith
219
+ * @category Object
220
+ * @param object The destination object.
221
+ * @param sources The source objects.
222
+ * @param [customizer] The function to customize assigned values.
223
+ * @returns Returns `object`.
224
+ * @example
225
+ *
226
+ * function customizer(objValue, srcValue) {
227
+ * return _.isUndefined(objValue) ? srcValue : objValue;
228
+ * }
229
+ *
230
+ * var defaults = _.partialRight(_.assignInWith, customizer);
231
+ *
232
+ * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
233
+ * // => { 'a': 1, 'b': 2 }
234
+ */
235
+ assignInWith<TObject, TSource>(object: TObject, source: TSource, customizer: AssignCustomizer): TObject & TSource;
236
+ /**
237
+ * @see _.assignInWith
238
+ */
239
+ assignInWith<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2, customizer: AssignCustomizer): TObject & TSource1 & TSource2;
240
+ /**
241
+ * @see _.assignInWith
242
+ */
243
+ assignInWith<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): TObject & TSource1 & TSource2 & TSource3;
244
+ /**
245
+ * @see _.assignInWith
246
+ */
247
+ assignInWith<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): TObject & TSource1 & TSource2 & TSource3 & TSource4;
248
+ /**
249
+ * @see _.assignInWith
250
+ */
251
+ assignInWith<TObject>(object: TObject): TObject;
252
+ /**
253
+ * @see _.assignInWith
254
+ */
255
+ assignInWith<TResult>(object: any, ...otherArgs: any[]): TResult;
256
+ }
257
+ interface Object<T> {
258
+ /**
259
+ * @see _.assignInWith
260
+ */
261
+ assignInWith<TSource>(source: TSource, customizer: AssignCustomizer): Object<T & TSource>;
262
+ /**
263
+ * @see _.assignInWith
264
+ */
265
+ assignInWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: AssignCustomizer): Object<T & TSource1 & TSource2>;
266
+ /**
267
+ * @see _.assignInWith
268
+ */
269
+ assignInWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): Object<T & TSource1 & TSource2 & TSource3>;
270
+ /**
271
+ * @see _.assignInWith
272
+ */
273
+ assignInWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
274
+ /**
275
+ * @see _.assignInWith
276
+ */
277
+ assignInWith(): Object<T>;
278
+ /**
279
+ * @see _.assignInWith
280
+ */
281
+ assignInWith<TResult>(...otherArgs: any[]): Object<TResult>;
282
+ }
283
+ interface ObjectChain<T> {
284
+ /**
285
+ * @see _.assignInWith
286
+ */
287
+ assignInWith<TSource>(source: TSource, customizer: AssignCustomizer): ObjectChain<T & TSource>;
288
+ /**
289
+ * @see _.assignInWith
290
+ */
291
+ assignInWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2>;
292
+ /**
293
+ * @see _.assignInWith
294
+ */
295
+ assignInWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3>;
296
+ /**
297
+ * @see _.assignInWith
298
+ */
299
+ assignInWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
300
+ /**
301
+ * @see _.assignInWith
302
+ */
303
+ assignInWith(): ObjectChain<T>;
304
+ /**
305
+ * @see _.assignInWith
306
+ */
307
+ assignInWith(...otherArgs: any[]): ObjectChain<any>;
308
+ }
309
+ interface LoDashStatic {
310
+ /**
311
+ * This method is like `_.assign` except that it accepts `customizer` which
312
+ * is invoked to produce the assigned values. If `customizer` returns `undefined`
313
+ * assignment is handled by the method instead. The `customizer` is invoked
314
+ * with five arguments: (objValue, srcValue, key, object, source).
315
+ *
316
+ * **Note:** This method mutates `object`.
317
+ *
318
+ * @category Object
319
+ * @param object The destination object.
320
+ * @param sources The source objects.
321
+ * @param [customizer] The function to customize assigned values.
322
+ * @returns Returns `object`.
323
+ * @example
324
+ *
325
+ * function customizer(objValue, srcValue) {
326
+ * return _.isUndefined(objValue) ? srcValue : objValue;
327
+ * }
328
+ *
329
+ * var defaults = _.partialRight(_.assignWith, customizer);
330
+ *
331
+ * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
332
+ * // => { 'a': 1, 'b': 2 }
333
+ */
334
+ assignWith<TObject, TSource>(object: TObject, source: TSource, customizer: AssignCustomizer): TObject & TSource;
335
+ /**
336
+ * @see _.assignWith
337
+ */
338
+ assignWith<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2, customizer: AssignCustomizer): TObject & TSource1 & TSource2;
339
+ /**
340
+ * @see _.assignWith
341
+ */
342
+ assignWith<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): TObject & TSource1 & TSource2 & TSource3;
343
+ /**
344
+ * @see _.assignWith
345
+ */
346
+ assignWith<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): TObject & TSource1 & TSource2 & TSource3 & TSource4;
347
+ /**
348
+ * @see _.assignWith
349
+ */
350
+ assignWith<TObject>(object: TObject): TObject;
351
+ /**
352
+ * @see _.assignWith
353
+ */
354
+ assignWith<TResult>(object: any, ...otherArgs: any[]): TResult;
355
+ }
356
+ interface Object<T> {
357
+ /**
358
+ * @see _.assignWith
359
+ */
360
+ assignWith<TSource>(source: TSource, customizer: AssignCustomizer): Object<T & TSource>;
361
+ /**
362
+ * @see _.assignWith
363
+ */
364
+ assignWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: AssignCustomizer): Object<T & TSource1 & TSource2>;
365
+ /**
366
+ * @see _.assignWith
367
+ */
368
+ assignWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): Object<T & TSource1 & TSource2 & TSource3>;
369
+ /**
370
+ * @see _.assignWith
371
+ */
372
+ assignWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
373
+ /**
374
+ * @see _.assignWith
375
+ */
376
+ assignWith(): Object<T>;
377
+ /**
378
+ * @see _.assignWith
379
+ */
380
+ assignWith<TResult>(...otherArgs: any[]): Object<TResult>;
381
+ }
382
+ interface ObjectChain<T> {
383
+ /**
384
+ * @see _.assignWith
385
+ */
386
+ assignWith<TSource>(source: TSource, customizer: AssignCustomizer): ObjectChain<T & TSource>;
387
+ /**
388
+ * @see _.assignWith
389
+ */
390
+ assignWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2>;
391
+ /**
392
+ * @see _.assignWith
393
+ */
394
+ assignWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3>;
395
+ /**
396
+ * @see _.assignWith
397
+ */
398
+ assignWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
399
+ /**
400
+ * @see _.assignWith
401
+ */
402
+ assignWith(): ObjectChain<T>;
403
+ /**
404
+ * @see _.assignWith
405
+ */
406
+ assignWith(...otherArgs: any[]): ObjectChain<any>;
407
+ }
408
+ interface LoDashStatic {
409
+ /**
410
+ * Creates an array of elements corresponding to the given keys, or indexes, of collection. Keys may be
411
+ * specified as individual arguments or as arrays of keys.
412
+ *
413
+ * @param object The object to iterate over.
414
+ * @param props The property names or indexes of elements to pick, specified individually or in arrays.
415
+ * @return Returns the new array of picked elements.
416
+ */
417
+ at<T>(object: Dictionary<T> | NumericDictionary<T> | null | undefined, ...props: PropertyPath[]): T[];
418
+ /**
419
+ * @see _.at
420
+ */
421
+ at<T extends object>(object: T | null | undefined, ...props: Array<Many<keyof T>>): Array<T[keyof T]>;
422
+ }
423
+ interface Object<T> {
424
+ /**
425
+ * @see _.at
426
+ */
427
+ at(...props: Array<Many<keyof T>>): Collection<T[keyof T]>;
428
+ }
429
+ interface Collection<T> {
430
+ /**
431
+ * @see _.at
432
+ */
433
+ at(...props: PropertyPath[]): Collection<T>;
434
+ }
435
+ interface ObjectChain<T> {
436
+ /**
437
+ * @see _.at
438
+ */
439
+ at(...props: Array<Many<keyof T>>): CollectionChain<T[keyof T]>;
440
+ }
441
+ interface CollectionChain<T> {
442
+ /**
443
+ * @see _.at
444
+ */
445
+ at(...props: PropertyPath[]): CollectionChain<T>;
446
+ }
447
+ interface LoDashStatic {
448
+ /**
449
+ * Creates an object that inherits from the given prototype object. If a properties object is provided its own
450
+ * enumerable properties are assigned to the created object.
451
+ *
452
+ * @param prototype The object to inherit from.
453
+ * @param properties The properties to assign to the object.
454
+ * @return Returns the new object.
455
+ */
456
+ create<T extends object, U extends object>(prototype: T, properties?: U): T & U;
457
+ }
458
+ interface Object<T> {
459
+ /**
460
+ * @see _.create
461
+ */
462
+ create<U extends object>(properties?: U): Object<T & U>;
463
+ }
464
+ interface ObjectChain<T> {
465
+ /**
466
+ * @see _.create
467
+ */
468
+ create<U extends object>(properties?: U): ObjectChain<T & U>;
469
+ }
470
+ interface LoDashStatic {
471
+ /**
472
+ * Assigns own enumerable properties of source object(s) to the destination object for all destination
473
+ * properties that resolve to undefined. Once a property is set, additional values of the same property are
474
+ * ignored.
475
+ *
476
+ * Note: This method mutates object.
477
+ *
478
+ * @param object The destination object.
479
+ * @param sources The source objects.
480
+ * @return The destination object.
481
+ */
482
+ defaults<TObject, TSource>(object: TObject, source: TSource): NonNullable<TSource & TObject>;
483
+ /**
484
+ * @see _.defaults
485
+ */
486
+ defaults<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2): NonNullable<TSource2 & TSource1 & TObject>;
487
+ /**
488
+ * @see _.defaults
489
+ */
490
+ defaults<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3): NonNullable<TSource3 & TSource2 & TSource1 & TObject>;
491
+ /**
492
+ * @see _.defaults
493
+ */
494
+ defaults<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): NonNullable<TSource4 & TSource3 & TSource2 & TSource1 & TObject>;
495
+ /**
496
+ * @see _.defaults
497
+ */
498
+ defaults<TObject>(object: TObject): NonNullable<TObject>;
499
+ /**
500
+ * @see _.defaults
501
+ */
502
+ defaults(object: any, ...sources: any[]): any;
503
+ }
504
+ interface Object<T> {
505
+ /**
506
+ * @see _.defaults
507
+ */
508
+ defaults<TSource>(source: TSource): Object<NonNullable<TSource & T>>;
509
+ /**
510
+ * @see _.defaults
511
+ */
512
+ defaults<TSource1, TSource2>(source1: TSource1, source2: TSource2): Object<NonNullable<TSource2 & TSource1 & T>>;
513
+ /**
514
+ * @see _.defaults
515
+ */
516
+ defaults<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): Object<NonNullable<TSource3 & TSource2 & TSource1 & T>>;
517
+ /**
518
+ * @see _.defaults
519
+ */
520
+ defaults<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): Object<NonNullable<TSource4 & TSource3 & TSource2 & TSource1 & T>>;
521
+ /**
522
+ * @see _.defaults
523
+ */
524
+ defaults(): Object<NonNullable<T>>;
525
+ /**
526
+ * @see _.defaults
527
+ */
528
+ defaults(...sources: any[]): Object<any>;
529
+ }
530
+ interface ObjectChain<T> {
531
+ /**
532
+ * @see _.defaults
533
+ */
534
+ defaults<TSource>(source: TSource): ObjectChain<NonNullable<TSource & T>>;
535
+ /**
536
+ * @see _.defaults
537
+ */
538
+ defaults<TSource1, TSource2>(source1: TSource1, source2: TSource2): ObjectChain<NonNullable<TSource2 & TSource1 & T>>;
539
+ /**
540
+ * @see _.defaults
541
+ */
542
+ defaults<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): ObjectChain<NonNullable<TSource3 & TSource2 & TSource1 & T>>;
543
+ /**
544
+ * @see _.defaults
545
+ */
546
+ defaults<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): ObjectChain<NonNullable<TSource4 & TSource3 & TSource2 & TSource1 & T>>;
547
+ /**
548
+ * @see _.defaults
549
+ */
550
+ defaults(): ObjectChain<NonNullable<T>>;
551
+ /**
552
+ * @see _.defaults
553
+ */
554
+ defaults(...sources: any[]): ObjectChain<any>;
555
+ }
556
+ interface LoDashStatic {
557
+ /**
558
+ * This method is like _.defaults except that it recursively assigns default properties.
559
+ * @param object The destination object.
560
+ * @param sources The source objects.
561
+ * @return Returns object.
562
+ */
563
+ defaultsDeep(object: any, ...sources: any[]): any;
564
+ }
565
+ interface Object<T> {
566
+ /**
567
+ * @see _.defaultsDeep
568
+ */
569
+ defaultsDeep(...sources: any[]): Object<any>;
570
+ }
571
+ interface ObjectChain<T> {
572
+ /**
573
+ * @see _.defaultsDeep
574
+ */
575
+ defaultsDeep(...sources: any[]): ObjectChain<any>;
576
+ }
577
+ interface LoDashStatic {
578
+ /**
579
+ * @see _.toPairs
580
+ */
581
+ entries<T>(object?: Dictionary<T> | NumericDictionary<T>): Array<[string, T]>;
582
+ /**
583
+ * @see _.entries
584
+ */
585
+ entries(object?: object): Array<[string, any]>;
586
+ }
587
+ interface Object<T> {
588
+ /**
589
+ * @see _.entries
590
+ */
591
+ entries(): Collection<[string, T[keyof T]]>;
592
+ }
593
+ interface LoDashImplicitWrapper<TValue> {
594
+ /**
595
+ * @see _.entries
596
+ */
597
+ entries(): Collection<[string, any]>;
598
+ }
599
+ interface ObjectChain<T> {
600
+ /**
601
+ * @see _.entries
602
+ */
603
+ entries(): CollectionChain<[string, T[keyof T]]>;
604
+ }
605
+ interface LoDashExplicitWrapper<TValue> {
606
+ /**
607
+ * @see _.entries
608
+ */
609
+ entries(): CollectionChain<[string, any]>;
610
+ }
611
+ interface LoDashStatic {
612
+ /**
613
+ * @see _.entriesIn
614
+ */
615
+ entriesIn<T>(object?: Dictionary<T> | NumericDictionary<T>): Array<[string, T]>;
616
+ /**
617
+ * @see _.entriesIn
618
+ */
619
+ entriesIn(object?: object): Array<[string, any]>;
620
+ }
621
+ interface Object<T> {
622
+ /**
623
+ * @see _.entriesIn
624
+ */
625
+ entriesIn(): Collection<[string, T[keyof T]]>;
626
+ }
627
+ interface LoDashImplicitWrapper<TValue> {
628
+ /**
629
+ * @see _.entriesIn
630
+ */
631
+ entriesIn(): Collection<[string, any]>;
632
+ }
633
+ interface ObjectChain<T> {
634
+ /**
635
+ * @see _.entriesIn
636
+ */
637
+ entriesIn(): CollectionChain<[string, T[keyof T]]>;
638
+ }
639
+ interface LoDashExplicitWrapper<TValue> {
640
+ /**
641
+ * @see _.entriesIn
642
+ */
643
+ entriesIn(): CollectionChain<[string, any]>;
644
+ }
645
+ interface LoDashStatic {
646
+ /**
647
+ * @see _.extend
648
+ */
649
+ extend<TObject, TSource>(object: TObject, source: TSource): TObject & TSource;
650
+ /**
651
+ * @see _.extend
652
+ */
653
+ extend<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2): TObject & TSource1 & TSource2;
654
+ /**
655
+ * @see _.extend
656
+ */
657
+ extend<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3): TObject & TSource1 & TSource2 & TSource3;
658
+ /**
659
+ * @see _.extend
660
+ */
661
+ extend<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): TObject & TSource1 & TSource2 & TSource3 & TSource4;
662
+ /**
663
+ * @see _.extend
664
+ */
665
+ extend<TObject>(object: TObject): TObject;
666
+ /**
667
+ * @see _.extend
668
+ */
669
+ extend<TResult>(object: any, ...otherArgs: any[]): TResult;
670
+ }
671
+ interface Object<T> {
672
+ /**
673
+ * @see _.extend
674
+ */
675
+ extend<TSource>(source: TSource): Object<T & TSource>;
676
+ /**
677
+ * @see _.extend
678
+ */
679
+ extend<TSource1, TSource2>(source1: TSource1, source2: TSource2): Object<T & TSource1 & TSource2>;
680
+ /**
681
+ * @see _.extend
682
+ */
683
+ extend<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): Object<T & TSource1 & TSource2 & TSource3>;
684
+ /**
685
+ * @see _.extend
686
+ */
687
+ extend<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
688
+ /**
689
+ * @see _.extend
690
+ */
691
+ extend(): Object<T>;
692
+ /**
693
+ * @see _.extend
694
+ */
695
+ extend(...otherArgs: any[]): Object<any>;
696
+ }
697
+ interface ObjectChain<T> {
698
+ /**
699
+ * @see _.extend
700
+ */
701
+ extend<TSource>(source: TSource): ObjectChain<T & TSource>;
702
+ /**
703
+ * @see _.extend
704
+ */
705
+ extend<TSource1, TSource2>(source1: TSource1, source2: TSource2): ObjectChain<T & TSource1 & TSource2>;
706
+ /**
707
+ * @see _.extend
708
+ */
709
+ extend<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): ObjectChain<T & TSource1 & TSource2 & TSource3>;
710
+ /**
711
+ * @see _.extend
712
+ */
713
+ extend<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
714
+ /**
715
+ * @see _.extend
716
+ */
717
+ extend(): ObjectChain<T>;
718
+ /**
719
+ * @see _.extend
720
+ */
721
+ extend(...otherArgs: any[]): ObjectChain<any>;
722
+ }
723
+ interface LoDashStatic {
724
+ /**
725
+ * @see _.extendWith
726
+ */
727
+ extendWith<TObject, TSource>(object: TObject, source: TSource, customizer: AssignCustomizer): TObject & TSource;
728
+ /**
729
+ * @see _.extendWith
730
+ */
731
+ extendWith<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2, customizer: AssignCustomizer): TObject & TSource1 & TSource2;
732
+ /**
733
+ * @see _.extendWith
734
+ */
735
+ extendWith<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): TObject & TSource1 & TSource2 & TSource3;
736
+ /**
737
+ * @see _.extendWith
738
+ */
739
+ extendWith<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): TObject & TSource1 & TSource2 & TSource3 & TSource4;
740
+ /**
741
+ * @see _.extendWith
742
+ */
743
+ extendWith<TObject>(object: TObject): TObject;
744
+ /**
745
+ * @see _.extendWith
746
+ */
747
+ extendWith<TResult>(object: any, ...otherArgs: any[]): TResult;
748
+ }
749
+ interface Object<T> {
750
+ /**
751
+ * @see _.extendWith
752
+ */
753
+ extendWith<TSource>(source: TSource, customizer: AssignCustomizer): Object<T & TSource>;
754
+ /**
755
+ * @see _.extendWith
756
+ */
757
+ extendWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: AssignCustomizer): Object<T & TSource1 & TSource2>;
758
+ /**
759
+ * @see _.extendWith
760
+ */
761
+ extendWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): Object<T & TSource1 & TSource2 & TSource3>;
762
+ /**
763
+ * @see _.extendWith
764
+ */
765
+ extendWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
766
+ /**
767
+ * @see _.extendWith
768
+ */
769
+ extendWith(): Object<T>;
770
+ /**
771
+ * @see _.extendWith
772
+ */
773
+ extendWith(...otherArgs: any[]): Object<any>;
774
+ }
775
+ interface ObjectChain<T> {
776
+ /**
777
+ * @see _.extendWith
778
+ */
779
+ extendWith<TSource>(source: TSource, customizer: AssignCustomizer): ObjectChain<T & TSource>;
780
+ /**
781
+ * @see _.extendWith
782
+ */
783
+ extendWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2>;
784
+ /**
785
+ * @see _.extendWith
786
+ */
787
+ extendWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3>;
788
+ /**
789
+ * @see _.extendWith
790
+ */
791
+ extendWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: AssignCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
792
+ /**
793
+ * @see _.extendWith
794
+ */
795
+ extendWith(): ObjectChain<T>;
796
+ /**
797
+ * @see _.extendWith
798
+ */
799
+ extendWith(...otherArgs: any[]): ObjectChain<any>;
800
+ }
801
+ interface LoDashStatic {
802
+ /**
803
+ * This method is like _.find except that it returns the key of the first element predicate returns truthy for
804
+ * instead of the element itself.
805
+ *
806
+ * @param object The object to search.
807
+ * @param predicate The function invoked per iteration.
808
+ * @return Returns the key of the matched element, else undefined.
809
+ */
810
+ findKey<T>(object: T | null | undefined, predicate?: ObjectIteratee<T>): string | undefined;
811
+ }
812
+ interface LoDashImplicitWrapper<TValue> {
813
+ /**
814
+ * @see _.findKey
815
+ */
816
+ findKey(predicate?: ObjectIteratee<TValue>): string | undefined;
817
+ }
818
+ interface LoDashExplicitWrapper<TValue> {
819
+ /**
820
+ * @see _.findKey
821
+ */
822
+ findKey(predicate?: ObjectIteratee<TValue>): StringNullableChain;
823
+ }
824
+ interface LoDashStatic {
825
+ /**
826
+ * This method is like _.findKey except that it iterates over elements of a collection in the opposite order.
827
+ *
828
+ * @param object The object to search.
829
+ * @param predicate The function invoked per iteration.
830
+ * @return Returns the key of the matched element, else undefined.
831
+ */
832
+ findLastKey<T>(object: T | null | undefined, predicate?: ObjectIteratee<T>): string | undefined;
833
+ }
834
+ interface LoDashImplicitWrapper<TValue> {
835
+ /**
836
+ * @see _.findLastKey
837
+ */
838
+ findLastKey(predicate?: ObjectIteratee<TValue>): string | undefined;
839
+ }
840
+ interface LoDashExplicitWrapper<TValue> {
841
+ /**
842
+ * @see _.findLastKey
843
+ */
844
+ findLastKey(predicate?: ObjectIteratee<TValue>): StringNullableChain;
845
+ }
846
+ interface LoDashStatic {
847
+ /**
848
+ * Iterates over own and inherited enumerable properties of an object invoking iteratee for each property. The
849
+ * iteratee is invoked with three arguments: (value, key, object). Iteratee functions may
850
+ * exit iteration early by explicitly returning false.
851
+ *
852
+ * @param object The object to iterate over.
853
+ * @param iteratee The function invoked per iteration.
854
+ * @return Returns object.
855
+ */
856
+ forIn<T>(object: T, iteratee?: ObjectIterator<T, any>): T;
857
+ /**
858
+ * @see _.forIn
859
+ */
860
+ forIn<T>(object: T | null | undefined, iteratee?: ObjectIterator<T, any>): T | null | undefined;
861
+ }
862
+ interface LoDashImplicitWrapper<TValue> {
863
+ /**
864
+ * @see _.forIn
865
+ */
866
+ forIn(iteratee?: ObjectIterator<TValue, any>): this;
867
+ }
868
+ interface LoDashExplicitWrapper<TValue> {
869
+ /**
870
+ * @see _.forIn
871
+ */
872
+ forIn(iteratee?: ObjectIterator<TValue, any>): this;
873
+ }
874
+ interface LoDashStatic {
875
+ /**
876
+ * This method is like _.forIn except that it iterates over properties of object in the opposite order.
877
+ *
878
+ * @param object The object to iterate over.
879
+ * @param iteratee The function invoked per iteration.
880
+ * @return Returns object.
881
+ */
882
+ forInRight<T>(object: T, iteratee?: ObjectIterator<T, any>): T;
883
+ /**
884
+ * @see _.forInRight
885
+ */
886
+ forInRight<T>(object: T | null | undefined, iteratee?: ObjectIterator<T, any>): T | null | undefined;
887
+ }
888
+ interface LoDashImplicitWrapper<TValue> {
889
+ /**
890
+ * @see _.forInRight
891
+ */
892
+ forInRight(iteratee?: ObjectIterator<TValue, any>): this;
893
+ }
894
+ interface LoDashExplicitWrapper<TValue> {
895
+ /**
896
+ * @see _.forInRight
897
+ */
898
+ forInRight(iteratee?: ObjectIterator<TValue, any>): this;
899
+ }
900
+ interface LoDashStatic {
901
+ /**
902
+ * Iterates over own enumerable properties of an object invoking iteratee for each property. The iteratee is
903
+ * invoked with three arguments: (value, key, object). Iteratee functions may exit
904
+ * iteration early by explicitly returning false.
905
+ *
906
+ * @param object The object to iterate over.
907
+ * @param iteratee The function invoked per iteration.
908
+ * @return Returns object.
909
+ */
910
+ forOwn<T>(object: T, iteratee?: ObjectIterator<T, any>): T;
911
+ /**
912
+ * @see _.forOwn
913
+ */
914
+ forOwn<T>(object: T | null | undefined, iteratee?: ObjectIterator<T, any>): T | null | undefined;
915
+ }
916
+ interface LoDashImplicitWrapper<TValue> {
917
+ /**
918
+ * @see _.forOwn
919
+ */
920
+ forOwn(iteratee?: ObjectIterator<TValue, any>): this;
921
+ }
922
+ interface LoDashExplicitWrapper<TValue> {
923
+ /**
924
+ * @see _.forOwn
925
+ */
926
+ forOwn(iteratee?: ObjectIterator<TValue, any>): this;
927
+ }
928
+ interface LoDashStatic {
929
+ /**
930
+ * This method is like _.forOwn except that it iterates over properties of object in the opposite order.
931
+ *
932
+ * @param object The object to iterate over.
933
+ * @param iteratee The function invoked per iteration.
934
+ * @return Returns object.
935
+ */
936
+ forOwnRight<T>(object: T, iteratee?: ObjectIterator<T, any>): T;
937
+ /**
938
+ * @see _.forOwnRight
939
+ */
940
+ forOwnRight<T>(object: T | null | undefined, iteratee?: ObjectIterator<T, any>): T | null | undefined;
941
+ }
942
+ interface LoDashImplicitWrapper<TValue> {
943
+ /**
944
+ * @see _.forOwnRight
945
+ */
946
+ forOwnRight(iteratee?: ObjectIterator<TValue, any>): this;
947
+ }
948
+ interface LoDashExplicitWrapper<TValue> {
949
+ /**
950
+ * @see _.forOwnRight
951
+ */
952
+ forOwnRight(iteratee?: ObjectIterator<TValue, any>): this;
953
+ }
954
+ interface LoDashStatic {
955
+ /**
956
+ * Creates an array of function property names from own enumerable properties
957
+ * of `object`.
958
+ *
959
+ * @category Object
960
+ * @param object The object to inspect.
961
+ * @returns Returns the new array of property names.
962
+ * @example
963
+ *
964
+ * function Foo() {
965
+ * this.a = _.constant('a');
966
+ * this.b = _.constant('b');
967
+ * }
968
+ *
969
+ * Foo.prototype.c = _.constant('c');
970
+ *
971
+ * _.functions(new Foo);
972
+ * // => ['a', 'b']
973
+ */
974
+ functions(object: any): string[];
975
+ }
976
+ interface LoDashImplicitWrapper<TValue> {
977
+ /**
978
+ * @see _.functions
979
+ */
980
+ functions(): Collection<string>;
981
+ }
982
+ interface LoDashExplicitWrapper<TValue> {
983
+ /**
984
+ * @see _.functions
985
+ */
986
+ functions(): CollectionChain<string>;
987
+ }
988
+ interface LoDashStatic {
989
+ /**
990
+ * Creates an array of function property names from own and inherited
991
+ * enumerable properties of `object`.
992
+ *
993
+ * @category Object
994
+ * @param object The object to inspect.
995
+ * @returns Returns the new array of property names.
996
+ * @example
997
+ *
998
+ * function Foo() {
999
+ * this.a = _.constant('a');
1000
+ * this.b = _.constant('b');
1001
+ * }
1002
+ *
1003
+ * Foo.prototype.c = _.constant('c');
1004
+ *
1005
+ * _.functionsIn(new Foo);
1006
+ * // => ['a', 'b', 'c']
1007
+ */
1008
+ functionsIn<T extends {}>(object: any): string[];
1009
+ }
1010
+ interface LoDashImplicitWrapper<TValue> {
1011
+ /**
1012
+ * @see _.functionsIn
1013
+ */
1014
+ functionsIn(): Collection<string>;
1015
+ }
1016
+ interface LoDashExplicitWrapper<TValue> {
1017
+ /**
1018
+ * @see _.functionsIn
1019
+ */
1020
+ functionsIn(): CollectionChain<string>;
1021
+ }
1022
+ interface LoDashStatic {
1023
+ /**
1024
+ * Gets the property value at path of object. If the resolved value is undefined the defaultValue is used
1025
+ * in its place.
1026
+ *
1027
+ * @param object The object to query.
1028
+ * @param path The path of the property to get.
1029
+ * @param defaultValue The value returned if the resolved value is undefined.
1030
+ * @return Returns the resolved value.
1031
+ */
1032
+ get<TObject extends object, TKey extends keyof TObject>(object: TObject, path: TKey | [TKey]): TObject[TKey];
1033
+ /**
1034
+ * @see _.get
1035
+ */
1036
+ get<TObject extends object, TKey extends keyof TObject>(object: TObject | null | undefined, path: TKey | [TKey]): TObject[TKey] | undefined;
1037
+ /**
1038
+ * @see _.get
1039
+ */
1040
+ get<TObject extends object, TKey extends keyof TObject, TDefault>(object: TObject | null | undefined, path: TKey | [TKey], defaultValue: TDefault): Exclude<TObject[TKey], undefined> | TDefault;
1041
+ /**
1042
+ * @see _.get
1043
+ */
1044
+ get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1]>(object: TObject, path: [TKey1, TKey2]): TObject[TKey1][TKey2];
1045
+ /**
1046
+ * @see _.get
1047
+ */
1048
+ get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1]>(object: TObject | null | undefined, path: [TKey1, TKey2]): TObject[TKey1][TKey2] | undefined;
1049
+ /**
1050
+ * @see _.get
1051
+ */
1052
+ get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1], TDefault>(object: TObject | null | undefined, path: [TKey1, TKey2], defaultValue: TDefault): Exclude<TObject[TKey1][TKey2], undefined> | TDefault;
1053
+ /**
1054
+ * @see _.get
1055
+ */
1056
+ get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1], TKey3 extends keyof TObject[TKey1][TKey2]>(object: TObject, path: [TKey1, TKey2, TKey3]): TObject[TKey1][TKey2][TKey3];
1057
+ /**
1058
+ * @see _.get
1059
+ */
1060
+ get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1], TKey3 extends keyof TObject[TKey1][TKey2]>(object: TObject | null | undefined, path: [TKey1, TKey2, TKey3]): TObject[TKey1][TKey2][TKey3] | undefined;
1061
+ /**
1062
+ * @see _.get
1063
+ */
1064
+ get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1], TKey3 extends keyof TObject[TKey1][TKey2], TDefault>(object: TObject | null | undefined, path: [TKey1, TKey2, TKey3], defaultValue: TDefault): Exclude<TObject[TKey1][TKey2][TKey3], undefined> | TDefault;
1065
+ /**
1066
+ * @see _.get
1067
+ */
1068
+ get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1], TKey3 extends keyof TObject[TKey1][TKey2], TKey4 extends keyof TObject[TKey1][TKey2][TKey3]>(object: TObject, path: [TKey1, TKey2, TKey3, TKey4]): TObject[TKey1][TKey2][TKey3][TKey4];
1069
+ /**
1070
+ * @see _.get
1071
+ */
1072
+ get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1], TKey3 extends keyof TObject[TKey1][TKey2], TKey4 extends keyof TObject[TKey1][TKey2][TKey3]>(object: TObject | null | undefined, path: [TKey1, TKey2, TKey3, TKey4]): TObject[TKey1][TKey2][TKey3][TKey4] | undefined;
1073
+ /**
1074
+ * @see _.get
1075
+ */
1076
+ get<TObject extends object, TKey1 extends keyof TObject, TKey2 extends keyof TObject[TKey1], TKey3 extends keyof TObject[TKey1][TKey2], TKey4 extends keyof TObject[TKey1][TKey2][TKey3], TDefault>(object: TObject | null | undefined, path: [TKey1, TKey2, TKey3, TKey4], defaultValue: TDefault): Exclude<TObject[TKey1][TKey2][TKey3][TKey4], undefined> | TDefault;
1077
+ /**
1078
+ * @see _.get
1079
+ */
1080
+ get<T>(object: NumericDictionary<T>, path: number): T;
1081
+ /**
1082
+ * @see _.get
1083
+ */
1084
+ get<T>(object: NumericDictionary<T> | null | undefined, path: number): T | undefined;
1085
+ /**
1086
+ * @see _.get
1087
+ */
1088
+ get<T, TDefault>(object: NumericDictionary<T> | null | undefined, path: number, defaultValue: TDefault): T | TDefault;
1089
+ /**
1090
+ * @see _.get
1091
+ */
1092
+ get<TDefault>(object: null | undefined, path: PropertyPath, defaultValue: TDefault): TDefault;
1093
+ /**
1094
+ * @see _.get
1095
+ */
1096
+ get(object: null | undefined, path: PropertyPath): undefined;
1097
+ /**
1098
+ * @see _.get
1099
+ */
1100
+ get(object: any, path: PropertyPath, defaultValue?: any): any;
1101
+ }
1102
+ interface String {
1103
+ /**
1104
+ * @see _.get
1105
+ */
1106
+ get(path: number | number[]): string;
1107
+ /**
1108
+ * @see _.get
1109
+ */
1110
+ get(path: number | number[], defaultValue: string): string;
1111
+ }
1112
+ interface Object<T> {
1113
+ /**
1114
+ * @see _.get
1115
+ */
1116
+ get<TKey extends keyof T>(path: TKey | [TKey]): T[TKey];
1117
+ /**
1118
+ * @see _.get
1119
+ */
1120
+ get<TKey extends keyof T, TDefault>(path: TKey | [TKey], defaultValue: TDefault): Exclude<T[TKey], undefined> | TDefault;
1121
+ /**
1122
+ * @see _.get
1123
+ */
1124
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1]>(path: [TKey1, TKey2]): T[TKey1][TKey2];
1125
+ /**
1126
+ * @see _.get
1127
+ */
1128
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TDefault>(path: [TKey1, TKey2], defaultValue: TDefault): Exclude<T[TKey1][TKey2], undefined> | TDefault;
1129
+ /**
1130
+ * @see _.get
1131
+ */
1132
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2]>(path: [TKey1, TKey2, TKey3]): T[TKey1][TKey2][TKey3];
1133
+ /**
1134
+ * @see _.get
1135
+ */
1136
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2], TDefault>(path: [TKey1, TKey2, TKey3], defaultValue: TDefault): Exclude<T[TKey1][TKey2][TKey3], undefined> | TDefault;
1137
+ /**
1138
+ * @see _.get
1139
+ */
1140
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2], TKey4 extends keyof T[TKey1][TKey2][TKey3]>(path: [TKey1, TKey2, TKey3, TKey4]): T[TKey1][TKey2][TKey3][TKey4];
1141
+ /**
1142
+ * @see _.get
1143
+ */
1144
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2], TKey4 extends keyof T[TKey1][TKey2][TKey3], TDefault>(path: [TKey1, TKey2, TKey3, TKey4], defaultValue: TDefault): Exclude<T[TKey1][TKey2][TKey3][TKey4], undefined> | TDefault;
1145
+ /**
1146
+ * @see _.get
1147
+ */
1148
+ get(path: PropertyPath, defaultValue?: any): any;
1149
+ }
1150
+ interface Collection<T> {
1151
+ /**
1152
+ * @see _.get
1153
+ */
1154
+ get(path: number): T;
1155
+ /**
1156
+ * @see _.get
1157
+ */
1158
+ get<TDefault>(path: number, defaultValue: TDefault): T | TDefault;
1159
+ }
1160
+ interface StringChain {
1161
+ /**
1162
+ * @see _.get
1163
+ */
1164
+ get(path: number | number[]): StringChain;
1165
+ /**
1166
+ * @see _.get
1167
+ */
1168
+ get(path: number | number[], defaultValue: string): StringChain;
1169
+ }
1170
+ interface StringNullableChain {
1171
+ /**
1172
+ * @see _.get
1173
+ */
1174
+ get(path: number | number[]): StringNullableChain;
1175
+ /**
1176
+ * @see _.get
1177
+ */
1178
+ get(path: number | number[], defaultValue: string): StringChain;
1179
+ }
1180
+ interface ObjectChain<T> {
1181
+ /**
1182
+ * @see _.get
1183
+ */
1184
+ get<TKey extends keyof T>(path: TKey | [TKey]): ExpChain<T[TKey]>;
1185
+ /**
1186
+ * @see _.get
1187
+ */
1188
+ get<TKey extends keyof T>(path: TKey | [TKey], defaultValue: never[]): T[TKey] extends any[] ? ExpChain<Exclude<T[TKey], undefined>> : ExpChain<Exclude<T[TKey], undefined> | never[]>;
1189
+ /**
1190
+ * @see _.get
1191
+ */
1192
+ get<TKey extends keyof T, TDefault>(path: TKey | [TKey], defaultValue: TDefault): ExpChain<Exclude<T[TKey], undefined> | TDefault>;
1193
+ /**
1194
+ * @see _.get
1195
+ */
1196
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1]>(path: [TKey1, TKey2]): ExpChain<T[TKey1][TKey2]>;
1197
+ /**
1198
+ * @see _.get
1199
+ */
1200
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1]>(path: [TKey1, TKey2], defaultValue: never[]): T[TKey1][TKey2] extends any[] ? ExpChain<Exclude<T[TKey1][TKey2], undefined>> : ExpChain<Exclude<T[TKey1][TKey2], undefined> | never[]>;
1201
+ /**
1202
+ * @see _.get
1203
+ */
1204
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TDefault>(path: [TKey1, TKey2], defaultValue: TDefault): ExpChain<Exclude<T[TKey1][TKey2], undefined> | TDefault>;
1205
+ /**
1206
+ * @see _.get
1207
+ */
1208
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2]>(path: [TKey1, TKey2, TKey3]): ExpChain<T[TKey1][TKey2][TKey3]>;
1209
+ /**
1210
+ * @see _.get
1211
+ */
1212
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2]>(path: [TKey1, TKey2, TKey3], defaultValue: never[]): T[TKey1][TKey2][TKey3] extends any[] ? ExpChain<Exclude<T[TKey1][TKey2][TKey3], undefined>> : ExpChain<Exclude<T[TKey1][TKey2][TKey3], undefined> | never[]>;
1213
+ /**
1214
+ * @see _.get
1215
+ */
1216
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2], TDefault>(path: [TKey1, TKey2, TKey3], defaultValue: TDefault): ExpChain<Exclude<T[TKey1][TKey2][TKey3], undefined> | TDefault>;
1217
+ /**
1218
+ * @see _.get
1219
+ */
1220
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2], TKey4 extends keyof T[TKey1][TKey2][TKey3]>(path: [TKey1, TKey2, TKey3, TKey4]): ExpChain<T[TKey1][TKey2][TKey3][TKey4]>;
1221
+ /**
1222
+ * @see _.get
1223
+ */
1224
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2], TKey4 extends keyof T[TKey1][TKey2][TKey3]>(path: [TKey1, TKey2, TKey3, TKey4], defaultValue: never[]): T[TKey1][TKey2][TKey3][TKey4] extends any[] ? ExpChain<Exclude<T[TKey1][TKey2][TKey3][TKey4], undefined>> : ExpChain<Exclude<T[TKey1][TKey2][TKey3][TKey4], undefined> | never[]>;
1225
+ /**
1226
+ * @see _.get
1227
+ */
1228
+ get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2], TKey4 extends keyof T[TKey1][TKey2][TKey3], TDefault>(path: [TKey1, TKey2, TKey3, TKey4], defaultValue: TDefault): ExpChain<Exclude<T[TKey1][TKey2][TKey3][TKey4], undefined> | TDefault>;
1229
+ /**
1230
+ * @see _.get
1231
+ */
1232
+ get(path: PropertyPath, defaultValue?: any): LoDashExplicitWrapper<any>;
1233
+ }
1234
+ interface CollectionChain<T> {
1235
+ /**
1236
+ * @see _.get
1237
+ */
1238
+ get(path: number): ExpChain<T>;
1239
+ /**
1240
+ * @see _.get
1241
+ */
1242
+ get<TDefault>(path: number, defaultValue: TDefault): ExpChain<T | TDefault>;
1243
+ }
1244
+ interface LoDashStatic {
1245
+ /**
1246
+ * Checks if `path` is a direct property of `object`.
1247
+ *
1248
+ * @category Object
1249
+ * @param object The object to query.
1250
+ * @param path The path to check.
1251
+ * @returns Returns `true` if `path` exists, else `false`.
1252
+ * @example
1253
+ *
1254
+ * var object = { 'a': { 'b': { 'c': 3 } } };
1255
+ * var other = _.create({ 'a': _.create({ 'b': _.create({ 'c': 3 }) }) });
1256
+ *
1257
+ * _.has(object, 'a');
1258
+ * // => true
1259
+ *
1260
+ * _.has(object, 'a.b.c');
1261
+ * // => true
1262
+ *
1263
+ * _.has(object, ['a', 'b', 'c']);
1264
+ * // => true
1265
+ *
1266
+ * _.has(other, 'a');
1267
+ * // => false
1268
+ */
1269
+ has<T>(object: T, path: PropertyPath): boolean;
1270
+ }
1271
+ interface LoDashImplicitWrapper<TValue> {
1272
+ /**
1273
+ * @see _.has
1274
+ */
1275
+ has(path: PropertyPath): boolean;
1276
+ }
1277
+ interface LoDashExplicitWrapper<TValue> {
1278
+ /**
1279
+ * @see _.has
1280
+ */
1281
+ has(path: PropertyPath): PrimitiveChain<boolean>;
1282
+ }
1283
+ interface LoDashStatic {
1284
+ /**
1285
+ * Checks if `path` is a direct or inherited property of `object`.
1286
+ *
1287
+ * @category Object
1288
+ * @param object The object to query.
1289
+ * @param path The path to check.
1290
+ * @returns Returns `true` if `path` exists, else `false`.
1291
+ * @example
1292
+ *
1293
+ * var object = _.create({ 'a': _.create({ 'b': _.create({ 'c': 3 }) }) });
1294
+ *
1295
+ * _.hasIn(object, 'a');
1296
+ * // => true
1297
+ *
1298
+ * _.hasIn(object, 'a.b.c');
1299
+ * // => true
1300
+ *
1301
+ * _.hasIn(object, ['a', 'b', 'c']);
1302
+ * // => true
1303
+ *
1304
+ * _.hasIn(object, 'b');
1305
+ * // => false
1306
+ */
1307
+ hasIn<T>(object: T, path: PropertyPath): boolean;
1308
+ }
1309
+ interface LoDashImplicitWrapper<TValue> {
1310
+ /**
1311
+ * @see _.hasIn
1312
+ */
1313
+ hasIn(path: PropertyPath): boolean;
1314
+ }
1315
+ interface LoDashExplicitWrapper<TValue> {
1316
+ /**
1317
+ * @see _.hasIn
1318
+ */
1319
+ hasIn(path: PropertyPath): PrimitiveChain<boolean>;
1320
+ }
1321
+ interface LoDashStatic {
1322
+ /**
1323
+ * Creates an object composed of the inverted keys and values of object. If object contains duplicate values,
1324
+ * subsequent values overwrite property assignments of previous values unless multiValue is true.
1325
+ *
1326
+ * @param object The object to invert.
1327
+ * @param multiValue Allow multiple values per key.
1328
+ * @return Returns the new inverted object.
1329
+ */
1330
+ invert(object: object): Dictionary<string>;
1331
+ }
1332
+ interface LoDashImplicitWrapper<TValue> {
1333
+ /**
1334
+ * @see _.invert
1335
+ */
1336
+ invert(): Object<Dictionary<string>>;
1337
+ }
1338
+ interface LoDashExplicitWrapper<TValue> {
1339
+ /**
1340
+ * @see _.invert
1341
+ */
1342
+ invert(): ObjectChain<Dictionary<string>>;
1343
+ }
1344
+ interface LoDashStatic {
1345
+ /**
1346
+ * This method is like _.invert except that the inverted object is generated from the results of running each
1347
+ * element of object through iteratee. The corresponding inverted value of each inverted key is an array of
1348
+ * keys responsible for generating the inverted value. The iteratee is invoked with one argument: (value).
1349
+ *
1350
+ * @param object The object to invert.
1351
+ * @param interatee The iteratee invoked per element.
1352
+ * @return Returns the new inverted object.
1353
+ */
1354
+ invertBy<T>(object: Dictionary<T> | NumericDictionary<T> | null | undefined, interatee?: ValueIteratee<T>): Dictionary<string[]>;
1355
+ /**
1356
+ * @see _.invertBy
1357
+ */
1358
+ invertBy<T extends object>(object: T | null | undefined, interatee?: ValueIteratee<T[keyof T]>): Dictionary<string[]>;
1359
+ }
1360
+ interface String {
1361
+ /**
1362
+ * @see _.invertBy
1363
+ */
1364
+ invertBy(iteratee?: ValueIteratee<string>): Object<Dictionary<string[]>>;
1365
+ }
1366
+ interface Collection<T> {
1367
+ /**
1368
+ * @see _.invertBy
1369
+ */
1370
+ invertBy(iteratee?: ValueIteratee<T>): Object<Dictionary<string[]>>;
1371
+ }
1372
+ interface Object<T> {
1373
+ /**
1374
+ * @see _.invertBy
1375
+ */
1376
+ invertBy(iteratee?: ValueIteratee<T[keyof T]>): Object<Dictionary<string[]>>;
1377
+ }
1378
+ interface StringChain {
1379
+ /**
1380
+ * @see _.invertBy
1381
+ */
1382
+ invertBy(iteratee?: ValueIteratee<string>): ObjectChain<Dictionary<string[]>>;
1383
+ }
1384
+ interface StringNullableChain {
1385
+ /**
1386
+ * @see _.invertBy
1387
+ */
1388
+ invertBy(iteratee?: ValueIteratee<string>): ObjectChain<Dictionary<string[]>>;
1389
+ }
1390
+ interface CollectionChain<T> {
1391
+ /**
1392
+ * @see _.invertBy
1393
+ */
1394
+ invertBy(iteratee?: ValueIteratee<T>): ObjectChain<Dictionary<string[]>>;
1395
+ }
1396
+ interface ObjectChain<T> {
1397
+ /**
1398
+ * @see _.invertBy
1399
+ */
1400
+ invertBy(iteratee?: ValueIteratee<T[keyof T]>): ObjectChain<Dictionary<string[]>>;
1401
+ }
1402
+ interface LoDashStatic {
1403
+ /**
1404
+ * Invokes the method at path of object.
1405
+ * @param object The object to query.
1406
+ * @param path The path of the method to invoke.
1407
+ * @param args The arguments to invoke the method with.
1408
+ */
1409
+ invoke(object: any, path: PropertyPath, ...args: any[]): any;
1410
+ }
1411
+ interface LoDashImplicitWrapper<TValue> {
1412
+ /**
1413
+ * @see _.invoke
1414
+ */
1415
+ invoke(path: PropertyPath, ...args: any[]): any;
1416
+ }
1417
+ interface LoDashExplicitWrapper<TValue> {
1418
+ /**
1419
+ * @see _.invoke
1420
+ */
1421
+ invoke(path: PropertyPath, ...args: any[]): LoDashExplicitWrapper<any>;
1422
+ }
1423
+ interface LoDashStatic {
1424
+ /**
1425
+ * Creates an array of the own enumerable property names of object.
1426
+ *
1427
+ * Note: Non-object values are coerced to objects. See the ES spec for more details.
1428
+ *
1429
+ * @param object The object to query.
1430
+ * @return Returns the array of property names.
1431
+ */
1432
+ keys(object?: any): string[];
1433
+ }
1434
+ interface LoDashImplicitWrapper<TValue> {
1435
+ /**
1436
+ * @see _.keys
1437
+ */
1438
+ keys(): Collection<string>;
1439
+ }
1440
+ interface LoDashExplicitWrapper<TValue> {
1441
+ /**
1442
+ * @see _.keys
1443
+ */
1444
+ keys(): CollectionChain<string>;
1445
+ }
1446
+ interface LoDashStatic {
1447
+ /**
1448
+ * Creates an array of the own and inherited enumerable property names of object.
1449
+ *
1450
+ * Note: Non-object values are coerced to objects.
1451
+ *
1452
+ * @param object The object to query.
1453
+ * @return An array of property names.
1454
+ */
1455
+ keysIn(object?: any): string[];
1456
+ }
1457
+ interface LoDashImplicitWrapper<TValue> {
1458
+ /**
1459
+ * @see _.keysIn
1460
+ */
1461
+ keysIn(): Collection<string>;
1462
+ }
1463
+ interface LoDashExplicitWrapper<TValue> {
1464
+ /**
1465
+ * @see _.keysIn
1466
+ */
1467
+ keysIn(): CollectionChain<string>;
1468
+ }
1469
+ interface LoDashStatic {
1470
+ /**
1471
+ * The opposite of _.mapValues; this method creates an object with the same values as object and keys generated
1472
+ * by running each own enumerable property of object through iteratee.
1473
+ *
1474
+ * @param object The object to iterate over.
1475
+ * @param iteratee The function invoked per iteration.
1476
+ * @return Returns the new mapped object.
1477
+ */
1478
+ mapKeys<T>(object: List<T> | null | undefined, iteratee?: ListIteratee<T>): Dictionary<T>;
1479
+ /**
1480
+ * @see _.mapKeys
1481
+ */
1482
+ mapKeys<T extends object>(object: T | null | undefined, iteratee?: ObjectIteratee<T>): Dictionary<T[keyof T]>;
1483
+ }
1484
+ interface Collection<T> {
1485
+ /**
1486
+ * @see _.mapKeys
1487
+ */
1488
+ mapKeys(iteratee?: ListIteratee<T>): Object<Dictionary<T>>;
1489
+ }
1490
+ interface Object<T> {
1491
+ /**
1492
+ * @see _.mapKeys
1493
+ */
1494
+ mapKeys(iteratee?: ObjectIteratee<T>): Object<Dictionary<T[keyof T]>>;
1495
+ }
1496
+ interface CollectionChain<T> {
1497
+ /**
1498
+ * @see _.mapKeys
1499
+ */
1500
+ mapKeys(iteratee?: ListIteratee<T>): ObjectChain<Dictionary<T>>;
1501
+ }
1502
+ interface ObjectChain<T> {
1503
+ /**
1504
+ * @see _.mapKeys
1505
+ */
1506
+ mapKeys(iteratee?: ObjectIteratee<T>): ObjectChain<Dictionary<T[keyof T]>>;
1507
+ }
1508
+ interface LoDashStatic {
1509
+ /**
1510
+ * Creates an object with the same keys as object and values generated by running each own
1511
+ * enumerable property of object through iteratee. The iteratee function is
1512
+ * invoked with three arguments: (value, key, object).
1513
+ *
1514
+ * @param object The object to iterate over.
1515
+ * @param iteratee The function invoked per iteration.
1516
+ * @return Returns the new mapped object.
1517
+ */
1518
+ mapValues<TResult>(obj: string | null | undefined, callback: StringIterator<TResult>): NumericDictionary<TResult>;
1519
+ /**
1520
+ * @see _.mapValues
1521
+ */
1522
+ mapValues<T extends object, TResult>(obj: T | null | undefined, callback: ObjectIterator<T, TResult>): { [P in keyof T]: TResult };
1523
+ /**
1524
+ * @see _.mapValues
1525
+ */
1526
+ mapValues<T>(obj: Dictionary<T> | NumericDictionary<T> | null | undefined, iteratee: object): Dictionary<boolean>;
1527
+ /**
1528
+ * @see _.mapValues
1529
+ */
1530
+ mapValues<T extends object>(obj: T | null | undefined, iteratee: object): { [P in keyof T]: boolean };
1531
+ /**
1532
+ * @see _.mapValues
1533
+ */
1534
+ mapValues<T, TKey extends keyof T>(obj: Dictionary<T> | NumericDictionary<T> | null | undefined, iteratee: TKey): Dictionary<T[TKey]>;
1535
+ /**
1536
+ * @see _.mapValues
1537
+ */
1538
+ mapValues<T>(obj: Dictionary<T> | NumericDictionary<T> | null | undefined, iteratee: string): Dictionary<any>;
1539
+ /**
1540
+ * @see _.mapValues
1541
+ */
1542
+ mapValues<T extends object>(obj: T | null | undefined, iteratee: string): { [P in keyof T]: any };
1543
+ /**
1544
+ * @see _.mapValues
1545
+ */
1546
+ mapValues(obj: string | null | undefined): NumericDictionary<string>;
1547
+ /**
1548
+ * @see _.mapValues
1549
+ */
1550
+ mapValues<T>(obj: Dictionary<T> | NumericDictionary<T> | null | undefined): Dictionary<T>;
1551
+ /**
1552
+ * @see _.mapValues
1553
+ */
1554
+ mapValues<T extends object>(obj: T): T;
1555
+ /**
1556
+ * @see _.mapValues
1557
+ */
1558
+ mapValues<T extends object>(obj: T | null | undefined): PartialObject<T>;
1559
+ }
1560
+ interface String {
1561
+ /**
1562
+ * @see _.mapValues
1563
+ */
1564
+ mapValues<TResult>(callback: StringIterator<TResult>): Object<NumericDictionary<TResult>>;
1565
+ /**
1566
+ * @see _.mapValues
1567
+ */
1568
+ mapValues(): Object<NumericDictionary<string>>;
1569
+ }
1570
+ interface Collection<T> {
1571
+ /**
1572
+ * @see _.mapValues
1573
+ */
1574
+ mapValues<TResult>(callback: DictionaryIterator<T, TResult>): Object<Dictionary<TResult>>;
1575
+ /**
1576
+ * @see _.mapValues
1577
+ */
1578
+ mapValues<TKey extends keyof T>(iteratee: TKey): Object<Dictionary<T[TKey]>>;
1579
+ /**
1580
+ * @see _.mapValues
1581
+ */
1582
+ mapValues(iteratee: object): Object<Dictionary<boolean>>;
1583
+ /**
1584
+ * @see _.mapValues
1585
+ */
1586
+ mapValues(iteratee: string): Object<Dictionary<any>>;
1587
+ /**
1588
+ * @see _.mapValues
1589
+ */
1590
+ mapValues(): Object<Dictionary<T>>;
1591
+ }
1592
+ interface Object<T> {
1593
+ /**
1594
+ * @see _.mapValues
1595
+ */
1596
+ mapValues<TResult>(callback: ObjectIterator<T, TResult>): Object<{ [P in keyof T]: TResult }>;
1597
+ /**
1598
+ * @see _.mapValues
1599
+ */
1600
+ mapValues<TResult>(callback: DictionaryIterator<T[keyof T], TResult>): Object<Dictionary<TResult>>;
1601
+ /**
1602
+ * @see _.mapValues
1603
+ */
1604
+ mapValues(iteratee: object): Object<{ [P in keyof T]: boolean }>;
1605
+ /**
1606
+ * @see _.mapValues
1607
+ */
1608
+ mapValues<TKey extends keyof T[keyof T]>(iteratee: TKey): Object<Dictionary<T[keyof T][TKey]>>;
1609
+ /**
1610
+ * @see _.mapValues
1611
+ */
1612
+ mapValues(iteratee: string): Object<{ [P in keyof T]: any }>;
1613
+ /**
1614
+ * @see _.mapValues
1615
+ */
1616
+ mapValues(): Object<T>;
1617
+ }
1618
+ interface StringChain {
1619
+ /**
1620
+ * @see _.mapValues
1621
+ */
1622
+ mapValues<TResult>(callback: StringIterator<TResult>): ObjectChain<NumericDictionary<TResult>>;
1623
+ /**
1624
+ * @see _.mapValues
1625
+ */
1626
+ mapValues(): ObjectChain<NumericDictionary<string>>;
1627
+ }
1628
+ interface StringNullableChain {
1629
+ /**
1630
+ * @see _.mapValues
1631
+ */
1632
+ mapValues<TResult>(callback: StringIterator<TResult>): ObjectChain<NumericDictionary<TResult>>;
1633
+ /**
1634
+ * @see _.mapValues
1635
+ */
1636
+ mapValues(): ObjectChain<NumericDictionary<string>>;
1637
+ }
1638
+ interface CollectionChain<T> {
1639
+ /**
1640
+ * @see _.mapValues
1641
+ */
1642
+ mapValues<TResult>(callback: DictionaryIterator<T, TResult>): ObjectChain<Dictionary<TResult>>;
1643
+ /**
1644
+ * @see _.mapValues
1645
+ */
1646
+ mapValues<TKey extends keyof T>(iteratee: TKey): ObjectChain<Dictionary<T[TKey]>>;
1647
+ /**
1648
+ * @see _.mapValues
1649
+ */
1650
+ mapValues(iteratee: object): ObjectChain<Dictionary<boolean>>;
1651
+ /**
1652
+ * @see _.mapValues
1653
+ */
1654
+ mapValues(iteratee: string): ObjectChain<Dictionary<any>>;
1655
+ /**
1656
+ * @see _.mapValues
1657
+ */
1658
+ mapValues(): ObjectChain<Dictionary<T>>;
1659
+ }
1660
+ interface ObjectChain<T> {
1661
+ /**
1662
+ * @see _.mapValues
1663
+ */
1664
+ mapValues<TResult>(callback: ObjectIterator<T, TResult>): ObjectChain<{ [P in keyof T]: TResult }>;
1665
+ /**
1666
+ * @see _.mapValues
1667
+ */
1668
+ mapValues<TResult>(callback: DictionaryIterator<T[keyof T], TResult>): ObjectChain<Dictionary<TResult>>;
1669
+ /**
1670
+ * @see _.mapValues
1671
+ */
1672
+ mapValues(iteratee: object): ObjectChain<{ [P in keyof T]: boolean }>;
1673
+ /**
1674
+ * @see _.mapValues
1675
+ */
1676
+ mapValues<TKey extends keyof T[keyof T]>(iteratee: TKey): ObjectChain<Dictionary<T[keyof T][TKey]>>;
1677
+ /**
1678
+ * @see _.mapValues
1679
+ */
1680
+ mapValues(iteratee: string): ObjectChain<{ [P in keyof T]: any }>;
1681
+ /**
1682
+ * @see _.mapValues
1683
+ */
1684
+ mapValues(): ObjectChain<T>;
1685
+ }
1686
+ interface LoDashStatic {
1687
+ /**
1688
+ * Recursively merges own and inherited enumerable properties of source
1689
+ * objects into the destination object, skipping source properties that resolve
1690
+ * to `undefined`. Array and plain object properties are merged recursively.
1691
+ * Other objects and value types are overridden by assignment. Source objects
1692
+ * are applied from left to right. Subsequent sources overwrite property
1693
+ * assignments of previous sources.
1694
+ *
1695
+ * **Note:** This method mutates `object`.
1696
+ *
1697
+ * @category Object
1698
+ * @param object The destination object.
1699
+ * @param [sources] The source objects.
1700
+ * @returns Returns `object`.
1701
+ * @example
1702
+ *
1703
+ * var users = {
1704
+ * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]
1705
+ * };
1706
+ *
1707
+ * var ages = {
1708
+ * 'data': [{ 'age': 36 }, { 'age': 40 }]
1709
+ * };
1710
+ *
1711
+ * _.merge(users, ages);
1712
+ * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }
1713
+ */
1714
+ merge<TObject, TSource>(object: TObject, source: TSource): TObject & TSource;
1715
+ /**
1716
+ * @see _.merge
1717
+ */
1718
+ merge<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2): TObject & TSource1 & TSource2;
1719
+ /**
1720
+ * @see _.merge
1721
+ */
1722
+ merge<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3): TObject & TSource1 & TSource2 & TSource3;
1723
+ /**
1724
+ * @see _.merge
1725
+ */
1726
+ merge<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): TObject & TSource1 & TSource2 & TSource3 & TSource4;
1727
+ /**
1728
+ * @see _.merge
1729
+ */
1730
+ merge(object: any, ...otherArgs: any[]): any;
1731
+ }
1732
+ interface Object<T> {
1733
+ /**
1734
+ * @see _.merge
1735
+ */
1736
+ merge<TSource>(source: TSource): Object<T & TSource>;
1737
+ /**
1738
+ * @see _.merge
1739
+ */
1740
+ merge<TSource1, TSource2>(source1: TSource1, source2: TSource2): Object<T & TSource1 & TSource2>;
1741
+ /**
1742
+ * @see _.merge
1743
+ */
1744
+ merge<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): Object<T & TSource1 & TSource2 & TSource3>;
1745
+ /**
1746
+ * @see _.merge
1747
+ */
1748
+ merge<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
1749
+ /**
1750
+ * @see _.merge
1751
+ */
1752
+ merge(...otherArgs: any[]): Object<any>;
1753
+ }
1754
+ interface ObjectChain<T> {
1755
+ /**
1756
+ * @see _.merge
1757
+ */
1758
+ merge<TSource>(source: TSource): ObjectChain<T & TSource>;
1759
+ /**
1760
+ * @see _.merge
1761
+ */
1762
+ merge<TSource1, TSource2>(source1: TSource1, source2: TSource2): ObjectChain<T & TSource1 & TSource2>;
1763
+ /**
1764
+ * @see _.merge
1765
+ */
1766
+ merge<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3): ObjectChain<T & TSource1 & TSource2 & TSource3>;
1767
+ /**
1768
+ * @see _.merge
1769
+ */
1770
+ merge<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
1771
+ /**
1772
+ * @see _.merge
1773
+ */
1774
+ merge(...otherArgs: any[]): ObjectChain<any>;
1775
+ }
1776
+ type MergeWithCustomizer = { bivariantHack(value: any, srcValue: any, key: string, object: any, source: any): any; }["bivariantHack"];
1777
+ // TODO: Probably should just put all these methods on Object and forget about it.
1778
+ // oh, except for Collection<any> I GUESS
1779
+ interface LoDashStatic {
1780
+ /**
1781
+ * This method is like `_.merge` except that it accepts `customizer` which
1782
+ * is invoked to produce the merged values of the destination and source
1783
+ * properties. If `customizer` returns `undefined` merging is handled by the
1784
+ * method instead. The `customizer` is invoked with seven arguments:
1785
+ * (objValue, srcValue, key, object, source, stack).
1786
+ *
1787
+ * @category Object
1788
+ * @param object The destination object.
1789
+ * @param sources The source objects.
1790
+ * @param customizer The function to customize assigned values.
1791
+ * @returns Returns `object`.
1792
+ * @example
1793
+ *
1794
+ * function customizer(objValue, srcValue) {
1795
+ * if (_.isArray(objValue)) {
1796
+ * return objValue.concat(srcValue);
1797
+ * }
1798
+ * }
1799
+ *
1800
+ * var object = {
1801
+ * 'fruits': ['apple'],
1802
+ * 'vegetables': ['beet']
1803
+ * };
1804
+ *
1805
+ * var other = {
1806
+ * 'fruits': ['banana'],
1807
+ * 'vegetables': ['carrot']
1808
+ * };
1809
+ *
1810
+ * _.mergeWith(object, other, customizer);
1811
+ * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }
1812
+ */
1813
+ mergeWith<TObject, TSource>(object: TObject, source: TSource, customizer: MergeWithCustomizer): TObject & TSource;
1814
+ /**
1815
+ * @see _.mergeWith
1816
+ */
1817
+ mergeWith<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2, customizer: MergeWithCustomizer): TObject & TSource1 & TSource2;
1818
+ /**
1819
+ * @see _.mergeWith
1820
+ */
1821
+ mergeWith<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, customizer: MergeWithCustomizer): TObject & TSource1 & TSource2 & TSource3;
1822
+ /**
1823
+ * @see _.mergeWith
1824
+ */
1825
+ mergeWith<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: MergeWithCustomizer): TObject & TSource1 & TSource2 & TSource3 & TSource4;
1826
+ /**
1827
+ * @see _.mergeWith
1828
+ */
1829
+ mergeWith(object: any, ...otherArgs: any[]): any;
1830
+ }
1831
+ interface Object<T> {
1832
+ /**
1833
+ * @see _.mergeWith
1834
+ */
1835
+ mergeWith<TSource>(source: TSource, customizer: MergeWithCustomizer): Object<T & TSource>;
1836
+ /**
1837
+ * @see _.mergeWith
1838
+ */
1839
+ mergeWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: MergeWithCustomizer): Object<T & TSource1 & TSource2>;
1840
+ /**
1841
+ * @see _.mergeWith
1842
+ */
1843
+ mergeWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: MergeWithCustomizer): Object<T & TSource1 & TSource2 & TSource3>;
1844
+ /**
1845
+ * @see _.mergeWith
1846
+ */
1847
+ mergeWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: MergeWithCustomizer): Object<T & TSource1 & TSource2 & TSource3 & TSource4>;
1848
+ /**
1849
+ * @see _.mergeWith
1850
+ */
1851
+ mergeWith(...otherArgs: any[]): Object<any>;
1852
+ }
1853
+ interface ObjectChain<T> {
1854
+ /**
1855
+ * @see _.mergeWith
1856
+ */
1857
+ mergeWith<TSource>(source: TSource, customizer: MergeWithCustomizer): ObjectChain<T & TSource>;
1858
+ /**
1859
+ * @see _.mergeWith
1860
+ */
1861
+ mergeWith<TSource1, TSource2>(source1: TSource1, source2: TSource2, customizer: MergeWithCustomizer): ObjectChain<T & TSource1 & TSource2>;
1862
+ /**
1863
+ * @see _.mergeWith
1864
+ */
1865
+ mergeWith<TSource1, TSource2, TSource3>(source1: TSource1, source2: TSource2, source3: TSource3, customizer: MergeWithCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3>;
1866
+ /**
1867
+ * @see _.mergeWith
1868
+ */
1869
+ mergeWith<TSource1, TSource2, TSource3, TSource4>(source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4, customizer: MergeWithCustomizer): ObjectChain<T & TSource1 & TSource2 & TSource3 & TSource4>;
1870
+ /**
1871
+ * @see _.mergeWith
1872
+ */
1873
+ mergeWith(...otherArgs: any[]): ObjectChain<any>;
1874
+ }
1875
+ interface LoDashStatic {
1876
+ /**
1877
+ * The opposite of `_.pick`; this method creates an object composed of the
1878
+ * own and inherited enumerable properties of `object` that are not omitted.
1879
+ *
1880
+ * @category Object
1881
+ * @param object The source object.
1882
+ * @param [paths] The property names to omit, specified
1883
+ * individually or in arrays..
1884
+ * @returns Returns the new object.
1885
+ * @example
1886
+ *
1887
+ * var object = { 'a': 1, 'b': '2', 'c': 3 };
1888
+ *
1889
+ * _.omit(object, ['a', 'c']);
1890
+ * // => { 'b': '2' }
1891
+ */
1892
+ omit<T extends object, K extends PropertyName[]>(
1893
+ object: T | null | undefined,
1894
+ ...paths: K
1895
+ ): Pick<T, Exclude<keyof T, K[number]>>;
1896
+ /**
1897
+ * @see _.omit
1898
+ */
1899
+ omit<T extends object, K extends keyof T>(object: T | null | undefined, ...paths: Array<Many<K>>): Omit<T, K>;
1900
+ /**
1901
+ * @see _.omit
1902
+ */
1903
+ omit<T extends object>(object: T | null | undefined, ...paths: Array<Many<PropertyName>>): PartialObject<T>;
1904
+ }
1905
+ interface Collection<T> {
1906
+ /**
1907
+ * @see _.omit
1908
+ */
1909
+ omit(...paths: Array<Many<PropertyName>>): Collection<T>;
1910
+ }
1911
+ interface Object<T> {
1912
+ /**
1913
+ * @see _.omit
1914
+ */
1915
+ omit<K extends keyof T>(...paths: Array<Many<K>>): Object<Omit<T, K>>;
1916
+ /**
1917
+ * @see _.omit
1918
+ */
1919
+ omit(...paths: Array<Many<PropertyName | IterateeShorthand<T>>>): Object<PartialObject<T>>;
1920
+ }
1921
+ interface CollectionChain<T> {
1922
+ /**
1923
+ * @see _.omit
1924
+ */
1925
+ omit(...paths: Array<Many<PropertyName>>): CollectionChain<T>;
1926
+ }
1927
+ interface ObjectChain<T> {
1928
+ /**
1929
+ * @see _.omit
1930
+ */
1931
+ omit<K extends keyof T>(...paths: Array<Many<K>>): ObjectChain<Omit<T, K>>;
1932
+ /**
1933
+ * @see _.omit
1934
+ */
1935
+ omit(...paths: Array<Many<PropertyName>>): ObjectChain<PartialObject<T>>;
1936
+ }
1937
+ interface LoDashStatic {
1938
+ /**
1939
+ * The opposite of `_.pickBy`; this method creates an object composed of the
1940
+ * own and inherited enumerable properties of `object` that `predicate`
1941
+ * doesn't return truthy for.
1942
+ *
1943
+ * @category Object
1944
+ * @param object The source object.
1945
+ * @param [predicate=_.identity] The function invoked per property.
1946
+ * @returns Returns the new object.
1947
+ * @example
1948
+ *
1949
+ * var object = { 'a': 1, 'b': '2', 'c': 3 };
1950
+ *
1951
+ * _.omitBy(object, _.isNumber);
1952
+ * // => { 'b': '2' }
1953
+ */
1954
+ omitBy<T>(object: Dictionary<T> | null | undefined, predicate?: ValueKeyIteratee<T>): Dictionary<T>;
1955
+ /**
1956
+ * @see _.omitBy
1957
+ */
1958
+ omitBy<T>(object: NumericDictionary<T> | null | undefined, predicate?: ValueKeyIteratee<T>): NumericDictionary<T>;
1959
+ /**
1960
+ * @see _.omitBy
1961
+ */
1962
+ omitBy<T extends object>(object: T | null | undefined, predicate: ValueKeyIteratee<T[keyof T]>): PartialObject<T>;
1963
+ }
1964
+ interface Collection<T> {
1965
+ /**
1966
+ * @see _.omitBy
1967
+ */
1968
+ omitBy(predicate?: ValueKeyIteratee<T>): Object<Dictionary<T>>;
1969
+ }
1970
+ interface Object<T> {
1971
+ /**
1972
+ * @see _.omitBy
1973
+ */
1974
+ omitBy(predicate: ValueKeyIteratee<T[keyof T]>): Object<PartialObject<T>>;
1975
+ }
1976
+ interface CollectionChain<T> {
1977
+ /**
1978
+ * @see _.omitBy
1979
+ */
1980
+ omitBy(predicate?: ValueKeyIteratee<T>): ObjectChain<Dictionary<T>>;
1981
+ }
1982
+ interface ObjectChain<T> {
1983
+ /**
1984
+ * @see _.omitBy
1985
+ */
1986
+ omitBy(predicate: ValueKeyIteratee<T[keyof T]>): ObjectChain<PartialObject<T>>;
1987
+ }
1988
+ interface LoDashStatic {
1989
+ /**
1990
+ * Creates an object composed of the picked `object` properties.
1991
+ *
1992
+ * @category Object
1993
+ * @param object The source object.
1994
+ * @param [props] The property names to pick, specified
1995
+ * individually or in arrays.
1996
+ * @returns Returns the new object.
1997
+ * @example
1998
+ *
1999
+ * var object = { 'a': 1, 'b': '2', 'c': 3 };
2000
+ *
2001
+ * _.pick(object, ['a', 'c']);
2002
+ * // => { 'a': 1, 'c': 3 }
2003
+ */
2004
+ pick<T extends object, U extends keyof T>(object: T, ...props: Array<Many<U>>): Pick<T, U>;
2005
+ /**
2006
+ * @see _.pick
2007
+ */
2008
+ pick<T>(object: T | null | undefined, ...props: PropertyPath[]): PartialObject<T>;
2009
+ }
2010
+ interface Object<T> {
2011
+ /**
2012
+ * @see _.pick
2013
+ */
2014
+ pick<U extends keyof T>(...props: Array<Many<U>>): Object<Pick<T, U>>;
2015
+ /**
2016
+ * @see _.pick
2017
+ */
2018
+ pick(...props: PropertyPath[]): Object<PartialObject<T>>;
2019
+ }
2020
+ interface ObjectChain<T> {
2021
+ /**
2022
+ * @see _.pick
2023
+ */
2024
+ pick<U extends keyof T>(...props: Array<Many<U>>): ObjectChain<Pick<T, U>>;
2025
+ /**
2026
+ * @see _.pick
2027
+ */
2028
+ pick(...props: PropertyPath[]): ObjectChain<PartialObject<T>>;
2029
+ }
2030
+ interface LoDashStatic {
2031
+ /**
2032
+ * Creates an object composed of the `object` properties `predicate` returns
2033
+ * truthy for. The predicate is invoked with two arguments: (value, key).
2034
+ *
2035
+ * @category Object
2036
+ * @param object The source object.
2037
+ * @param [predicate=_.identity] The function invoked per property.
2038
+ * @returns Returns the new object.
2039
+ * @example
2040
+ *
2041
+ * var object = { 'a': 1, 'b': '2', 'c': 3 };
2042
+ *
2043
+ * _.pickBy(object, _.isNumber);
2044
+ * // => { 'a': 1, 'c': 3 }
2045
+ */
2046
+ pickBy<T, S extends T>(object: Dictionary<T> | null | undefined, predicate: ValueKeyIterateeTypeGuard<T, S>): Dictionary<S>;
2047
+ /**
2048
+ * @see _.pickBy
2049
+ */
2050
+ pickBy<T, S extends T>(object: NumericDictionary<T> | null | undefined, predicate: ValueKeyIterateeTypeGuard<T, S>): NumericDictionary<S>;
2051
+ /**
2052
+ * @see _.pickBy
2053
+ */
2054
+ pickBy<T>(object: Dictionary<T> | null | undefined, predicate?: ValueKeyIteratee<T>): Dictionary<T>;
2055
+ /**
2056
+ * @see _.pickBy
2057
+ */
2058
+ pickBy<T>(object: NumericDictionary<T> | null | undefined, predicate?: ValueKeyIteratee<T>): NumericDictionary<T>;
2059
+ /**
2060
+ * @see _.pickBy
2061
+ */
2062
+ pickBy<T extends object>(object: T | null | undefined, predicate?: ValueKeyIteratee<T[keyof T]>): PartialObject<T>;
2063
+ }
2064
+ interface Collection<T> {
2065
+ /**
2066
+ * @see _.pickBy
2067
+ */
2068
+ pickBy<S extends T>(predicate: ValueKeyIterateeTypeGuard<T, S>): Object<Dictionary<S>>;
2069
+ /**
2070
+ * @see _.pickBy
2071
+ */
2072
+ pickBy(predicate?: ValueKeyIteratee<T>): Object<Dictionary<T>>;
2073
+ }
2074
+ interface Object<T> {
2075
+ /**
2076
+ * @see _.pickBy
2077
+ */
2078
+ pickBy<S extends T[keyof T]>(predicate: ValueKeyIterateeTypeGuard<T[keyof T], S>): Object<NumericDictionary<unknown> extends T ? NumericDictionary<S> : Dictionary<S>>;
2079
+ /**
2080
+ * @see _.pickBy
2081
+ */
2082
+ pickBy(predicate?: ValueKeyIteratee<T[keyof T]>): Object<T extends Dictionary<unknown> ? Dictionary<T[keyof T]> : T extends NumericDictionary<unknown> ? NumericDictionary<T[keyof T]> : PartialObject<T>>;
2083
+ }
2084
+ interface CollectionChain<T> {
2085
+ /**
2086
+ * @see _.pickBy
2087
+ */
2088
+ pickBy<S extends T>(predicate: ValueKeyIterateeTypeGuard<T, S>): ObjectChain<Dictionary<S>>;
2089
+ /**
2090
+ * @see _.pickBy
2091
+ */
2092
+ pickBy(predicate?: ValueKeyIteratee<T>): ObjectChain<Dictionary<T>>;
2093
+ }
2094
+ interface ObjectChain<T> {
2095
+ /**
2096
+ * @see _.pickBy
2097
+ */
2098
+ pickBy<S extends T[keyof T]>(predicate: ValueKeyIterateeTypeGuard<T[keyof T], S>): ObjectChain<NumericDictionary<unknown> extends T ? NumericDictionary<S> : Dictionary<S>>;
2099
+ /**
2100
+ * @see _.pickBy
2101
+ */
2102
+ pickBy(predicate?: ValueKeyIteratee<T[keyof T]>): ObjectChain<T extends Dictionary<unknown> ? Dictionary<T[keyof T]> : T extends NumericDictionary<unknown> ? NumericDictionary<T[keyof T]> : PartialObject<T>>;
2103
+ }
2104
+ interface LoDashStatic {
2105
+ /**
2106
+ * This method is like _.get except that if the resolved value is a function it’s invoked with the this binding
2107
+ * of its parent object and its result is returned.
2108
+ *
2109
+ * @param object The object to query.
2110
+ * @param path The path of the property to resolve.
2111
+ * @param defaultValue The value returned if the resolved value is undefined.
2112
+ * @return Returns the resolved value.
2113
+ */
2114
+ result<TResult>(object: any, path: PropertyPath, defaultValue?: TResult | ((...args: any[]) => TResult)): TResult;
2115
+ }
2116
+ interface LoDashImplicitWrapper<TValue> {
2117
+ /**
2118
+ * @see _.result
2119
+ */
2120
+ result<TResult>(path: PropertyPath, defaultValue?: TResult | ((...args: any[]) => TResult)): TResult;
2121
+ }
2122
+ interface LoDashExplicitWrapper<TValue> {
2123
+ /**
2124
+ * @see _.result
2125
+ */
2126
+ result<TResult>(path: PropertyPath, defaultValue?: TResult | ((...args: any[]) => TResult)): ExpChain<TResult>;
2127
+ }
2128
+ interface LoDashStatic {
2129
+ /**
2130
+ * Sets the value at path of object. If a portion of path doesn’t exist it’s created. Arrays are created for
2131
+ * missing index properties while objects are created for all other missing properties. Use _.setWith to
2132
+ * customize path creation.
2133
+ *
2134
+ * @param object The object to modify.
2135
+ * @param path The path of the property to set.
2136
+ * @param value The value to set.
2137
+ * @return Returns object.
2138
+ */
2139
+ set<T extends object>(object: T, path: PropertyPath, value: any): T;
2140
+ /**
2141
+ * @see _.set
2142
+ */
2143
+ set<TResult>(object: object, path: PropertyPath, value: any): TResult;
2144
+ }
2145
+ interface LoDashImplicitWrapper<TValue> {
2146
+ /**
2147
+ * @see _.set
2148
+ */
2149
+ set(path: PropertyPath, value: any): this;
2150
+ /**
2151
+ * @see _.set
2152
+ */
2153
+ set<TResult>(path: PropertyPath, value: any): ImpChain<TResult>;
2154
+ }
2155
+ interface LoDashExplicitWrapper<TValue> {
2156
+ /**
2157
+ * @see _.set
2158
+ */
2159
+ set(path: PropertyPath, value: any): this;
2160
+ /**
2161
+ * @see _.set
2162
+ */
2163
+ set<TResult>(path: PropertyPath, value: any): ExpChain<TResult>;
2164
+ }
2165
+ type SetWithCustomizer<T> = (nsValue: any, key: string, nsObject: T) => any;
2166
+ interface LoDashStatic {
2167
+ /**
2168
+ * This method is like _.set except that it accepts customizer which is invoked to produce the objects of
2169
+ * path. If customizer returns undefined path creation is handled by the method instead. The customizer is
2170
+ * invoked with three arguments: (nsValue, key, nsObject).
2171
+ *
2172
+ * @param object The object to modify.
2173
+ * @param path The path of the property to set.
2174
+ * @param value The value to set.
2175
+ * @param customizer The function to customize assigned values.
2176
+ * @return Returns object.
2177
+ */
2178
+ setWith<T extends object>(object: T, path: PropertyPath, value: any, customizer?: SetWithCustomizer<T>): T;
2179
+ /**
2180
+ * @see _.setWith
2181
+ */
2182
+ setWith<T extends object, TResult>(object: T, path: PropertyPath, value: any, customizer?: SetWithCustomizer<T>): TResult;
2183
+ }
2184
+ interface LoDashImplicitWrapper<TValue> {
2185
+ /**
2186
+ * @see _.setWith
2187
+ */
2188
+ setWith(path: PropertyPath, value: any, customizer?: SetWithCustomizer<TValue>): this;
2189
+ /**
2190
+ * @see _.setWith
2191
+ */
2192
+ setWith<TResult>(path: PropertyPath, value: any, customizer?: SetWithCustomizer<TValue>): ImpChain<TResult>;
2193
+ }
2194
+ interface LoDashExplicitWrapper<TValue> {
2195
+ /**
2196
+ * @see _.setWith
2197
+ */
2198
+ setWith(path: PropertyPath, value: any, customizer?: SetWithCustomizer<TValue>): this;
2199
+ /**
2200
+ * @see _.setWith
2201
+ */
2202
+ setWith<TResult>(path: PropertyPath, value: any, customizer?: SetWithCustomizer<TValue>): ExpChain<TResult>;
2203
+ }
2204
+ interface LoDashStatic {
2205
+ /**
2206
+ * Creates an array of own enumerable key-value pairs for object.
2207
+ *
2208
+ * @param object The object to query.
2209
+ * @return Returns the new array of key-value pairs.
2210
+ */
2211
+ toPairs<T>(object?: Dictionary<T> | NumericDictionary<T>): Array<[string, T]>;
2212
+ /**
2213
+ * @see _.toPairs
2214
+ */
2215
+ toPairs(object?: object): Array<[string, any]>;
2216
+ }
2217
+ interface LoDashImplicitWrapper<TValue> {
2218
+ /**
2219
+ * @see _.toPairs
2220
+ */
2221
+ toPairs(): Collection<[string, TValue extends Dictionary<infer U> ? U : TValue extends NumericDictionary<infer V> ? V : any]>;
2222
+ }
2223
+ interface LoDashExplicitWrapper<TValue> {
2224
+ /**
2225
+ * @see _.toPairs
2226
+ */
2227
+ toPairs(): CollectionChain<[string, TValue extends Dictionary<infer U> ? U : TValue extends NumericDictionary<infer V> ? V : any]>;
2228
+ }
2229
+ interface LoDashStatic {
2230
+ /**
2231
+ * Creates an array of own and inherited enumerable key-value pairs for object.
2232
+ *
2233
+ * @param object The object to query.
2234
+ * @return Returns the new array of key-value pairs.
2235
+ */
2236
+ toPairsIn<T>(object?: Dictionary<T> | NumericDictionary<T>): Array<[string, T]>;
2237
+ /**
2238
+ * @see _.toPairsIn
2239
+ */
2240
+ toPairsIn(object?: object): Array<[string, any]>;
2241
+ }
2242
+ interface LoDashImplicitWrapper<TValue> {
2243
+ /**
2244
+ * @see _.toPairsIn
2245
+ */
2246
+ toPairsIn(): Collection<[string, TValue extends Dictionary<infer U> ? U : TValue extends NumericDictionary<infer V> ? V : any]>;
2247
+ }
2248
+ interface LoDashExplicitWrapper<TValue> {
2249
+ /**
2250
+ * @see _.toPairsIn
2251
+ */
2252
+ toPairsIn(): CollectionChain<[string, TValue extends Dictionary<infer U> ? U : TValue extends NumericDictionary<infer V> ? V : any]>;
2253
+ }
2254
+ interface LoDashStatic {
2255
+ /**
2256
+ * An alternative to _.reduce; this method transforms object to a new accumulator object which is the result of
2257
+ * running each of its own enumerable properties through iteratee, with each invocation potentially mutating
2258
+ * the accumulator object. The iteratee is invoked with four arguments: (accumulator,
2259
+ * value, key, object). Iteratee functions may exit iteration early by explicitly returning false.
2260
+ *
2261
+ * @param object The object to iterate over.
2262
+ * @param iteratee The function invoked per iteration.
2263
+ * @param accumulator The custom accumulator value.
2264
+ * @return Returns the accumulated value.
2265
+ */
2266
+ transform<T, TResult>(object: ReadonlyArray<T>, iteratee: MemoVoidArrayIterator<T, TResult>, accumulator?: TResult): TResult;
2267
+ /**
2268
+ * @see _.transform
2269
+ */
2270
+ transform<T, TResult>(object: Dictionary<T>, iteratee: MemoVoidDictionaryIterator<T, string, TResult>, accumulator?: TResult): TResult;
2271
+ /**
2272
+ * @see _.transform
2273
+ */
2274
+ transform<T extends object, TResult>(object: T, iteratee: MemoVoidDictionaryIterator<T[keyof T], keyof T, TResult>, accumulator?: TResult): TResult;
2275
+ /**
2276
+ * @see _.transform
2277
+ */
2278
+ transform(object: any[]): any[];
2279
+ /**
2280
+ * @see _.transform
2281
+ */
2282
+ transform(object: object): Dictionary<any>;
2283
+ }
2284
+ interface Collection<T> {
2285
+ /**
2286
+ * @see _.transform
2287
+ */
2288
+ transform<TResult>(iteratee: MemoVoidArrayIterator<T, TResult>, accumulator?: TResult): ImpChain<TResult>;
2289
+ /**
2290
+ * @see _.transform
2291
+ */
2292
+ transform(): Collection<any>;
2293
+ }
2294
+ interface Object<T> {
2295
+ /**
2296
+ * @see _.transform
2297
+ */
2298
+ transform<TResult>(iteratee: MemoVoidDictionaryIterator<T[keyof T], string, TResult>, accumulator?: TResult): ImpChain<TResult>;
2299
+ /**
2300
+ * @see _.transform
2301
+ */
2302
+ transform<TResult>(iteratee: MemoVoidDictionaryIterator<T[keyof T], keyof T, TResult>, accumulator?: TResult): ImpChain<TResult>;
2303
+ /**
2304
+ * @see _.transform
2305
+ */
2306
+ transform(): ImpChain<T extends Dictionary<unknown> ? Dictionary<any> : T>;
2307
+ }
2308
+ interface CollectionChain<T> {
2309
+ /**
2310
+ * @see _.transform
2311
+ */
2312
+ transform<TResult>(iteratee: MemoVoidArrayIterator<T, TResult>, accumulator?: TResult): ExpChain<TResult>;
2313
+ /**
2314
+ * @see _.transform
2315
+ */
2316
+ transform(): CollectionChain<any>;
2317
+ }
2318
+ interface ObjectChain<T> {
2319
+ /**
2320
+ * @see _.transform
2321
+ */
2322
+ transform<TResult>(iteratee: MemoVoidDictionaryIterator<T[keyof T], string, TResult>, accumulator?: TResult): ExpChain<TResult>;
2323
+ /**
2324
+ * @see _.transform
2325
+ */
2326
+ transform<TResult>(iteratee: MemoVoidDictionaryIterator<T[keyof T], keyof T, TResult>, accumulator?: TResult): ExpChain<TResult>;
2327
+ /**
2328
+ * @see _.transform
2329
+ */
2330
+ transform(): ExpChain<T extends Dictionary<unknown> ? Dictionary<any> : T>;
2331
+ }
2332
+ interface LoDashStatic {
2333
+ /**
2334
+ * Removes the property at path of object.
2335
+ *
2336
+ * Note: This method mutates object.
2337
+ *
2338
+ * @param object The object to modify.
2339
+ * @param path The path of the property to unset.
2340
+ * @return Returns true if the property is deleted, else false.
2341
+ */
2342
+ unset(object: any, path: PropertyPath): boolean;
2343
+ }
2344
+ interface LoDashImplicitWrapper<TValue> {
2345
+ /**
2346
+ * @see _.unset
2347
+ */
2348
+ unset(path: PropertyPath): Primitive<boolean>;
2349
+ }
2350
+ interface LoDashExplicitWrapper<TValue> {
2351
+ /**
2352
+ * @see _.unset
2353
+ */
2354
+ unset(path: PropertyPath): PrimitiveChain<boolean>;
2355
+ }
2356
+ interface LoDashStatic {
2357
+ /**
2358
+ * This method is like _.set except that accepts updater to produce the value to set. Use _.updateWith to
2359
+ * customize path creation. The updater is invoked with one argument: (value).
2360
+ *
2361
+ * @param object The object to modify.
2362
+ * @param path The path of the property to set.
2363
+ * @param updater The function to produce the updated value.
2364
+ * @return Returns object.
2365
+ */
2366
+ update(object: object, path: PropertyPath, updater: (value: any) => any): any;
2367
+ }
2368
+ interface LoDashImplicitWrapper<TValue> {
2369
+ /**
2370
+ * @see _.update
2371
+ */
2372
+ update(path: PropertyPath, updater: (value: any) => any): Object<any>;
2373
+ }
2374
+ interface LoDashExplicitWrapper<TValue> {
2375
+ /**
2376
+ * @see _.update
2377
+ */
2378
+ update(path: PropertyPath, updater: (value: any) => any): ObjectChain<any>;
2379
+ }
2380
+ interface LoDashStatic {
2381
+ /**
2382
+ * This method is like `_.update` except that it accepts `customizer` which is
2383
+ * invoked to produce the objects of `path`. If `customizer` returns `undefined`
2384
+ * path creation is handled by the method instead. The `customizer` is invoked
2385
+ * with three arguments: (nsValue, key, nsObject).
2386
+ *
2387
+ * **Note:** This method mutates `object`.
2388
+ *
2389
+ * @since 4.6.0
2390
+ * @category Object
2391
+ * @param object The object to modify.
2392
+ * @param path The path of the property to set.
2393
+ * @param updater The function to produce the updated value.
2394
+ * @param [customizer] The function to customize assigned values.
2395
+ * @returns Returns `object`.
2396
+ * @example
2397
+ *
2398
+ * var object = {};
2399
+ *
2400
+ * _.updateWith(object, '[0][1]', _.constant('a'), Object);
2401
+ * // => { '0': { '1': 'a' } }
2402
+ */
2403
+ updateWith<T extends object>(object: T, path: PropertyPath, updater: (oldValue: any) => any, customizer?: SetWithCustomizer<T>): T;
2404
+ /**
2405
+ * @see _.updateWith
2406
+ */
2407
+ updateWith<T extends object, TResult>(object: T, path: PropertyPath, updater: (oldValue: any) => any, customizer?: SetWithCustomizer<T>): TResult;
2408
+ }
2409
+ interface Object<T> {
2410
+ /**
2411
+ * @see _.updateWith
2412
+ */
2413
+ updateWith(path: PropertyPath, updater: (oldValue: any) => any, customizer?: SetWithCustomizer<T>): this;
2414
+ /**
2415
+ * @see _.updateWith
2416
+ */
2417
+ updateWith<TResult>(path: PropertyPath, updater: (oldValue: any) => any, customizer?: SetWithCustomizer<T>): Object<TResult>;
2418
+ }
2419
+ interface ObjectChain<T> {
2420
+ /**
2421
+ * @see _.updateWith
2422
+ */
2423
+ updateWith(path: PropertyPath, updater: (oldValue: any) => any, customizer?: SetWithCustomizer<T>): this;
2424
+ /**
2425
+ * @see _.updateWith
2426
+ */
2427
+ updateWith<TResult>(path: PropertyPath, updater: (oldValue: any) => any, customizer?: SetWithCustomizer<T>): ObjectChain<TResult>;
2428
+ }
2429
+ interface LoDashStatic {
2430
+ /**
2431
+ * Creates an array of the own enumerable property values of object.
2432
+ *
2433
+ * @param object The object to query.
2434
+ * @return Returns an array of property values.
2435
+ */
2436
+ values<T>(object: Dictionary<T> | NumericDictionary<T> | List<T> | null | undefined): T[];
2437
+ /**
2438
+ * @see _.values
2439
+ */
2440
+ values<T extends object>(object: T | null | undefined): Array<T[keyof T]>;
2441
+ /**
2442
+ * @see _.values
2443
+ */
2444
+ values(object: any): any[];
2445
+ }
2446
+ interface String {
2447
+ /**
2448
+ * @see _.values
2449
+ */
2450
+ values(): Collection<string>;
2451
+ }
2452
+ interface Object<T> {
2453
+ /**
2454
+ * @see _.values
2455
+ */
2456
+ values(): Collection<T[keyof T]>;
2457
+ }
2458
+ interface ObjectChain<T> {
2459
+ /**
2460
+ * @see _.values
2461
+ */
2462
+ values(): CollectionChain<T[keyof T]>;
2463
+ }
2464
+ interface StringChain {
2465
+ /**
2466
+ * @see _.values
2467
+ */
2468
+ values(): CollectionChain<string>;
2469
+ }
2470
+ interface StringNullableChain {
2471
+ /**
2472
+ * @see _.values
2473
+ */
2474
+ values(): CollectionChain<string>;
2475
+ }
2476
+ interface LoDashStatic {
2477
+ /**
2478
+ * Creates an array of the own and inherited enumerable property values of object.
2479
+ *
2480
+ * @param object The object to query.
2481
+ * @return Returns the array of property values.
2482
+ */
2483
+ valuesIn<T>(object: Dictionary<T> | NumericDictionary<T> | List<T> | null | undefined): T[];
2484
+ /**
2485
+ * @see _.valuesIn
2486
+ */
2487
+ valuesIn<T extends object>(object: T | null | undefined): Array<T[keyof T]>;
2488
+ }
2489
+ interface String {
2490
+ /**
2491
+ * @see _.valuesIn
2492
+ */
2493
+ valuesIn(): Collection<string>;
2494
+ }
2495
+ interface Object<T> {
2496
+ /**
2497
+ * @see _.valuesIn
2498
+ */
2499
+ valuesIn(): Collection<T[keyof T]>;
2500
+ }
2501
+ interface StringChain {
2502
+ /**
2503
+ * @see _.valuesIn
2504
+ */
2505
+ valuesIn(): CollectionChain<string>;
2506
+ }
2507
+ interface StringNullableChain {
2508
+ /**
2509
+ * @see _.valuesIn
2510
+ */
2511
+ valuesIn(): CollectionChain<string>;
2512
+ }
2513
+ interface ObjectChain<T> {
2514
+ /**
2515
+ * @see _.valuesIn
2516
+ */
2517
+ valuesIn(): CollectionChain<T[keyof T]>;
2518
+ }
2519
+ }