UNPKG

365 kBTypeScriptView Raw
1// AUTO-GENERATED: do not modify this file directly.
2// If you need to make changes, modify generate-fp.ts (if necessary), then open a terminal in types/lodash/scripts, and do:
3// npm install && npm run generate
4
5import lodash = require("./index");
6
7export = _;
8
9declare const _: _.LoDashFp;
10declare namespace _ {
11 interface LodashAdd {
12 (augend: number): LodashAdd1x1;
13 (augend: lodash.__, addend: number): LodashAdd1x2;
14 (augend: number, addend: number): number;
15 }
16 type LodashAdd1x1 = (addend: number) => number;
17 type LodashAdd1x2 = (augend: number) => number;
18 interface LodashAfter {
19 <TFunc extends (...args: any[]) => any>(func: TFunc): LodashAfter1x1<TFunc>;
20 (func: lodash.__, n: number): LodashAfter1x2;
21 <TFunc extends (...args: any[]) => any>(func: TFunc, n: number): TFunc;
22 }
23 type LodashAfter1x1<TFunc extends (...args: any[]) => any> = (n: number) => TFunc;
24 type LodashAfter1x2 = <TFunc extends (...args: any[]) => any>(func: TFunc) => TFunc;
25 interface LodashEvery {
26 <T>(predicate: lodash.ValueIterateeCustom<T, boolean>): LodashEvery1x1<T>;
27 <T>(predicate: lodash.__, collection: lodash.List<T> | null | undefined): LodashEvery1x2<T>;
28 <T>(predicate: lodash.ValueIterateeCustom<T, boolean>, collection: lodash.List<T> | null | undefined): boolean;
29 <T extends object>(predicate: lodash.__, collection: T | null | undefined): LodashEvery2x2<T>;
30 <T extends object>(predicate: lodash.ValueIterateeCustom<T[keyof T], boolean>, collection: T | null | undefined): boolean;
31 }
32 type LodashEvery1x1<T> = (collection: lodash.List<T> | object | null | undefined) => boolean;
33 type LodashEvery1x2<T> = (predicate: lodash.ValueIterateeCustom<T, boolean>) => boolean;
34 type LodashEvery2x2<T> = (predicate: lodash.ValueIterateeCustom<T[keyof T], boolean>) => boolean;
35 type LodashOverEvery = <T>(predicates: lodash.Many<(...args: T[]) => boolean>) => (...args: T[]) => boolean;
36 type LodashConstant = <T>(value: T) => () => T;
37 interface LodashSome {
38 <T>(predicate: lodash.ValueIterateeCustom<T, boolean>): LodashSome1x1<T>;
39 <T>(predicate: lodash.__, collection: lodash.List<T> | null | undefined): LodashSome1x2<T>;
40 <T>(predicate: lodash.ValueIterateeCustom<T, boolean>, collection: lodash.List<T> | null | undefined): boolean;
41 <T extends object>(predicate: lodash.__, collection: T | null | undefined): LodashSome2x2<T>;
42 <T extends object>(predicate: lodash.ValueIterateeCustom<T[keyof T], boolean>, collection: T | null | undefined): boolean;
43 }
44 type LodashSome1x1<T> = (collection: lodash.List<T> | object | null | undefined) => boolean;
45 type LodashSome1x2<T> = (predicate: lodash.ValueIterateeCustom<T, boolean>) => boolean;
46 type LodashSome2x2<T> = (predicate: lodash.ValueIterateeCustom<T[keyof T], boolean>) => boolean;
47 type LodashOverSome = <T>(predicates: lodash.Many<(...args: T[]) => boolean>) => (...args: T[]) => boolean;
48 type LodashApply = <TResult>(func: (...args: any[]) => TResult) => (...args: any[]) => TResult;
49 interface LodashAry {
50 (n: number): LodashAry1x1;
51 (n: lodash.__, func: (...args: any[]) => any): LodashAry1x2;
52 (n: number, func: (...args: any[]) => any): (...args: any[]) => any;
53 }
54 type LodashAry1x1 = (func: (...args: any[]) => any) => (...args: any[]) => any;
55 type LodashAry1x2 = (n: number) => (...args: any[]) => any;
56 interface LodashAssign {
57 <TObject>(object: TObject): LodashAssign1x1<TObject>;
58 <TSource>(object: lodash.__, source: TSource): LodashAssign1x2<TSource>;
59 <TObject, TSource>(object: TObject, source: TSource): TObject & TSource;
60 }
61 type LodashAssign1x1<TObject> = <TSource>(source: TSource) => TObject & TSource;
62 type LodashAssign1x2<TSource> = <TObject>(object: TObject) => TObject & TSource;
63 interface LodashAssignAll {
64 <TObject, TSource>(object: [TObject, TSource]): TObject & TSource;
65 <TObject, TSource1, TSource2>(object: [TObject, TSource1, TSource2]): TObject & TSource1 & TSource2;
66 <TObject, TSource1, TSource2, TSource3>(object: [TObject, TSource1, TSource2, TSource3]): TObject & TSource1 & TSource2 & TSource3;
67 <TObject, TSource1, TSource2, TSource3, TSource4>(object: [TObject, TSource1, TSource2, TSource3, TSource4]): TObject & TSource1 & TSource2 & TSource3 & TSource4;
68 <TObject>(object: [TObject]): TObject;
69 (object: ReadonlyArray<any>): any;
70 }
71 interface LodashAssignAllWith {
72 (customizer: lodash.AssignCustomizer): LodashAssignAllWith1x1;
73 (customizer: lodash.__, args: ReadonlyArray<any>): LodashAssignAllWith1x2;
74 (customizer: lodash.AssignCustomizer, args: ReadonlyArray<any>): any;
75 }
76 type LodashAssignAllWith1x1 = (args: ReadonlyArray<any>) => any;
77 type LodashAssignAllWith1x2 = (customizer: lodash.AssignCustomizer) => any;
78 interface LodashAssignIn {
79 <TObject>(object: TObject): LodashAssignIn1x1<TObject>;
80 <TSource>(object: lodash.__, source: TSource): LodashAssignIn1x2<TSource>;
81 <TObject, TSource>(object: TObject, source: TSource): TObject & TSource;
82 }
83 type LodashAssignIn1x1<TObject> = <TSource>(source: TSource) => TObject & TSource;
84 type LodashAssignIn1x2<TSource> = <TObject>(object: TObject) => TObject & TSource;
85 interface LodashAssignInAll {
86 <TObject, TSource>(object: [TObject, TSource]): TObject & TSource;
87 <TObject, TSource1, TSource2>(object: [TObject, TSource1, TSource2]): TObject & TSource1 & TSource2;
88 <TObject, TSource1, TSource2, TSource3>(object: [TObject, TSource1, TSource2, TSource3]): TObject & TSource1 & TSource2 & TSource3;
89 <TObject, TSource1, TSource2, TSource3, TSource4>(object: [TObject, TSource1, TSource2, TSource3, TSource4]): TObject & TSource1 & TSource2 & TSource3 & TSource4;
90 <TObject>(object: [TObject]): TObject;
91 <TResult>(object: ReadonlyArray<any>): TResult;
92 }
93 interface LodashAssignInAllWith {
94 (customizer: lodash.AssignCustomizer): LodashAssignInAllWith1x1;
95 (customizer: lodash.__, args: ReadonlyArray<any>): LodashAssignInAllWith1x2;
96 (customizer: lodash.AssignCustomizer, args: ReadonlyArray<any>): any;
97 }
98 type LodashAssignInAllWith1x1 = (args: ReadonlyArray<any>) => any;
99 type LodashAssignInAllWith1x2 = (customizer: lodash.AssignCustomizer) => any;
100 interface LodashAssignInWith {
101 (customizer: lodash.AssignCustomizer): LodashAssignInWith1x1;
102 <TObject>(customizer: lodash.__, object: TObject): LodashAssignInWith1x2<TObject>;
103 <TObject>(customizer: lodash.AssignCustomizer, object: TObject): LodashAssignInWith1x3<TObject>;
104 <TSource>(customizer: lodash.__, object: lodash.__, source: TSource): LodashAssignInWith1x4<TSource>;
105 <TSource>(customizer: lodash.AssignCustomizer, object: lodash.__, source: TSource): LodashAssignInWith1x5<TSource>;
106 <TObject, TSource>(customizer: lodash.__, object: TObject, source: TSource): LodashAssignInWith1x6<TObject, TSource>;
107 <TObject, TSource>(customizer: lodash.AssignCustomizer, object: TObject, source: TSource): TObject & TSource;
108 }
109 interface LodashAssignInWith1x1 {
110 <TObject>(object: TObject): LodashAssignInWith1x3<TObject>;
111 <TSource>(object: lodash.__, source: TSource): LodashAssignInWith1x5<TSource>;
112 <TObject, TSource>(object: TObject, source: TSource): TObject & TSource;
113 }
114 interface LodashAssignInWith1x2<TObject> {
115 (customizer: lodash.AssignCustomizer): LodashAssignInWith1x3<TObject>;
116 <TSource>(customizer: lodash.__, source: TSource): LodashAssignInWith1x6<TObject, TSource>;
117 <TSource>(customizer: lodash.AssignCustomizer, source: TSource): TObject & TSource;
118 }
119 type LodashAssignInWith1x3<TObject> = <TSource>(source: TSource) => TObject & TSource;
120 interface LodashAssignInWith1x4<TSource> {
121 (customizer: lodash.AssignCustomizer): LodashAssignInWith1x5<TSource>;
122 <TObject>(customizer: lodash.__, object: TObject): LodashAssignInWith1x6<TObject, TSource>;
123 <TObject>(customizer: lodash.AssignCustomizer, object: TObject): TObject & TSource;
124 }
125 type LodashAssignInWith1x5<TSource> = <TObject>(object: TObject) => TObject & TSource;
126 type LodashAssignInWith1x6<TObject, TSource> = (customizer: lodash.AssignCustomizer) => TObject & TSource;
127 interface LodashAssignWith {
128 (customizer: lodash.AssignCustomizer): LodashAssignWith1x1;
129 <TObject>(customizer: lodash.__, object: TObject): LodashAssignWith1x2<TObject>;
130 <TObject>(customizer: lodash.AssignCustomizer, object: TObject): LodashAssignWith1x3<TObject>;
131 <TSource>(customizer: lodash.__, object: lodash.__, source: TSource): LodashAssignWith1x4<TSource>;
132 <TSource>(customizer: lodash.AssignCustomizer, object: lodash.__, source: TSource): LodashAssignWith1x5<TSource>;
133 <TObject, TSource>(customizer: lodash.__, object: TObject, source: TSource): LodashAssignWith1x6<TObject, TSource>;
134 <TObject, TSource>(customizer: lodash.AssignCustomizer, object: TObject, source: TSource): TObject & TSource;
135 }
136 interface LodashAssignWith1x1 {
137 <TObject>(object: TObject): LodashAssignWith1x3<TObject>;
138 <TSource>(object: lodash.__, source: TSource): LodashAssignWith1x5<TSource>;
139 <TObject, TSource>(object: TObject, source: TSource): TObject & TSource;
140 }
141 interface LodashAssignWith1x2<TObject> {
142 (customizer: lodash.AssignCustomizer): LodashAssignWith1x3<TObject>;
143 <TSource>(customizer: lodash.__, source: TSource): LodashAssignWith1x6<TObject, TSource>;
144 <TSource>(customizer: lodash.AssignCustomizer, source: TSource): TObject & TSource;
145 }
146 type LodashAssignWith1x3<TObject> = <TSource>(source: TSource) => TObject & TSource;
147 interface LodashAssignWith1x4<TSource> {
148 (customizer: lodash.AssignCustomizer): LodashAssignWith1x5<TSource>;
149 <TObject>(customizer: lodash.__, object: TObject): LodashAssignWith1x6<TObject, TSource>;
150 <TObject>(customizer: lodash.AssignCustomizer, object: TObject): TObject & TSource;
151 }
152 type LodashAssignWith1x5<TSource> = <TObject>(object: TObject) => TObject & TSource;
153 type LodashAssignWith1x6<TObject, TSource> = (customizer: lodash.AssignCustomizer) => TObject & TSource;
154 interface LodashSet {
155 (path: lodash.PropertyPath): LodashSet1x1;
156 (path: lodash.__, value: any): LodashSet1x2;
157 (path: lodash.PropertyPath, value: any): LodashSet1x3;
158 <T extends object>(path: lodash.__, value: lodash.__, object: T): LodashSet1x4<T>;
159 <T extends object>(path: lodash.PropertyPath, value: lodash.__, object: T): LodashSet1x5<T>;
160 <T extends object>(path: lodash.__, value: any, object: T): LodashSet1x6<T>;
161 <T extends object>(path: lodash.PropertyPath, value: any, object: T): T;
162 (path: lodash.__, value: lodash.__, object: object): LodashSet2x4;
163 (path: lodash.PropertyPath, value: lodash.__, object: object): LodashSet2x5;
164 (path: lodash.__, value: any, object: object): LodashSet2x6;
165 <TResult>(path: lodash.PropertyPath, value: any, object: object): TResult;
166 }
167 interface LodashSet1x1 {
168 (value: any): LodashSet1x3;
169 <T extends object>(value: lodash.__, object: T): LodashSet1x5<T>;
170 <T extends object>(value: any, object: T): T;
171 (value: lodash.__, object: object): LodashSet2x5;
172 <TResult>(value: any, object: object): TResult;
173 }
174 interface LodashSet1x2 {
175 (path: lodash.PropertyPath): LodashSet1x3;
176 <T extends object>(path: lodash.__, object: T): LodashSet1x6<T>;
177 <T extends object>(path: lodash.PropertyPath, object: T): T;
178 (path: lodash.__, object: object): LodashSet2x6;
179 <TResult>(path: lodash.PropertyPath, object: object): TResult;
180 }
181 interface LodashSet1x3 {
182 <T extends object>(object: T): T;
183 <TResult>(object: object): TResult;
184 }
185 interface LodashSet1x4<T> {
186 (path: lodash.PropertyPath): LodashSet1x5<T>;
187 (path: lodash.__, value: any): LodashSet1x6<T>;
188 (path: lodash.PropertyPath, value: any): T;
189 }
190 type LodashSet1x5<T> = (value: any) => T;
191 type LodashSet1x6<T> = (path: lodash.PropertyPath) => T;
192 interface LodashSet2x4 {
193 (path: lodash.PropertyPath): LodashSet2x5;
194 (path: lodash.__, value: any): LodashSet2x6;
195 <TResult>(path: lodash.PropertyPath, value: any): TResult;
196 }
197 type LodashSet2x5 = <TResult>(value: any) => TResult;
198 type LodashSet2x6 = <TResult>(path: lodash.PropertyPath) => TResult;
199 interface LodashAt {
200 (props: lodash.PropertyPath): LodashAt1x1;
201 <T>(props: lodash.__, object: lodash.Dictionary<T> | lodash.NumericDictionary<T> | null | undefined): LodashAt1x2<T>;
202 <T>(props: lodash.PropertyPath, object: lodash.Dictionary<T> | lodash.NumericDictionary<T> | null | undefined): T[];
203 <T extends object>(props: lodash.Many<keyof T>): LodashAt2x1<T>;
204 <T extends object>(props: lodash.__, object: T | null | undefined): LodashAt2x2<T>;
205 <T extends object>(props: lodash.Many<keyof T>, object: T | null | undefined): Array<T[keyof T]>;
206 }
207 type LodashAt1x1 = <T>(object: lodash.Dictionary<T> | lodash.NumericDictionary<T> | null | undefined) => T[];
208 type LodashAt1x2<T> = (props: lodash.PropertyPath) => T[];
209 type LodashAt2x1<T> = (object: T | null | undefined) => Array<T[keyof T]>;
210 type LodashAt2x2<T> = (props: lodash.Many<keyof T>) => Array<T[keyof T]>;
211 type LodashAttempt = <TResult>(func: (...args: any[]) => TResult) => TResult | Error;
212 interface LodashBefore {
213 <TFunc extends (...args: any[]) => any>(func: TFunc): LodashBefore1x1<TFunc>;
214 (func: lodash.__, n: number): LodashBefore1x2;
215 <TFunc extends (...args: any[]) => any>(func: TFunc, n: number): TFunc;
216 }
217 type LodashBefore1x1<TFunc extends (...args: any[]) => any> = (n: number) => TFunc;
218 type LodashBefore1x2 = <TFunc extends (...args: any[]) => any>(func: TFunc) => TFunc;
219 interface LodashBind {
220 (func: (...args: any[]) => any): LodashBind1x1;
221 (func: lodash.__, thisArg: any): LodashBind1x2;
222 (func: (...args: any[]) => any, thisArg: any): (...args: any[]) => any;
223 placeholder: lodash.__;
224 }
225 type LodashBind1x1 = (thisArg: any) => (...args: any[]) => any;
226 type LodashBind1x2 = (func: (...args: any[]) => any) => (...args: any[]) => any;
227 interface LodashBindAll {
228 (methodNames: lodash.Many<string>): LodashBindAll1x1;
229 <T>(methodNames: lodash.__, object: T): LodashBindAll1x2<T>;
230 <T>(methodNames: lodash.Many<string>, object: T): T;
231 }
232 type LodashBindAll1x1 = <T>(object: T) => T;
233 type LodashBindAll1x2<T> = (methodNames: lodash.Many<string>) => T;
234 interface LodashBindKey {
235 (object: object): LodashBindKey1x1;
236 (object: lodash.__, key: string): LodashBindKey1x2;
237 (object: object, key: string): (...args: any[]) => any;
238 placeholder: lodash.__;
239 }
240 type LodashBindKey1x1 = (key: string) => (...args: any[]) => any;
241 type LodashBindKey1x2 = (object: object) => (...args: any[]) => any;
242 type LodashCamelCase = (string: string) => string;
243 type LodashCapitalize = (string: string) => string;
244 type LodashCastArray = <T>(value: lodash.Many<T>) => T[];
245 type LodashCeil = (n: number) => number;
246 interface LodashChunk {
247 (size: number): LodashChunk1x1;
248 <T>(size: lodash.__, array: lodash.List<T> | null | undefined): LodashChunk1x2<T>;
249 <T>(size: number, array: lodash.List<T> | null | undefined): T[][];
250 }
251 type LodashChunk1x1 = <T>(array: lodash.List<T> | null | undefined) => T[][];
252 type LodashChunk1x2<T> = (size: number) => T[][];
253 interface LodashClamp {
254 (lower: number): LodashClamp1x1;
255 (lower: lodash.__, upper: number): LodashClamp1x2;
256 (lower: number, upper: number): LodashClamp1x3;
257 (lower: lodash.__, upper: lodash.__, number: number): LodashClamp1x4;
258 (lower: number, upper: lodash.__, number: number): LodashClamp1x5;
259 (lower: lodash.__, upper: number, number: number): LodashClamp1x6;
260 (lower: number, upper: number, number: number): number;
261 }
262 interface LodashClamp1x1 {
263 (upper: number): LodashClamp1x3;
264 (upper: lodash.__, number: number): LodashClamp1x5;
265 (upper: number, number: number): number;
266 }
267 interface LodashClamp1x2 {
268 (lower: number): LodashClamp1x3;
269 (lower: lodash.__, number: number): LodashClamp1x6;
270 (lower: number, number: number): number;
271 }
272 type LodashClamp1x3 = (number: number) => number;
273 interface LodashClamp1x4 {
274 (lower: number): LodashClamp1x5;
275 (lower: lodash.__, upper: number): LodashClamp1x6;
276 (lower: number, upper: number): number;
277 }
278 type LodashClamp1x5 = (upper: number) => number;
279 type LodashClamp1x6 = (lower: number) => number;
280 type LodashClone = <T>(value: T) => T;
281 type LodashCloneDeep = <T>(value: T) => T;
282 interface LodashCloneDeepWith {
283 <T>(customizer: lodash.CloneDeepWithCustomizer<T>): LodashCloneDeepWith1x1<T>;
284 <T>(customizer: lodash.__, value: T): LodashCloneDeepWith1x2<T>;
285 <T>(customizer: lodash.CloneDeepWithCustomizer<T>, value: T): any;
286 }
287 type LodashCloneDeepWith1x1<T> = (value: T) => any;
288 type LodashCloneDeepWith1x2<T> = (customizer: lodash.CloneDeepWithCustomizer<T>) => any;
289 interface LodashCloneWith {
290 <T, TResult extends object | string | number | boolean | null>(customizer: lodash.CloneWithCustomizer<T, TResult>): LodashCloneWith1x1<T, TResult>;
291 <T>(customizer: lodash.__, value: T): LodashCloneWith1x2<T>;
292 <T, TResult extends object | string | number | boolean | null>(customizer: lodash.CloneWithCustomizer<T, TResult>, value: T): TResult;
293 <T, TResult>(customizer: lodash.CloneWithCustomizer<T, TResult | undefined>): LodashCloneWith2x1<T, TResult>;
294 <T, TResult>(customizer: lodash.CloneWithCustomizer<T, TResult | undefined>, value: T): TResult | T;
295 }
296 type LodashCloneWith1x1<T, TResult> = (value: T) => TResult;
297 interface LodashCloneWith1x2<T> {
298 <TResult extends object | string | number | boolean | null>(customizer: lodash.CloneWithCustomizer<T, TResult>): TResult;
299 <TResult>(customizer: lodash.CloneWithCustomizer<T, TResult | undefined>): TResult | T;
300 }
301 type LodashCloneWith2x1<T, TResult> = (value: T) => TResult | T;
302 type LodashCompact = <T>(array: lodash.List<T> | null | undefined) => Array<Exclude<T, null | undefined | false | "" | 0>>;
303 type LodashNegate = <T extends any[]>(predicate: (...args: T) => any) => (...args: T) => boolean;
304 interface LodashFlowRight {
305 <A extends any[], R1, R2, R3, R4, R5, R6, R7>(f7: (a: R6) => R7, f6: (a: R5) => R6, f5: (a: R4) => R5, f4: (a: R3) => R4, f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R7;
306 <A extends any[], R1, R2, R3, R4, R5, R6>(f6: (a: R5) => R6, f5: (a: R4) => R5, f4: (a: R3) => R4, f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R6;
307 <A extends any[], R1, R2, R3, R4, R5>(f5: (a: R4) => R5, f4: (a: R3) => R4, f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R5;
308 <A extends any[], R1, R2, R3, R4>(f4: (a: R3) => R4, f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R4;
309 <A extends any[], R1, R2, R3>(f3: (a: R2) => R3, f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R3;
310 <A extends any[], R1, R2>(f2: (a: R1) => R2, f1: (...args: A) => R1): (...args: A) => R2;
311 (...func: Array<lodash.Many<(...args: any[]) => any>>): (...args: any[]) => any;
312 }
313 interface LodashConcat {
314 <T>(array: lodash.Many<T>): LodashConcat1x1<T>;
315 <T>(array: lodash.__, values: lodash.Many<T>): LodashConcat1x2<T>;
316 <T>(array: lodash.Many<T>, values: lodash.Many<T>): T[];
317 }
318 type LodashConcat1x1<T> = (values: lodash.Many<T>) => T[];
319 type LodashConcat1x2<T> = (array: lodash.Many<T>) => T[];
320 interface LodashCond {
321 <R>(pairs: Array<lodash.CondPairNullary<R>>): () => R;
322 <T, R>(pairs: Array<lodash.CondPairUnary<T, R>>): (Target: T) => R;
323 }
324 interface LodashConformsTo {
325 <T>(source: lodash.ConformsPredicateObject<T>): LodashConformsTo1x1<T>;
326 <T>(source: lodash.__, object: T): LodashConformsTo1x2<T>;
327 <T>(source: lodash.ConformsPredicateObject<T>, object: T): boolean;
328 }
329 type LodashConformsTo1x1<T> = (object: T) => boolean;
330 type LodashConformsTo1x2<T> = (source: lodash.ConformsPredicateObject<T>) => boolean;
331 interface LodashContains {
332 <T>(target: T): LodashContains1x1<T>;
333 <T>(target: lodash.__, collection: lodash.Dictionary<T> | lodash.NumericDictionary<T> | null | undefined): LodashContains1x2<T>;
334 <T>(target: T, collection: lodash.Dictionary<T> | lodash.NumericDictionary<T> | null | undefined): boolean;
335 }
336 type LodashContains1x1<T> = (collection: lodash.Dictionary<T> | lodash.NumericDictionary<T> | null | undefined) => boolean;
337 type LodashContains1x2<T> = (target: T) => boolean;
338 interface LodashCountBy {
339 <T>(iteratee: lodash.ValueIteratee<T>): LodashCountBy1x1<T>;
340 <T>(iteratee: lodash.__, collection: lodash.List<T> | null | undefined): LodashCountBy1x2<T>;
341 <T>(iteratee: lodash.ValueIteratee<T>, collection: lodash.List<T> | null | undefined): lodash.Dictionary<number>;
342 <T extends object>(iteratee: lodash.__, collection: T | null | undefined): LodashCountBy2x2<T>;
343 <T extends object>(iteratee: lodash.ValueIteratee<T[keyof T]>, collection: T | null | undefined): lodash.Dictionary<number>;
344 }
345 type LodashCountBy1x1<T> = (collection: lodash.List<T> | object | null | undefined) => lodash.Dictionary<number>;
346 type LodashCountBy1x2<T> = (iteratee: lodash.ValueIteratee<T>) => lodash.Dictionary<number>;
347 type LodashCountBy2x2<T> = (iteratee: lodash.ValueIteratee<T[keyof T]>) => lodash.Dictionary<number>;
348 type LodashCreate = <T extends object, U extends object>(prototype: T) => T & U;
349 interface LodashCurry {
350 <T1, R>(func: (t1: T1) => R): lodash.CurriedFunction1<T1, R>;
351 <T1, T2, R>(func: (t1: T1, t2: T2) => R): lodash.CurriedFunction2<T1, T2, R>;
352 <T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R): lodash.CurriedFunction3<T1, T2, T3, R>;
353 <T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R): lodash.CurriedFunction4<T1, T2, T3, T4, R>;
354 <T1, T2, T3, T4, T5, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R): lodash.CurriedFunction5<T1, T2, T3, T4, T5, R>;
355 (func: (...args: any[]) => any): (...args: any[]) => any;
356 placeholder: lodash.__;
357 }
358 interface LodashCurryN {
359 (arity: number): LodashCurryN1x1;
360 <T1, R>(arity: lodash.__, func: (t1: T1) => R): LodashCurryN1x2<T1, R>;
361 <T1, R>(arity: number, func: (t1: T1) => R): lodash.CurriedFunction1<T1, R>;
362 <T1, T2, R>(arity: lodash.__, func: (t1: T1, t2: T2) => R): LodashCurryN2x2<T1, T2, R>;
363 <T1, T2, R>(arity: number, func: (t1: T1, t2: T2) => R): lodash.CurriedFunction2<T1, T2, R>;
364 <T1, T2, T3, R>(arity: lodash.__, func: (t1: T1, t2: T2, t3: T3) => R): LodashCurryN3x2<T1, T2, T3, R>;
365 <T1, T2, T3, R>(arity: number, func: (t1: T1, t2: T2, t3: T3) => R): lodash.CurriedFunction3<T1, T2, T3, R>;
366 <T1, T2, T3, T4, R>(arity: lodash.__, func: (t1: T1, t2: T2, t3: T3, t4: T4) => R): LodashCurryN4x2<T1, T2, T3, T4, R>;
367 <T1, T2, T3, T4, R>(arity: number, func: (t1: T1, t2: T2, t3: T3, t4: T4) => R): lodash.CurriedFunction4<T1, T2, T3, T4, R>;
368 <T1, T2, T3, T4, T5, R>(arity: lodash.__, func: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R): LodashCurryN5x2<T1, T2, T3, T4, T5, R>;
369 <T1, T2, T3, T4, T5, R>(arity: number, func: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R): lodash.CurriedFunction5<T1, T2, T3, T4, T5, R>;
370 (arity: lodash.__, func: (...args: any[]) => any): LodashCurryN6x2;
371 (arity: number, func: (...args: any[]) => any): (...args: any[]) => any;
372 placeholder: lodash.__;
373 }
374 interface LodashCurryN1x1 {
375 <T1, R>(func: (t1: T1) => R): lodash.CurriedFunction1<T1, R>;
376 <T1, T2, R>(func: (t1: T1, t2: T2) => R): lodash.CurriedFunction2<T1, T2, R>;
377 <T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R): lodash.CurriedFunction3<T1, T2, T3, R>;
378 <T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R): lodash.CurriedFunction4<T1, T2, T3, T4, R>;
379 <T1, T2, T3, T4, T5, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R): lodash.CurriedFunction5<T1, T2, T3, T4, T5, R>;
380 (func: (...args: any[]) => any): (...args: any[]) => any;
381 }
382 type LodashCurryN1x2<T1, R> = (arity: number) => lodash.CurriedFunction1<T1, R>;
383 type LodashCurryN2x2<T1, T2, R> = (arity: number) => lodash.CurriedFunction2<T1, T2, R>;
384 type LodashCurryN3x2<T1, T2, T3, R> = (arity: number) => lodash.CurriedFunction3<T1, T2, T3, R>;
385 type LodashCurryN4x2<T1, T2, T3, T4, R> = (arity: number) => lodash.CurriedFunction4<T1, T2, T3, T4, R>;
386 type LodashCurryN5x2<T1, T2, T3, T4, T5, R> = (arity: number) => lodash.CurriedFunction5<T1, T2, T3, T4, T5, R>;
387 type LodashCurryN6x2 = (arity: number) => (...args: any[]) => any;
388 interface LodashCurryRight {
389 <T1, R>(func: (t1: T1) => R): lodash.RightCurriedFunction1<T1, R>;
390 <T1, T2, R>(func: (t1: T1, t2: T2) => R): lodash.RightCurriedFunction2<T1, T2, R>;
391 <T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R): lodash.RightCurriedFunction3<T1, T2, T3, R>;
392 <T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R): lodash.RightCurriedFunction4<T1, T2, T3, T4, R>;
393 <T1, T2, T3, T4, T5, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R): lodash.RightCurriedFunction5<T1, T2, T3, T4, T5, R>;
394 (func: (...args: any[]) => any): (...args: any[]) => any;
395 placeholder: lodash.__;
396 }
397 interface LodashCurryRightN {
398 (arity: number): LodashCurryRightN1x1;
399 <T1, R>(arity: lodash.__, func: (t1: T1) => R): LodashCurryRightN1x2<T1, R>;
400 <T1, R>(arity: number, func: (t1: T1) => R): lodash.RightCurriedFunction1<T1, R>;
401 <T1, T2, R>(arity: lodash.__, func: (t1: T1, t2: T2) => R): LodashCurryRightN2x2<T1, T2, R>;
402 <T1, T2, R>(arity: number, func: (t1: T1, t2: T2) => R): lodash.RightCurriedFunction2<T1, T2, R>;
403 <T1, T2, T3, R>(arity: lodash.__, func: (t1: T1, t2: T2, t3: T3) => R): LodashCurryRightN3x2<T1, T2, T3, R>;
404 <T1, T2, T3, R>(arity: number, func: (t1: T1, t2: T2, t3: T3) => R): lodash.RightCurriedFunction3<T1, T2, T3, R>;
405 <T1, T2, T3, T4, R>(arity: lodash.__, func: (t1: T1, t2: T2, t3: T3, t4: T4) => R): LodashCurryRightN4x2<T1, T2, T3, T4, R>;
406 <T1, T2, T3, T4, R>(arity: number, func: (t1: T1, t2: T2, t3: T3, t4: T4) => R): lodash.RightCurriedFunction4<T1, T2, T3, T4, R>;
407 <T1, T2, T3, T4, T5, R>(arity: lodash.__, func: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R): LodashCurryRightN5x2<T1, T2, T3, T4, T5, R>;
408 <T1, T2, T3, T4, T5, R>(arity: number, func: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R): lodash.RightCurriedFunction5<T1, T2, T3, T4, T5, R>;
409 (arity: lodash.__, func: (...args: any[]) => any): LodashCurryRightN6x2;
410 (arity: number, func: (...args: any[]) => any): (...args: any[]) => any;
411 placeholder: lodash.__;
412 }
413 interface LodashCurryRightN1x1 {
414 <T1, R>(func: (t1: T1) => R): lodash.RightCurriedFunction1<T1, R>;
415 <T1, T2, R>(func: (t1: T1, t2: T2) => R): lodash.RightCurriedFunction2<T1, T2, R>;
416 <T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R): lodash.RightCurriedFunction3<T1, T2, T3, R>;
417 <T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R): lodash.RightCurriedFunction4<T1, T2, T3, T4, R>;
418 <T1, T2, T3, T4, T5, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R): lodash.RightCurriedFunction5<T1, T2, T3, T4, T5, R>;
419 (func: (...args: any[]) => any): (...args: any[]) => any;
420 }
421 type LodashCurryRightN1x2<T1, R> = (arity: number) => lodash.RightCurriedFunction1<T1, R>;
422 type LodashCurryRightN2x2<T1, T2, R> = (arity: number) => lodash.RightCurriedFunction2<T1, T2, R>;
423 type LodashCurryRightN3x2<T1, T2, T3, R> = (arity: number) => lodash.RightCurriedFunction3<T1, T2, T3, R>;
424 type LodashCurryRightN4x2<T1, T2, T3, T4, R> = (arity: number) => lodash.RightCurriedFunction4<T1, T2, T3, T4, R>;
425 type LodashCurryRightN5x2<T1, T2, T3, T4, T5, R> = (arity: number) => lodash.RightCurriedFunction5<T1, T2, T3, T4, T5, R>;
426 type LodashCurryRightN6x2 = (arity: number) => (...args: any[]) => any;
427 interface LodashDebounce {
428 (wait: number): LodashDebounce1x1;
429 <T extends (...args: any) => any>(wait: lodash.__, func: T): LodashDebounce1x2<T>;
430 <T extends (...args: any) => any>(wait: number, func: T): lodash.DebouncedFunc<T>;
431 }
432 type LodashDebounce1x1 = <T extends (...args: any) => any>(func: T) => lodash.DebouncedFunc<T>;
433 type LodashDebounce1x2<T extends (...args: any) => any> = (wait: number) => lodash.DebouncedFunc<T>;
434 type LodashDeburr = (string: string) => string;
435 interface LodashDefaults {
436 <TSource>(source: TSource): LodashDefaults1x1<TSource>;
437 <TObject>(source: lodash.__, object: TObject): LodashDefaults1x2<TObject>;
438 <TObject, TSource>(source: TSource, object: TObject): TSource & TObject;
439 }
440 type LodashDefaults1x1<TSource> = <TObject>(object: TObject) => TSource & TObject;
441 type LodashDefaults1x2<TObject> = <TSource>(source: TSource) => TSource & TObject;
442 interface LodashDefaultsAll {
443 <TObject, TSource>(object: [TObject, TSource]): TSource & TObject;
444 <TObject, TSource1, TSource2>(object: [TObject, TSource1, TSource2]): TSource2 & TSource1 & TObject;
445 <TObject, TSource1, TSource2, TSource3>(object: [TObject, TSource1, TSource2, TSource3]): TSource3 & TSource2 & TSource1 & TObject;
446 <TObject, TSource1, TSource2, TSource3, TSource4>(object: [TObject, TSource1, TSource2, TSource3, TSource4]): TSource4 & TSource3 & TSource2 & TSource1 & TObject;
447 <TObject>(object: [TObject]): TObject;
448 (object: ReadonlyArray<any>): any;
449 }
450 interface LodashDefaultsDeep {
451 (sources: any): LodashDefaultsDeep1x1;
452 (sources: lodash.__, object: any): LodashDefaultsDeep1x2;
453 (sources: any, object: any): any;
454 }
455 type LodashDefaultsDeep1x1 = (object: any) => any;
456 type LodashDefaultsDeep1x2 = (sources: any) => any;
457 type LodashDefaultsDeepAll = (object: ReadonlyArray<any>) => any;
458 interface LodashDefaultTo {
459 <T>(defaultValue: T): LodashDefaultTo1x1<T>;
460 <T>(defaultValue: lodash.__, value: T | null | undefined): LodashDefaultTo1x2<T>;
461 <T>(defaultValue: T, value: T | null | undefined): T;
462 <TDefault>(defaultValue: TDefault): LodashDefaultTo2x1<TDefault>;
463 <T, TDefault>(defaultValue: TDefault, value: T | null | undefined): T | TDefault;
464 }
465 type LodashDefaultTo1x1<T> = (value: T | null | undefined) => T;
466 interface LodashDefaultTo1x2<T> {
467 (defaultValue: T): T;
468 <TDefault>(defaultValue: TDefault): T | TDefault;
469 }
470 type LodashDefaultTo2x1<TDefault> = <T>(value: T | null | undefined) => T | TDefault;
471 type LodashDefer = (func: (...args: any[]) => any, ...args: any[]) => number;
472 interface LodashDelay {
473 (wait: number): LodashDelay1x1;
474 (wait: lodash.__, func: (...args: any[]) => any): LodashDelay1x2;
475 (wait: number, func: (...args: any[]) => any): number;
476 }
477 type LodashDelay1x1 = (func: (...args: any[]) => any) => number;
478 type LodashDelay1x2 = (wait: number) => number;
479 interface LodashDifference {
480 <T>(array: lodash.List<T> | null | undefined): LodashDifference1x1<T>;
481 <T>(array: lodash.__, values: lodash.List<T>): LodashDifference1x2<T>;
482 <T>(array: lodash.List<T> | null | undefined, values: lodash.List<T>): T[];
483 }
484 type LodashDifference1x1<T> = (values: lodash.List<T>) => T[];
485 type LodashDifference1x2<T> = (array: lodash.List<T> | null | undefined) => T[];
486 interface LodashDifferenceBy {
487 <T1, T2>(iteratee: lodash.ValueIteratee<T1 | T2>): LodashDifferenceBy1x1<T1, T2>;
488 <T1>(iteratee: lodash.__, array: lodash.List<T1> | null | undefined): LodashDifferenceBy1x2<T1>;
489 <T1, T2>(iteratee: lodash.ValueIteratee<T1 | T2>, array: lodash.List<T1> | null | undefined): LodashDifferenceBy1x3<T1, T2>;
490 <T2>(iteratee: lodash.__, array: lodash.__, values: lodash.List<T2>): LodashDifferenceBy1x4<T2>;
491 <T1, T2>(iteratee: lodash.ValueIteratee<T1 | T2>, array: lodash.__, values: lodash.List<T2>): LodashDifferenceBy1x5<T1>;
492 <T1, T2>(iteratee: lodash.__, array: lodash.List<T1> | null | undefined, values: lodash.List<T2>): LodashDifferenceBy1x6<T1, T2>;
493 <T1, T2>(iteratee: lodash.ValueIteratee<T1 | T2>, array: lodash.List<T1> | null | undefined, values: lodash.List<T2>): T1[];
494 }
495 interface LodashDifferenceBy1x1<T1, T2> {
496 (array: lodash.List<T1> | null | undefined): LodashDifferenceBy1x3<T1, T2>;
497 (array: lodash.__, values: lodash.List<T2>): LodashDifferenceBy1x5<T1>;
498 (array: lodash.List<T1> | null | undefined, values: lodash.List<T2>): T1[];
499 }
500 interface LodashDifferenceBy1x2<T1> {
501 <T2>(iteratee: lodash.ValueIteratee<T1 | T2>): LodashDifferenceBy1x3<T1, T2>;
502 <T2>(iteratee: lodash.__, values: lodash.List<T2>): LodashDifferenceBy1x6<T1, T2>;
503 <T2>(iteratee: lodash.ValueIteratee<T1 | T2>, values: lodash.List<T2>): T1[];
504 }
505 type LodashDifferenceBy1x3<T1, T2> = (values: lodash.List<T2>) => T1[];
506 interface LodashDifferenceBy1x4<T2> {
507 <T1>(iteratee: lodash.ValueIteratee<T1 | T2>): LodashDifferenceBy1x5<T1>;
508 <T1>(iteratee: lodash.__, array: lodash.List<T1> | null | undefined): LodashDifferenceBy1x6<T1, T2>;
509 <T1>(iteratee: lodash.ValueIteratee<T1 | T2>, array: lodash.List<T1> | null | undefined): T1[];
510 }
511 type LodashDifferenceBy1x5<T1> = (array: lodash.List<T1> | null | undefined) => T1[];
512 type LodashDifferenceBy1x6<T1, T2> = (iteratee: lodash.ValueIteratee<T1 | T2>) => T1[];
513 interface LodashDifferenceWith {
514 <T1, T2>(comparator: lodash.Comparator2<T1, T2>): LodashDifferenceWith1x1<T1, T2>;
515 <T1>(comparator: lodash.__, array: lodash.List<T1> | null | undefined): LodashDifferenceWith1x2<T1>;
516 <T1, T2>(comparator: lodash.Comparator2<T1, T2>, array: lodash.List<T1> | null | undefined): LodashDifferenceWith1x3<T1, T2>;
517 <T2>(comparator: lodash.__, array: lodash.__, values: lodash.List<T2>): LodashDifferenceWith1x4<T2>;
518 <T1, T2>(comparator: lodash.Comparator2<T1, T2>, array: lodash.__, values: lodash.List<T2>): LodashDifferenceWith1x5<T1>;
519 <T1, T2>(comparator: lodash.__, array: lodash.List<T1> | null | undefined, values: lodash.List<T2>): LodashDifferenceWith1x6<T1, T2>;
520 <T1, T2>(comparator: lodash.Comparator2<T1, T2>, array: lodash.List<T1> | null | undefined, values: lodash.List<T2>): T1[];
521 }
522 interface LodashDifferenceWith1x1<T1, T2> {
523 (array: lodash.List<T1> | null | undefined): LodashDifferenceWith1x3<T1, T2>;
524 (array: lodash.__, values: lodash.List<T2>): LodashDifferenceWith1x5<T1>;
525 (array: lodash.List<T1> | null | undefined, values: lodash.List<T2>): T1[];
526 }
527 interface LodashDifferenceWith1x2<T1> {
528 <T2>(comparator: lodash.Comparator2<T1, T2>): LodashDifferenceWith1x3<T1, T2>;
529 <T2>(comparator: lodash.__, values: lodash.List<T2>): LodashDifferenceWith1x6<T1, T2>;
530 <T2>(comparator: lodash.Comparator2<T1, T2>, values: lodash.List<T2>): T1[];
531 }
532 type LodashDifferenceWith1x3<T1, T2> = (values: lodash.List<T2>) => T1[];
533 interface LodashDifferenceWith1x4<T2> {
534 <T1>(comparator: lodash.Comparator2<T1, T2>): LodashDifferenceWith1x5<T1>;
535 <T1>(comparator: lodash.__, array: lodash.List<T1> | null | undefined): LodashDifferenceWith1x6<T1, T2>;
536 <T1>(comparator: lodash.Comparator2<T1, T2>, array: lodash.List<T1> | null | undefined): T1[];
537 }
538 type LodashDifferenceWith1x5<T1> = (array: lodash.List<T1> | null | undefined) => T1[];
539 type LodashDifferenceWith1x6<T1, T2> = (comparator: lodash.Comparator2<T1, T2>) => T1[];
540 interface LodashUnset {
541 (path: lodash.PropertyPath): LodashUnset1x1;
542 <T>(path: lodash.__, object: T): LodashUnset1x2<T>;
543 <T>(path: lodash.PropertyPath, object: T): T;
544 }
545 type LodashUnset1x1 = <T>(object: T) => T;
546 type LodashUnset1x2<T> = (path: lodash.PropertyPath) => T;
547 interface LodashDivide {
548 (dividend: number): LodashDivide1x1;
549 (dividend: lodash.__, divisor: number): LodashDivide1x2;
550 (dividend: number, divisor: number): number;
551 }
552 type LodashDivide1x1 = (divisor: number) => number;
553 type LodashDivide1x2 = (dividend: number) => number;
554 interface LodashDrop {
555 (n: number): LodashDrop1x1;
556 <T>(n: lodash.__, array: lodash.List<T> | null | undefined): LodashDrop1x2<T>;
557 <T>(n: number, array: lodash.List<T> | null | undefined): T[];
558 }
559 type LodashDrop1x1 = <T>(array: lodash.List<T> | null | undefined) => T[];
560 type LodashDrop1x2<T> = (n: number) => T[];
561 interface LodashDropRight {
562 (n: number): LodashDropRight1x1;
563 <T>(n: lodash.__, array: lodash.List<T> | null | undefined): LodashDropRight1x2<T>;
564 <T>(n: number, array: lodash.List<T> | null | undefined): T[];
565 }
566 type LodashDropRight1x1 = <T>(array: lodash.List<T> | null | undefined) => T[];
567 type LodashDropRight1x2<T> = (n: number) => T[];
568 interface LodashDropRightWhile {
569 <T>(predicate: lodash.ValueIteratee<T>): LodashDropRightWhile1x1<T>;
570 <T>(predicate: lodash.__, array: lodash.List<T> | null | undefined): LodashDropRightWhile1x2<T>;
571 <T>(predicate: lodash.ValueIteratee<T>, array: lodash.List<T> | null | undefined): T[];
572 }
573 type LodashDropRightWhile1x1<T> = (array: lodash.List<T> | null | undefined) => T[];
574 type LodashDropRightWhile1x2<T> = (predicate: lodash.ValueIteratee<T>) => T[];
575 interface LodashDropWhile {
576 <T>(predicate: lodash.ValueIteratee<T>): LodashDropWhile1x1<T>;
577 <T>(predicate: lodash.__, array: lodash.List<T> | null | undefined): LodashDropWhile1x2<T>;
578 <T>(predicate: lodash.ValueIteratee<T>, array: lodash.List<T> | null | undefined): T[];
579 }
580 type LodashDropWhile1x1<T> = (array: lodash.List<T> | null | undefined) => T[];
581 type LodashDropWhile1x2<T> = (predicate: lodash.ValueIteratee<T>) => T[];
582 interface LodashForEach {
583 <T>(iteratee: (value: T) => any): LodashForEach1x1<T>;
584 <T>(iteratee: lodash.__, collection: ReadonlyArray<T>): LodashForEach1x2<T>;
585 <T>(iteratee: (value: T) => any, collection: ReadonlyArray<T>): T[];
586 <T>(iteratee: lodash.__, collection: lodash.List<T>): LodashForEach2x2<T>;
587 <T>(iteratee: (value: T) => any, collection: lodash.List<T>): lodash.List<T>;
588 <T extends object>(iteratee: lodash.__, collection: T): LodashForEach3x2<T>;
589 <T extends object>(iteratee: (value: T[keyof T]) => any, collection: T): T;
590 <T, TArray extends T[] | null | undefined>(iteratee: lodash.__, collection: TArray & (T[] | null | undefined)): LodashForEach4x2<T, TArray>;
591 <T, TArray extends T[] | null | undefined>(iteratee: (value: T) => any, collection: TArray & (T[] | null | undefined)): TArray;
592 <T, TList extends lodash.List<T> | null | undefined>(iteratee: lodash.__, collection: TList & (lodash.List<T> | null | undefined)): LodashForEach5x2<T, TList>;
593 <T, TList extends lodash.List<T> | null | undefined>(iteratee: (value: T) => any, collection: TList & (lodash.List<T> | null | undefined)): TList;
594 <T extends object>(iteratee: lodash.__, collection: T | null | undefined): LodashForEach6x2<T>;
595 <T extends object>(iteratee: (value: T[keyof T]) => any, collection: T | null | undefined): T | null | undefined;
596 }
597 interface LodashForEach1x1<T> {
598 (collection: ReadonlyArray<T>): T[];
599 (collection: lodash.List<T>): lodash.List<T>;
600 <T1 extends object>(collection: T1): T1;
601 <TArray extends T[] | null | undefined>(collection: TArray & (T[] | null | undefined)): TArray;
602 <TList extends lodash.List<T> | null | undefined>(collection: TList & (lodash.List<T> | null | undefined)): TList;
603 <T1 extends object>(collection: T1 | null | undefined): T1 | null | undefined;
604 }
605 type LodashForEach1x2<T> = (iteratee: (value: T) => any) => T[];
606 type LodashForEach2x2<T> = (iteratee: (value: T) => any) => lodash.List<T>;
607 type LodashForEach3x2<T> = (iteratee: (value: T[keyof T]) => any) => T;
608 type LodashForEach4x2<T, TArray> = (iteratee: (value: T) => any) => TArray;
609 type LodashForEach5x2<T, TList> = (iteratee: (value: T) => any) => TList;
610 type LodashForEach6x2<T> = (iteratee: (value: T[keyof T]) => any) => T | null | undefined;
611 interface LodashForEachRight {
612 <T>(iteratee: (value: T) => any): LodashForEachRight1x1<T>;
613 <T>(iteratee: lodash.__, collection: ReadonlyArray<T>): LodashForEachRight1x2<T>;
614 <T>(iteratee: (value: T) => any, collection: ReadonlyArray<T>): T[];
615 <T>(iteratee: lodash.__, collection: lodash.List<T>): LodashForEachRight2x2<T>;
616 <T>(iteratee: (value: T) => any, collection: lodash.List<T>): lodash.List<T>;
617 <T extends object>(iteratee: lodash.__, collection: T): LodashForEachRight3x2<T>;
618 <T extends object>(iteratee: (value: T[keyof T]) => any, collection: T): T;
619 <T, TArray extends T[] | null | undefined>(iteratee: lodash.__, collection: TArray & (T[] | null | undefined)): LodashForEachRight4x2<T, TArray>;
620 <T, TArray extends T[] | null | undefined>(iteratee: (value: T) => any, collection: TArray & (T[] | null | undefined)): TArray;
621 <T, TList extends lodash.List<T> | null | undefined>(iteratee: lodash.__, collection: TList & (lodash.List<T> | null | undefined)): LodashForEachRight5x2<T, TList>;
622 <T, TList extends lodash.List<T> | null | undefined>(iteratee: (value: T) => any, collection: TList & (lodash.List<T> | null | undefined)): TList;
623 <T extends object>(iteratee: lodash.__, collection: T | null | undefined): LodashForEachRight6x2<T>;
624 <T extends object>(iteratee: (value: T[keyof T]) => any, collection: T | null | undefined): T | null | undefined;
625 }
626 interface LodashForEachRight1x1<T> {
627 (collection: ReadonlyArray<T>): T[];
628 (collection: lodash.List<T>): lodash.List<T>;
629 <T1 extends object>(collection: T1): T1;
630 <TArray extends T[] | null | undefined>(collection: TArray & (T[] | null | undefined)): TArray;
631 <TList extends lodash.List<T> | null | undefined>(collection: TList & (lodash.List<T> | null | undefined)): TList;
632 <T1 extends object>(collection: T1 | null | undefined): T1 | null | undefined;
633 }
634 type LodashForEachRight1x2<T> = (iteratee: (value: T) => any) => T[];
635 type LodashForEachRight2x2<T> = (iteratee: (value: T) => any) => lodash.List<T>;
636 type LodashForEachRight3x2<T> = (iteratee: (value: T[keyof T]) => any) => T;
637 type LodashForEachRight4x2<T, TArray> = (iteratee: (value: T) => any) => TArray;
638 type LodashForEachRight5x2<T, TList> = (iteratee: (value: T) => any) => TList;
639 type LodashForEachRight6x2<T> = (iteratee: (value: T[keyof T]) => any) => T | null | undefined;
640 interface LodashEndsWith {
641 (target: string): LodashEndsWith1x1;
642 (target: lodash.__, string: string): LodashEndsWith1x2;
643 (target: string, string: string): boolean;
644 }
645 type LodashEndsWith1x1 = (string: string) => boolean;
646 type LodashEndsWith1x2 = (target: string) => boolean;
647 interface LodashToPairs {
648 <T>(object: lodash.Dictionary<T> | lodash.NumericDictionary<T>): Array<[string, T]>;
649 (object: object): Array<[string, any]>;
650 }
651 interface LodashToPairsIn {
652 <T>(object: lodash.Dictionary<T> | lodash.NumericDictionary<T>): Array<[string, T]>;
653 (object: object): Array<[string, any]>;
654 }
655 interface LodashEq {
656 (value: any): LodashEq1x1;
657 (value: lodash.__, other: any): LodashEq1x2;
658 (value: any, other: any): boolean;
659 }
660 type LodashEq1x1 = (other: any) => boolean;
661 type LodashEq1x2 = (value: any) => boolean;
662 interface LodashIsEqual {
663 (value: any): LodashIsEqual1x1;
664 (value: lodash.__, other: any): LodashIsEqual1x2;
665 (value: any, other: any): boolean;
666 }
667 type LodashIsEqual1x1 = (other: any) => boolean;
668 type LodashIsEqual1x2 = (value: any) => boolean;
669 type LodashEscape = (string: string) => string;
670 type LodashEscapeRegExp = (string: string) => string;
671 interface LodashExtend {
672 <TObject>(object: TObject): LodashExtend1x1<TObject>;
673 <TSource>(object: lodash.__