diff --git a/plugins/local-storage/.flowconfig b/plugins/local-storage/.flowconfig index aa04bd89..84a61c91 100644 --- a/plugins/local-storage/.flowconfig +++ b/plugins/local-storage/.flowconfig @@ -1,6 +1,7 @@ [ignore] .*/node_modules/.* lib/.* +.*/_storage/.* [libs] node_modules/@verdaccio/types/lib/ diff --git a/plugins/local-storage/flow-typed/npm/lodash_v4.x.x.js b/plugins/local-storage/flow-typed/npm/lodash_v4.x.x.js index 2ca16871..63a0838b 100644 --- a/plugins/local-storage/flow-typed/npm/lodash_v4.x.x.js +++ b/plugins/local-storage/flow-typed/npm/lodash_v4.x.x.js @@ -1,30 +1,162 @@ -// flow-typed signature: 495348fe7e36289229ca4b9b8cbad572 -// flow-typed version: 9821eaaefe/lodash_v4.x.x/flow_>=v0.47.x +// flow-typed signature: a0ace6ecf9cb0e9f971f651691137591 +// flow-typed version: e4e1d58043/lodash_v4.x.x/flow_>=v0.63.x + +declare module "lodash" { + declare type __CurriedFunction1 = (...r: [AA]) => R; + declare type CurriedFunction1 = __CurriedFunction1; + + declare type __CurriedFunction2 = (( + ...r: [AA] + ) => CurriedFunction1) & + ((...r: [AA, BB]) => R); + declare type CurriedFunction2 = __CurriedFunction2; + + declare type __CurriedFunction3 = (( + ...r: [AA] + ) => CurriedFunction2) & + ((...r: [AA, BB]) => CurriedFunction1) & + ((...r: [AA, BB, CC]) => R); + declare type CurriedFunction3 = __CurriedFunction3< + A, + B, + C, + R, + *, + *, + * + >; + + declare type __CurriedFunction4< + A, + B, + C, + D, + R, + AA: A, + BB: B, + CC: C, + DD: D + > = ((...r: [AA]) => CurriedFunction3) & + ((...r: [AA, BB]) => CurriedFunction2) & + ((...r: [AA, BB, CC]) => CurriedFunction1) & + ((...r: [AA, BB, CC, DD]) => R); + declare type CurriedFunction4 = __CurriedFunction4< + A, + B, + C, + D, + R, + *, + *, + *, + * + >; + + declare type __CurriedFunction5< + A, + B, + C, + D, + E, + R, + AA: A, + BB: B, + CC: C, + DD: D, + EE: E + > = ((...r: [AA]) => CurriedFunction4) & + ((...r: [AA, BB]) => CurriedFunction3) & + ((...r: [AA, BB, CC]) => CurriedFunction2) & + ((...r: [AA, BB, CC, DD]) => CurriedFunction1) & + ((...r: [AA, BB, CC, DD, EE]) => R); + declare type CurriedFunction5 = __CurriedFunction5< + A, + B, + C, + D, + E, + R, + *, + *, + *, + *, + * + >; + + declare type __CurriedFunction6< + A, + B, + C, + D, + E, + F, + R, + AA: A, + BB: B, + CC: C, + DD: D, + EE: E, + FF: F + > = ((...r: [AA]) => CurriedFunction5) & + ((...r: [AA, BB]) => CurriedFunction4) & + ((...r: [AA, BB, CC]) => CurriedFunction3) & + ((...r: [AA, BB, CC, DD]) => CurriedFunction2) & + ((...r: [AA, BB, CC, DD, EE]) => CurriedFunction1) & + ((...r: [AA, BB, CC, DD, EE, FF]) => R); + declare type CurriedFunction6 = __CurriedFunction6< + A, + B, + C, + D, + E, + F, + R, + *, + *, + *, + *, + *, + * + >; + + declare type Curry = (((...r: [A]) => R) => CurriedFunction1) & + (((...r: [A, B]) => R) => CurriedFunction2) & + (((...r: [A, B, C]) => R) => CurriedFunction3) & + (( + (...r: [A, B, C, D]) => R + ) => CurriedFunction4) & + (( + (...r: [A, B, C, D, E]) => R + ) => CurriedFunction5) & + (( + (...r: [A, B, C, D, E, F]) => R + ) => CurriedFunction6); + + declare type UnaryFn = (a: A) => R; -declare module 'lodash' { declare type TemplateSettings = { escape?: RegExp, evaluate?: RegExp, imports?: Object, interpolate?: RegExp, - variable?: string, + variable?: string }; declare type TruncateOptions = { length?: number, omission?: string, - separator?: RegExp|string, + separator?: RegExp | string }; declare type DebounceOptions = { - leading?: bool, + leading?: boolean, maxWait?: number, - trailing?: bool, + trailing?: boolean }; declare type ThrottleOptions = { - leading?: bool, - trailing?: bool, + leading?: boolean, + trailing?: boolean }; declare type NestedArray = Array>; @@ -39,7 +171,10 @@ declare module 'lodash' { | matchesPropertyIterateeShorthand | propertyIterateeShorthand; - declare type OIterateeWithResult = Object|string|((value: V, key: string, object: O) => R); + declare type OIterateeWithResult = + | Object + | string + | ((value: V, key: string, object: O) => R); declare type OIteratee = OIterateeWithResult; declare type OFlatMapIteratee = OIterateeWithResult>; @@ -50,183 +185,548 @@ declare module 'lodash' { | propertyIterateeShorthand; declare type _ValueOnlyIteratee = (value: T) => mixed; - declare type ValueOnlyIteratee = _ValueOnlyIteratee|string; - declare type _Iteratee = (item: T, index: number, array: ?Array) => mixed; - declare type Iteratee = _Iteratee|Object|string; - declare type FlatMapIteratee = ((item: T, index: number, array: ?Array) => Array)|Object|string; - declare type Comparator = (item: T, item2: T) => bool; + declare type ValueOnlyIteratee = _ValueOnlyIteratee | string; + declare type _Iteratee = ( + item: T, + index: number, + array: ?Array + ) => mixed; + declare type Iteratee = _Iteratee | Object | string; + declare type FlatMapIteratee = + | ((item: T, index: number, array: ?Array) => Array) + | Object + | string; + declare type Comparator = (item: T, item2: T) => boolean; - declare type MapIterator = + declare type MapIterator = | ((item: T, index: number, array: Array) => U) | propertyIterateeShorthand; - declare type OMapIterator = + declare type ReadOnlyMapIterator = + | ((item: T, index: number, array: $ReadOnlyArray) => U) + | propertyIterateeShorthand; + + declare type OMapIterator = | ((item: T, key: string, object: O) => U) | propertyIterateeShorthand; declare class Lodash { // Array - chunk(array: ?Array, size?: number): Array>; - compact(array: Array): Array; - concat(base: Array, ...elements: Array): Array; - difference(array: ?Array, values?: Array): Array; - differenceBy(array: ?Array, values: Array, iteratee: ValueOnlyIteratee): T[]; - differenceWith(array: T[], values: T[], comparator?: Comparator): T[]; - drop(array: ?Array, n?: number): Array; - dropRight(array: ?Array, n?: number): Array; - dropRightWhile(array: ?Array, predicate?: Predicate): Array; - dropWhile(array: ?Array, predicate?: Predicate): Array; - fill(array: ?Array, value: U, start?: number, end?: number): Array; - findIndex(array: ?Array, predicate?: Predicate, fromIndex?: number): number; - findLastIndex(array: ?Array, predicate?: Predicate, fromIndex?: number): number; + chunk(array?: ?Array, size?: ?number): Array>; + compact(array?: ?Array): Array; + concat(base?: ?Array, ...elements: Array): Array; + difference(array?: ?$ReadOnlyArray, values?: ?$ReadOnlyArray): Array; + differenceBy( + array?: ?$ReadOnlyArray, + values?: ?$ReadOnlyArray, + iteratee?: ?ValueOnlyIteratee + ): T[]; + differenceWith(array?: ?$ReadOnlyArray, values?: ?$ReadOnlyArray, comparator?: ?Comparator): T[]; + drop(array?: ?Array, n?: ?number): Array; + dropRight(array?: ?Array, n?: ?number): Array; + dropRightWhile(array?: ?Array, predicate?: ?Predicate): Array; + dropWhile(array?: ?Array, predicate?: ?Predicate): Array; + fill( + array?: ?Array, + value?: ?U, + start?: ?number, + end?: ?number + ): Array; + findIndex( + array: $ReadOnlyArray, + predicate?: ?Predicate, + fromIndex?: ?number + ): number; + findIndex( + array: void | null, + predicate?: ?Predicate, + fromIndex?: ?number + ): -1; + findLastIndex( + array: $ReadOnlyArray, + predicate?: ?Predicate, + fromIndex?: ?number + ): number; + findLastIndex( + array: void | null, + predicate?: ?Predicate, + fromIndex?: ?number + ): -1; // alias of _.head first(array: ?Array): T; - flatten(array: Array|X>): Array; - flattenDeep(array: any[]): Array; - flattenDepth(array: any[], depth?: number): any[]; - fromPairs(pairs: Array): Object; + flatten(array?: ?Array | X>): Array; + flattenDeep(array?: ?any[]): Array; + flattenDepth(array?: ?any[], depth?: ?number): any[]; + fromPairs(pairs?: ?Array<[A, B]>): { [key: A]: B }; head(array: ?Array): T; - indexOf(array: ?Array, value: T, fromIndex?: number): number; + indexOf(array: Array, value: T, fromIndex?: number): number; + indexOf(array: void | null, value?: ?T, fromIndex?: ?number): -1; initial(array: ?Array): Array; - intersection(...arrays: Array>): Array; + intersection(...arrays?: Array>): Array; //Workaround until (...parameter: T, parameter2: U) works - intersectionBy(a1: Array, iteratee?: ValueOnlyIteratee): Array; - intersectionBy(a1: Array, a2: Array, iteratee?: ValueOnlyIteratee): Array; - intersectionBy(a1: Array, a2: Array, a3: Array, iteratee?: ValueOnlyIteratee): Array; - intersectionBy(a1: Array, a2: Array, a3: Array, a4: Array, iteratee?: ValueOnlyIteratee): Array; + intersectionBy(a1?: ?Array, iteratee?: ?ValueOnlyIteratee): Array; + intersectionBy( + a1?: ?Array, + a2?: ?Array, + iteratee?: ?ValueOnlyIteratee + ): Array; + intersectionBy( + a1?: ?Array, + a2?: ?Array, + a3?: ?Array, + iteratee?: ?ValueOnlyIteratee + ): Array; + intersectionBy( + a1?: ?Array, + a2?: ?Array, + a3?: ?Array, + a4?: ?Array, + iteratee?: ?ValueOnlyIteratee + ): Array; //Workaround until (...parameter: T, parameter2: U) works - intersectionWith(a1: Array, comparator: Comparator): Array; - intersectionWith(a1: Array, a2: Array, comparator: Comparator): Array; - intersectionWith(a1: Array, a2: Array, a3: Array, comparator: Comparator): Array; - intersectionWith(a1: Array, a2: Array, a3: Array, a4: Array, comparator: Comparator): Array; - join(array: ?Array, separator?: string): string; + intersectionWith(a1?: ?Array, comparator?: ?Comparator): Array; + intersectionWith( + a1?: ?Array, + a2?: ?Array, + comparator?: ?Comparator + ): Array; + intersectionWith( + a1?: ?Array, + a2?: ?Array, + a3?: ?Array, + comparator?: ?Comparator + ): Array; + intersectionWith( + a1?: ?Array, + a2?: ?Array, + a3?: ?Array, + a4?: ?Array, + comparator?: ?Comparator + ): Array; + join(array: Array, separator?: ?string): string; + join(array: void | null, separator?: ?string): ''; last(array: ?Array): T; - lastIndexOf(array: ?Array, value: T, fromIndex?: number): number; - nth(array: T[], n?: number): T; - pull(array: ?Array, ...values?: Array): Array; - pullAll(array: ?Array, values: Array): Array; - pullAllBy(array: ?Array, values: Array, iteratee?: ValueOnlyIteratee): Array; - pullAllWith(array?: T[], values: T[], comparator?: Function): T[]; - pullAt(array: ?Array, ...indexed?: Array): Array; - pullAt(array: ?Array, indexed?: Array): Array; - remove(array: ?Array, predicate?: Predicate): Array; - reverse(array: ?Array): Array; - slice(array: ?Array, start?: number, end?: number): Array; - sortedIndex(array: ?Array, value: T): number; - sortedIndexBy(array: ?Array, value: T, iteratee?: ValueOnlyIteratee): number; - sortedIndexOf(array: ?Array, value: T): number; - sortedLastIndex(array: ?Array, value: T): number; - sortedLastIndexBy(array: ?Array, value: T, iteratee?: ValueOnlyIteratee): number; - sortedLastIndexOf(array: ?Array, value: T): number; - sortedUniq(array: ?Array): Array; - sortedUniqBy(array: ?Array, iteratee?: (value: T) => mixed): Array; - tail(array: ?Array): Array; - take(array: ?Array, n?: number): Array; - takeRight(array: ?Array, n?: number): Array; - takeRightWhile(array: ?Array, predicate?: Predicate): Array; - takeWhile(array: ?Array, predicate?: Predicate): Array; + lastIndexOf(array: Array, value?: ?T, fromIndex?: ?number): number; + lastIndexOf(array: void | null, value?: ?T, fromIndex?: ?number): -1; + nth(array: T[], n?: ?number): T; + nth(array: void | null, n?: ?number): void; + pull(array: Array, ...values?: Array): Array; + pull(array: T, ...values?: Array): T; + pullAll(array: Array, values?: ?Array): Array; + pullAll(array: T, values?: ?Array): T; + pullAllBy( + array: Array, + values?: ?Array, + iteratee?: ?ValueOnlyIteratee + ): Array; + pullAllBy( + array: T, + values?: ?Array, + iteratee?: ?ValueOnlyIteratee + ): T; + pullAllWith(array: T[], values?: ?T[], comparator?: ?Function): T[]; + pullAllWith(array: T, values?: ?Array, comparator?: ?Function): T; + pullAt(array?: ?Array, ...indexed?: Array): Array; + pullAt(array?: ?Array, indexed?: ?Array): Array; + remove(array?: ?Array, predicate?: ?Predicate): Array; + reverse(array: Array): Array; + reverse(array: T): T; + slice(array?: ?Array, start?: ?number, end?: ?number): Array; + sortedIndex(array: Array, value: T): number; + sortedIndex(array: void | null, value: ?T): 0; + sortedIndexBy( + array: Array, + value?: ?T, + iteratee?: ?ValueOnlyIteratee + ): number; + sortedIndexBy( + array: void | null, + value?: ?T, + iteratee?: ?ValueOnlyIteratee + ): 0; + sortedIndexOf(array: Array, value: T): number; + sortedIndexOf(array: void | null, value?: ?T): -1; + sortedLastIndex(array: Array, value: T): number; + sortedLastIndex(array: void | null, value?: ?T): 0; + sortedLastIndexBy( + array: Array, + value: T, + iteratee?: ValueOnlyIteratee + ): number; + sortedLastIndexBy( + array: void | null, + value?: ?T, + iteratee?: ?ValueOnlyIteratee + ): 0; + sortedLastIndexOf(array: Array, value: T): number; + sortedLastIndexOf(array: void | null, value?: ?T): -1; + sortedUniq(array?: ?Array): Array; + sortedUniqBy(array?: ?Array, iteratee?: ?(value: T) => mixed): Array; + tail(array?: ?Array): Array; + take(array?: ?Array, n?: ?number): Array; + takeRight(array?: ?Array, n?: ?number): Array; + takeRightWhile(array?: ?Array, predicate?: ?Predicate): Array; + takeWhile(array?: ?Array, predicate?: ?Predicate): Array; union(...arrays?: Array>): Array; //Workaround until (...parameter: T, parameter2: U) works - unionBy(a1: Array, iteratee?: ValueOnlyIteratee): Array; - unionBy(a1: Array, a2: Array, iteratee?: ValueOnlyIteratee): Array; - unionBy(a1: Array, a2: Array, a3: Array, iteratee?: ValueOnlyIteratee): Array; - unionBy(a1: Array, a2: Array, a3: Array, a4: Array, iteratee?: ValueOnlyIteratee): Array; + unionBy(a1?: ?Array, iteratee?: ?ValueOnlyIteratee): Array; + unionBy( + a1?: ?Array, + a2: Array, + iteratee?: ValueOnlyIteratee + ): Array; + unionBy( + a1: Array, + a2: Array, + a3: Array, + iteratee?: ValueOnlyIteratee + ): Array; + unionBy( + a1: Array, + a2: Array, + a3: Array, + a4: Array, + iteratee?: ValueOnlyIteratee + ): Array; //Workaround until (...parameter: T, parameter2: U) works - unionWith(a1: Array, comparator?: Comparator): Array; - unionWith(a1: Array, a2: Array, comparator?: Comparator): Array; - unionWith(a1: Array, a2: Array, a3: Array, comparator?: Comparator): Array; - unionWith(a1: Array, a2: Array, a3: Array, a4: Array, comparator?: Comparator): Array; - uniq(array: ?Array): Array; - uniqBy(array: ?Array, iteratee?: ValueOnlyIteratee): Array; - uniqWith(array: ?Array, comparator?: Comparator): Array; - unzip(array: ?Array): Array; - unzipWith(array: ?Array, iteratee?: Iteratee): Array; - without(array: ?Array, ...values?: Array): Array; + unionWith(a1?: ?Array, comparator?: ?Comparator): Array; + unionWith( + a1: Array, + a2: Array, + comparator?: Comparator + ): Array; + unionWith( + a1: Array, + a2: Array, + a3: Array, + comparator?: Comparator + ): Array; + unionWith( + a1: Array, + a2: Array, + a3: Array, + a4: Array, + comparator?: Comparator + ): Array; + uniq(array?: ?Array): Array; + uniqBy(array?: ?Array, iteratee?: ?ValueOnlyIteratee): Array; + uniqWith(array?: ?Array, comparator?: ?Comparator): Array; + unzip(array?: ?Array): Array; + unzipWith(array: ?Array, iteratee?: ?Iteratee): Array; + without(array?: ?Array, ...values?: Array): Array; xor(...array: Array>): Array; //Workaround until (...parameter: T, parameter2: U) works - xorBy(a1: Array, iteratee?: ValueOnlyIteratee): Array; - xorBy(a1: Array, a2: Array, iteratee?: ValueOnlyIteratee): Array; - xorBy(a1: Array, a2: Array, a3: Array, iteratee?: ValueOnlyIteratee): Array; - xorBy(a1: Array, a2: Array, a3: Array, a4: Array, iteratee?: ValueOnlyIteratee): Array; + xorBy(a1?: ?Array, iteratee?: ?ValueOnlyIteratee): Array; + xorBy( + a1: Array, + a2: Array, + iteratee?: ValueOnlyIteratee + ): Array; + xorBy( + a1: Array, + a2: Array, + a3: Array, + iteratee?: ValueOnlyIteratee + ): Array; + xorBy( + a1: Array, + a2: Array, + a3: Array, + a4: Array, + iteratee?: ValueOnlyIteratee + ): Array; //Workaround until (...parameter: T, parameter2: U) works - xorWith(a1: Array, comparator?: Comparator): Array; - xorWith(a1: Array, a2: Array, comparator?: Comparator): Array; - xorWith(a1: Array, a2: Array, a3: Array, comparator?: Comparator): Array; - xorWith(a1: Array, a2: Array, a3: Array, a4: Array, comparator?: Comparator): Array; - zip(a1: A[], a2: B[]): Array<[A, B]>; + xorWith(a1?: ?Array, comparator?: ?Comparator): Array; + xorWith( + a1: Array, + a2: Array, + comparator?: Comparator + ): Array; + xorWith( + a1: Array, + a2: Array, + a3: Array, + comparator?: Comparator + ): Array; + xorWith( + a1: Array, + a2: Array, + a3: Array, + a4: Array, + comparator?: Comparator + ): Array; + zip(a1?: ?A[], a2?: ?B[]): Array<[A, B]>; zip(a1: A[], a2: B[], a3: C[]): Array<[A, B, C]>; zip(a1: A[], a2: B[], a3: C[], a4: D[]): Array<[A, B, C, D]>; - zip(a1: A[], a2: B[], a3: C[], a4: D[], a5: E[]): Array<[A, B, C, D, E]>; + zip( + a1: A[], + a2: B[], + a3: C[], + a4: D[], + a5: E[] + ): Array<[A, B, C, D, E]>; - zipObject(props?: Array, values?: Array): Object; - zipObjectDeep(props?: any[], values?: any): Object; - //Workaround until (...parameter: T, parameter2: U) works - zipWith(a1: NestedArray, iteratee?: Iteratee): Array; - zipWith(a1: NestedArray, a2: NestedArray, iteratee?: Iteratee): Array; - zipWith(a1: NestedArray, a2: NestedArray, a3: NestedArray, iteratee?: Iteratee): Array; - zipWith(a1: NestedArray, a2: NestedArray, a3: NestedArray, a4: NestedArray, iteratee?: Iteratee): Array; + zipObject(props: Array, values?: ?Array): { [key: K]: V }; + zipObject(props: void | null, values?: ?Array): {}; + zipObjectDeep(props: any[], values?: ?any): Object; + zipObjectDeep(props: void | null, values?: ?any): {}; + + zipWith(a1?: ?Array): Array<[A]>; + zipWith(a1: Array, iteratee: (A) => T): Array; + + zipWith(a1: Array, a2: Array): Array<[A, B]>; + zipWith( + a1: Array, + a2: Array, + iteratee: (A, B) => T + ): Array; + + zipWith( + a1: Array, + a2: Array, + a3: Array + ): Array<[A, B, C]>; + zipWith( + a1: Array, + a2: Array, + a3: Array, + iteratee: (A, B, C) => T + ): Array; + + zipWith( + a1: Array, + a2: Array, + a3: Array, + a4: Array + ): Array<[A, B, C, D]>; + zipWith( + a1: Array, + a2: Array, + a3: Array, + a4: Array, + iteratee: (A, B, C, D) => T + ): Array; // Collection - countBy(array: ?Array, iteratee?: ValueOnlyIteratee): Object; - countBy(object: T, iteratee?: ValueOnlyIteratee): Object; + countBy(array: Array, iteratee?: ?ValueOnlyIteratee): Object; + countBy(array: void | null, iteratee?: ?ValueOnlyIteratee): {}; + countBy(object: T, iteratee?: ?ValueOnlyIteratee): Object; // alias of _.forEach - each(array: ?Array, iteratee?: Iteratee): Array; - each(object: T, iteratee?: OIteratee): T; + each(array: Array, iteratee?: ?Iteratee): Array; + each(array: T, iteratee?: ?Iteratee): T; + each(object: T, iteratee?: ?OIteratee): T; // alias of _.forEachRight - eachRight(array: ?Array, iteratee?: Iteratee): Array; + eachRight(array: Array, iteratee?: ?Iteratee): Array; + eachRight(array: T, iteratee?: ?Iteratee): T; eachRight(object: T, iteratee?: OIteratee): T; - every(array: ?Array, iteratee?: Iteratee): bool; - every(object: T, iteratee?: OIteratee): bool; - filter(array: ?Array, predicate?: Predicate): Array; - filter(object: T, predicate?: OPredicate): Array; - find(array: ?Array, predicate?: Predicate, fromIndex?: number): T|void; - find(object: T, predicate?: OPredicate, fromIndex?: number): V; - findLast(array: ?Array, predicate?: Predicate, fromIndex?: number): T|void; - findLast(object: T, predicate?: OPredicate): V; - flatMap(array: ?Array, iteratee?: FlatMapIteratee): Array; - flatMap(object: T, iteratee?: OFlatMapIteratee): Array; - flatMapDeep(array: ?Array, iteratee?: FlatMapIteratee): Array; - flatMapDeep(object: T, iteratee?: OFlatMapIteratee): Array; - flatMapDepth(array: ?Array, iteratee?: FlatMapIteratee, depth?: number): Array; - flatMapDepth(object: T, iteratee?: OFlatMapIteratee, depth?: number): Array; - forEach(array: ?Array, iteratee?: Iteratee): Array; - forEach(object: T, iteratee?: OIteratee): T; - forEachRight(array: ?Array, iteratee?: Iteratee): Array; - forEachRight(object: T, iteratee?: OIteratee): T; - groupBy(array: ?Array, iteratee?: ValueOnlyIteratee): {[key: V]: Array}; - groupBy(object: T, iteratee?: ValueOnlyIteratee): {[key: V]: Array}; - includes(array: ?Array, value: T, fromIndex?: number): bool; - includes(object: T, value: any, fromIndex?: number): bool; - includes(str: string, value: string, fromIndex?: number): bool; - invokeMap(array: ?Array, path: ((value: T) => Array|string)|Array|string, ...args?: Array): Array; - invokeMap(object: T, path: ((value: any) => Array|string)|Array|string, ...args?: Array): Array; - keyBy(array: ?Array, iteratee?: ValueOnlyIteratee): {[key: V]: ?T}; - keyBy(object: T, iteratee?: ValueOnlyIteratee): {[key: V]: ?A}; - map(array: ?Array, iteratee?: MapIterator): Array; - map(object: ?T, iteratee?: OMapIterator): Array; - map(str: ?string, iteratee?: (char: string, index: number, str: string) => any): string; - orderBy(array: ?Array, iteratees?: Array>|string, orders?: Array<'asc'|'desc'>|string): Array; - orderBy(object: T, iteratees?: Array>|string, orders?: Array<'asc'|'desc'>|string): Array; - partition(array: ?Array, predicate?: Predicate): NestedArray; - partition(object: T, predicate?: OPredicate): NestedArray; - reduce(array: ?Array, iteratee?: (accumulator: U, value: T, index: number, array: ?Array) => U, accumulator?: U): U; - reduce(object: T, iteratee?: (accumulator: U, value: any, key: string, object: T) => U, accumulator?: U): U; - reduceRight(array: ?Array, iteratee?: (accumulator: U, value: T, index: number, array: ?Array) => U, accumulator?: U): U; - reduceRight(object: T, iteratee?: (accumulator: U, value: any, key: string, object: T) => U, accumulator?: U): U; + every(array?: ?Array, iteratee?: ?Iteratee): boolean; + every(object: T, iteratee?: OIteratee): boolean; + filter(array?: ?Array, predicate?: ?Predicate): Array; + filter( + object: T, + predicate?: OPredicate + ): Array; + find( + array: $ReadOnlyArray, + predicate?: ?Predicate, + fromIndex?: ?number + ): T | void; + find( + array: void | null, + predicate?: ?Predicate, + fromIndex?: ?number + ): void; + find( + object: T, + predicate?: OPredicate, + fromIndex?: number + ): V; + findLast( + array: ?$ReadOnlyArray, + predicate?: ?Predicate, + fromIndex?: ?number + ): T | void; + findLast( + object: T, + predicate?: ?OPredicate + ): V; + flatMap(array?: ?Array, iteratee?: ?FlatMapIteratee): Array; + flatMap( + object: T, + iteratee?: OFlatMapIteratee + ): Array; + flatMapDeep( + array?: ?Array, + iteratee?: ?FlatMapIteratee + ): Array; + flatMapDeep( + object: T, + iteratee?: ?OFlatMapIteratee + ): Array; + flatMapDepth( + array?: ?Array, + iteratee?: ?FlatMapIteratee, + depth?: ?number + ): Array; + flatMapDepth( + object: T, + iteratee?: OFlatMapIteratee, + depth?: number + ): Array; + forEach(array: Array, iteratee?: ?Iteratee): Array; + forEach(array: T, iteratee?: ?Iteratee): T; + forEach(object: T, iteratee?: ?OIteratee): T; + forEachRight(array: Array, iteratee?: ?Iteratee): Array; + forEachRight(array: T, iteratee?: ?Iteratee): T; + forEachRight(object: T, iteratee?: ?OIteratee): T; + groupBy( + array: Array, + iteratee?: ?ValueOnlyIteratee + ): { [key: V]: Array }; + groupBy( + array: void | null, + iteratee?: ?ValueOnlyIteratee + ): {}; + groupBy( + object: T, + iteratee?: ValueOnlyIteratee + ): { [key: V]: Array }; + includes(array: Array, value: T, fromIndex?: ?number): boolean; + includes(array: void | null, value?: ?T, fromIndex?: ?number): false; + includes(object: T, value: any, fromIndex?: number): boolean; + includes(str: string, value: string, fromIndex?: number): boolean; + invokeMap( + array?: ?Array, + path?: ?((value: T) => Array | string) | Array | string, + ...args?: Array + ): Array; + invokeMap( + object: T, + path: ((value: any) => Array | string) | Array | string, + ...args?: Array + ): Array; + keyBy( + array: Array, + iteratee?: ?ValueOnlyIteratee + ): { [key: V]: ?T }; + keyBy( + array: void | null, + iteratee?: ?ValueOnlyIteratee<*> + ): {}; + keyBy( + object: T, + iteratee?: ?ValueOnlyIteratee + ): { [key: V]: ?A }; + map(array?: ?Array, iteratee?: ?MapIterator): Array; + map( + array: ?$ReadOnlyArray, + iteratee?: ReadOnlyMapIterator + ): Array, + map( + object: ?T, + iteratee?: OMapIterator + ): Array; + map( + str: ?string, + iteratee?: (char: string, index: number, str: string) => any + ): string; + orderBy( + array: Array, + iteratees?: ?Array> | ?string, + orders?: ?Array<"asc" | "desc"> | ?string + ): Array; + orderBy( + array: null | void, + iteratees?: ?Array> | ?string, + orders?: ?Array<"asc" | "desc"> | ?string + ): Array; + orderBy( + object: T, + iteratees?: Array> | string, + orders?: Array<"asc" | "desc"> | string + ): Array; + partition( + array?: ?Array, + predicate?: ?Predicate + ): [Array, Array]; + partition( + object: T, + predicate?: OPredicate + ): [Array, Array]; + reduce( + array: Array, + iteratee?: ( + accumulator: U, + value: T, + index: number, + array: ?Array + ) => U, + accumulator?: U + ): U; + reduce( + array: void | null, + iteratee?: ?( + accumulator: U, + value: T, + index: number, + array: ?Array + ) => U, + accumulator?: ?U + ): void | null; + reduce( + object: T, + iteratee?: (accumulator: U, value: any, key: string, object: T) => U, + accumulator?: U + ): U; + reduceRight( + array: void | null, + iteratee?: ?( + accumulator: U, + value: T, + index: number, + array: ?Array + ) => U, + accumulator?: ?U + ): void | null; + reduceRight( + array: Array, + iteratee?: ?( + accumulator: U, + value: T, + index: number, + array: ?Array + ) => U, + accumulator?: ?U + ): U; + reduceRight( + object: T, + iteratee?: ?(accumulator: U, value: any, key: string, object: T) => U, + accumulator?: ?U + ): U; reject(array: ?Array, predicate?: Predicate): Array; - reject(object: T, predicate?: OPredicate): Array; + reject( + object?: ?T, + predicate?: ?OPredicate + ): Array; sample(array: ?Array): T; sample(object: T): V; - sampleSize(array: ?Array, n?: number): Array; + sampleSize(array?: ?Array, n?: ?number): Array; sampleSize(object: T, n?: number): Array; shuffle(array: ?Array): Array; shuffle(object: T): Array; - size(collection: Array|Object): number; - some(array: ?Array, predicate?: Predicate): bool; - some(object?: ?T, predicate?: OPredicate): bool; + size(collection: Array | Object | string): number; + some(array: ?Array, predicate?: Predicate): boolean; + some(array: void | null, predicate?: ?Predicate): false; + some( + object?: ?T, + predicate?: OPredicate + ): boolean; sortBy(array: ?Array, ...iteratees?: Array>): Array; sortBy(array: ?Array, iteratees?: Array>): Array; - sortBy(object: T, ...iteratees?: Array>): Array; + sortBy( + object: T, + ...iteratees?: Array> + ): Array; sortBy(object: T, iteratees?: Array>): Array; // Date @@ -237,18 +737,19 @@ declare module 'lodash' { ary(func: Function, n?: number): Function; before(n: number, fn: Function): Function; bind(func: Function, thisArg: any, ...partials: Array): Function; - bindKey(obj: Object, key: string, ...partials: Array): Function; + bindKey(obj?: ?Object, key?: ?string, ...partials?: Array): Function; + curry: Curry; curry(func: Function, arity?: number): Function; curryRight(func: Function, arity?: number): Function; - debounce(func: Function, wait?: number, options?: DebounceOptions): Function; - defer(func: Function, ...args?: Array): number; - delay(func: Function, wait: number, ...args?: Array): number; + debounce(func: F, wait?: number, options?: DebounceOptions): F; + defer(func: Function, ...args?: Array): TimeoutID; + delay(func: Function, wait: number, ...args?: Array): TimeoutID; flip(func: Function): Function; - memoize(func: Function, resolver?: Function): Function; + memoize(func: F, resolver?: Function): F; negate(predicate: Function): Function; once(func: Function): Function; - overArgs(func: Function, ...transforms: Array): Function; - overArgs(func: Function, transforms: Array): Function; + overArgs(func?: ?Function, ...transforms?: Array): Function; + overArgs(func?: ?Function, transforms?: ?Array): Function; partial(func: Function, ...partials: any[]): Function; partialRight(func: Function, ...partials: Array): Function; partialRight(func: Function, partials: Array): Function; @@ -256,68 +757,141 @@ declare module 'lodash' { rearg(func: Function, indexes: Array): Function; rest(func: Function, start?: number): Function; spread(func: Function): Function; - throttle(func: Function, wait?: number, options?: ThrottleOptions): Function; + throttle( + func: Function, + wait?: number, + options?: ThrottleOptions + ): Function; unary(func: Function): Function; - wrap(value: any, wrapper: Function): Function; + wrap(value?: any, wrapper?: ?Function): Function; // Lang castArray(value: *): any[]; clone(value: T): T; cloneDeep(value: T): T; - cloneDeepWith(value: T, customizer?: ?(value: T, key: number|string, object: T, stack: any) => U): U; - cloneWith(value: T, customizer?: ?(value: T, key: number|string, object: T, stack: any) => U): U; - conformsTo(source: T, predicates: T&{[key:string]:(x:any)=>boolean}): boolean; - eq(value: any, other: any): bool; - gt(value: any, other: any): bool; - gte(value: any, other: any): bool; - isArguments(value: any): bool; - isArray(value: any): bool; - isArrayBuffer(value: any): bool; - isArrayLike(value: any): bool; - isArrayLikeObject(value: any): bool; - isBoolean(value: any): bool; - isBuffer(value: any): bool; - isDate(value: any): bool; - isElement(value: any): bool; - isEmpty(value: any): bool; - isEqual(value: any, other: any): bool; - isEqualWith(value: T, other: U, customizer?: (objValue: any, otherValue: any, key: number|string, object: T, other: U, stack: any) => bool|void): bool; - isError(value: any): bool; - isFinite(value: any): bool; + cloneDeepWith( + value: T, + customizer?: ?(value: T, key: number | string, object: T, stack: any) => U + ): U; + cloneWith( + value: T, + customizer?: ?(value: T, key: number | string, object: T, stack: any) => U + ): U; + conformsTo( + source: T, + predicates: T & { [key: string]: (x: any) => boolean } + ): boolean; + eq(value: any, other: any): boolean; + gt(value: any, other: any): boolean; + gte(value: any, other: any): boolean; + isArguments(value: void | null): false; + isArguments(value: any): boolean; + isArray(value: Array): true; + isArray(value: any): false; + isArrayBuffer(value: ArrayBuffer): true; + isArrayBuffer(value: any): false; + isArrayLike(value: Array | string | {length: number}): true; + isArrayLike(value: any): false; + isArrayLikeObject(value: {length: number} | Array): true; + isArrayLikeObject(value: any): false; + isBoolean(value: boolean): true; + isBoolean(value: any): false; + isBuffer(value: void | null): false; + isBuffer(value: any): boolean; + isDate(value: Date): true; + isDate(value: any): false; + isElement(value: Element): true; + isElement(value: any): false; + isEmpty(value: void | null | '' | {} | [] | number | boolean): true; + isEmpty(value: any): boolean; + isEqual(value: any, other: any): boolean; + isEqualWith( + value?: ?T, + other?: ?U, + customizer?: ?( + objValue: any, + otherValue: any, + key: number | string, + object: T, + other: U, + stack: any + ) => boolean | void + ): boolean; + isError(value: Error): true; + isError(value: any): false; + isFinite(value: number): boolean; + isFinite(value: any): false; isFunction(value: Function): true; - isFunction(value: number|string|void|null|Object): false; - isInteger(value: any): bool; - isLength(value: any): bool; - isMap(value: any): bool; - isMatch(object?: ?Object, source: Object): bool; - isMatchWith(object: T, source: U, customizer?: (objValue: any, srcValue: any, key: number|string, object: T, source: U) => bool|void): bool; - isNaN(value: any): bool; - isNative(value: any): bool; - isNil(value: any): bool; - isNull(value: any): bool; - isNumber(value: any): bool; - isObject(value: any): bool; - isObjectLike(value: any): bool; - isPlainObject(value: any): bool; - isRegExp(value: any): bool; - isSafeInteger(value: any): bool; - isSet(value: any): bool; + isFunction(value: any): false; + isInteger(value: number): boolean; + isInteger(value: any): false; + isLength(value: void | null): false; + isLength(value: any): boolean; + isMap(value: Map): true; + isMap(value: any): false; + isMatch(object?: ?Object, source?: ?Object): boolean; + isMatchWith( + object?: ?T, + source?: ?U, + customizer?: ?( + objValue: any, + srcValue: any, + key: number | string, + object: T, + source: U + ) => boolean | void + ): boolean; + isNaN(value: Function | string | void | null | Object): false; + isNaN(value: number): boolean; + isNative(value: number | string | void | null | Object): false; + isNative(value: any): boolean; + isNil(value: void | null): true; + isNil(value: any): false; + isNull(value: null): true; + isNull(value: any): false; + isNumber(value: number): true; + isNumber(value: any): false; + isObject(value: Object): true; + isObject(value: any): false; + isObjectLike(value: void | null): false; + isObjectLike(value: any): boolean; + isPlainObject(value: Object): true; + isPlainObject(value: any): false; + isRegExp(value: RegExp): true; + isRegExp(value: any): false; + isSafeInteger(value: number): boolean; + isSafeInteger(value: any): false; + isSet(value: Set): true; + isSet(value: any): false; isString(value: string): true; - isString(value: number|bool|Function|void|null|Object|Array): false; - isSymbol(value: any): bool; - isTypedArray(value: any): bool; - isUndefined(value: any): bool; - isWeakMap(value: any): bool; - isWeakSet(value: any): bool; - lt(value: any, other: any): bool; - lte(value: any, other: any): bool; + isString( + value: number | boolean | Function | void | null | Object | Array + ): false; + isSymbol(value: Symbol): true; + isSymbol(value: any): false; + isTypedArray(value: $TypedArray): true; + isTypedArray(value: any): false; + isUndefined(value: void): true; + isUndefined(value: any): false; + isWeakMap(value: WeakMap): true; + isWeakMap(value: any): false; + isWeakSet(value: WeakSet): true; + isWeakSet(value: any): false; + lt(value: any, other: any): boolean; + lte(value: any, other: any): boolean; toArray(value: any): Array; + toFinite(value: void | null): 0; toFinite(value: any): number; + toInteger(value: void | null): 0; toInteger(value: any): number; + toLength(value: void | null): 0; toLength(value: any): number; + toNumber(value: void | null): 0; toNumber(value: any): number; toPlainObject(value: any): Object; + toSafeInteger(value: void | null): 0; toSafeInteger(value: any): number; + toString(value: void | null): ''; toString(value: any): string; // Math @@ -338,81 +912,363 @@ declare module 'lodash' { sumBy(array: Array, iteratee?: Iteratee): number; // number - clamp(number: number, lower?: number, upper: number): number; - inRange(number: number, start?: number, end: number): bool; - random(lower?: number, upper?: number, floating?: bool): number; + clamp(number?: number, lower?: ?number, upper?: ?number): number; + clamp(number: ?number, lower?: ?number, upper?: ?number): 0; + inRange(number: number, start?: number, end: number): boolean; + random(lower?: number, upper?: number, floating?: boolean): number; // Object assign(object?: ?Object, ...sources?: Array): Object; + assignIn(): {}; assignIn(a: A, b: B): A & B; assignIn(a: A, b: B, c: C): A & B & C; assignIn(a: A, b: B, c: C, d: D): A & B & C & D; assignIn(a: A, b: B, c: C, d: D, e: E): A & B & C & D & E; - assignInWith(object: T, s1: A, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A) => any|void): Object; - assignInWith(object: T, s1: A, s2: B, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B) => any|void): Object; - assignInWith(object: T, s1: A, s2: B, s3: C, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B|C) => any|void): Object; - assignInWith(object: T, s1: A, s2: B, s3: C, s4: D, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B|C|D) => any|void): Object; - assignWith(object: T, s1: A, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A) => any|void): Object; - assignWith(object: T, s1: A, s2: B, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B) => any|void): Object; - assignWith(object: T, s1: A, s2: B, s3: C, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B|C) => any|void): Object; - assignWith(object: T, s1: A, s2: B, s3: C, s4: D, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B|C|D) => any|void): Object; + assignInWith(): {}; + assignInWith( + object: T, + s1: A, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void + ): Object; + assignInWith( + object: T, + s1: A, + s2: B, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B + ) => any | void + ): Object; + assignInWith( + object: T, + s1: A, + s2: B, + s3: C, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B | C + ) => any | void + ): Object; + assignInWith( + object: T, + s1: A, + s2: B, + s3: C, + s4: D, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B | C | D + ) => any | void + ): Object; + assignWith(): {}; + assignWith( + object: T, + s1: A, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void + ): Object; + assignWith( + object: T, + s1: A, + s2: B, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B + ) => any | void + ): Object; + assignWith( + object: T, + s1: A, + s2: B, + s3: C, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B | C + ) => any | void + ): Object; + assignWith( + object: T, + s1: A, + s2: B, + s3: C, + s4: D, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B | C | D + ) => any | void + ): Object; at(object?: ?Object, ...paths: Array): Array; at(object?: ?Object, paths: Array): Array; - create(prototype: T, properties?: Object): $Supertype; + create(prototype: T, properties: Object): $Supertype; + create(prototype: any, properties: void | null): {}; defaults(object?: ?Object, ...sources?: Array): Object; defaultsDeep(object?: ?Object, ...sources?: Array): Object; // alias for _.toPairs - entries(object?: ?Object): NestedArray; + entries(object?: ?Object): Array<[string, any]>; // alias for _.toPairsIn - entriesIn(object?: ?Object): NestedArray; + entriesIn(object?: ?Object): Array<[string, any]>; // alias for _.assignIn - extend(a: A, b: B): A & B; + extend(a?: ?A, b?: ?B): A & B; extend(a: A, b: B, c: C): A & B & C; extend(a: A, b: B, c: C, d: D): A & B & C & D; extend(a: A, b: B, c: C, d: D, e: E): A & B & C & D & E; // alias for _.assignInWith - extendWith(object: T, s1: A, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A) => any|void): Object; - extendWith(object: T, s1: A, s2: B, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B) => any|void): Object; - extendWith(object: T, s1: A, s2: B, s3: C, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B|C) => any|void): Object; - extendWith(object: T, s1: A, s2: B, s3: C, s4: D, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B|C|D) => any|void): Object; - findKey(object?: ?T, predicate?: OPredicate): string|void; - findLastKey(object?: ?T, predicate?: OPredicate): string|void; - forIn(object?: ?Object, iteratee?: OIteratee<*>): Object; - forInRight(object?: ?Object, iteratee?: OIteratee<*>): Object; - forOwn(object?: ?Object, iteratee?: OIteratee<*>): Object; - forOwnRight(object?: ?Object, iteratee?: OIteratee<*>): Object; + extendWith( + object?: ?T, + s1?: ?A, + customizer?: ?( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void + ): Object; + extendWith( + object: T, + s1: A, + s2: B, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B + ) => any | void + ): Object; + extendWith( + object: T, + s1: A, + s2: B, + s3: C, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B | C + ) => any | void + ): Object; + extendWith( + object: T, + s1: A, + s2: B, + s3: C, + s4: D, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B | C | D + ) => any | void + ): Object; + findKey( + object: T, + predicate?: ?OPredicate + ): string | void; + findKey( + object: void | null, + predicate?: ?OPredicate + ): void; + findLastKey( + object: T, + predicate?: ?OPredicate + ): string | void; + findLastKey( + object: void | null, + predicate?: ?OPredicate + ): void; + forIn(object: Object, iteratee?: ?OIteratee<*>): Object; + forIn(object: void | null, iteratee?: ?OIteratee<*>): null; + forInRight(object: Object, iteratee?: ?OIteratee<*>): Object; + forInRight(object: void | null, iteratee?: ?OIteratee<*>): null; + forOwn(object: Object, iteratee?: ?OIteratee<*>): Object; + forOwn(object: void | null, iteratee?: ?OIteratee<*>): null; + forOwnRight(object: Object, iteratee?: ?OIteratee<*>): Object; + forOwnRight(object: void | null, iteratee?: ?OIteratee<*>): null; functions(object?: ?Object): Array; functionsIn(object?: ?Object): Array; - get(object?: ?Object|?Array, path?: ?Array|string, defaultValue?: any): any; - has(object?: ?Object, path?: ?Array|string): bool; - hasIn(object?: ?Object, path?: ?Array|string): bool; - invert(object?: ?Object, multiVal?: bool): Object; - invertBy(object: ?Object, iteratee?: Function): Object; - invoke(object?: ?Object, path?: ?Array|string, ...args?: Array): any; + get( + object?: ?Object | ?Array, + path?: ?Array | string, + defaultValue?: any + ): any; + has(object: Object, path: Array | string): boolean; + has(object: Object, path: void | null): false; + has(object: void | null, path?: ?Array | ?string): false; + hasIn(object: Object, path: Array | string): boolean; + hasIn(object: Object, path: void | null): false; + hasIn(object: void | null, path?: ?Array | ?string): false; + invert(object: Object, multiVal?: ?boolean): Object; + invert(object: void | null, multiVal?: ?boolean): {}; + invertBy(object: Object, iteratee?: ?Function): Object; + invertBy(object: void | null, iteratee?: ?Function): {}; + invoke( + object?: ?Object, + path?: ?Array | string, + ...args?: Array + ): any; + keys(object?: ?{ [key: K]: any }): Array; keys(object?: ?Object): Array; keysIn(object?: ?Object): Array; - mapKeys(object?: ?Object, iteratee?: OIteratee<*>): Object; - mapValues(object?: ?Object, iteratee?: OIteratee<*>): Object; + mapKeys(object: Object, iteratee?: ?OIteratee<*>): Object; + mapKeys(object: void | null, iteratee?: ?OIteratee<*>): {}; + mapValues(object: Object, iteratee?: ?OIteratee<*>): Object; + mapValues(object: void | null, iteratee?: ?OIteratee<*>): {}; merge(object?: ?Object, ...sources?: Array): Object; - mergeWith(object: T, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A) => any|void): Object; - mergeWith(object: T, s1: A, s2: B, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B) => any|void): Object; - mergeWith(object: T, s1: A, s2: B, s3: C, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B|C) => any|void): Object; - mergeWith(object: T, s1: A, s2: B, s3: C, s4: D, customizer?: (objValue: any, srcValue: any, key: string, object: T, source: A|B|C|D) => any|void): Object; + mergeWith(): {}; + mergeWith( + object: T, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void + ): Object; + mergeWith( + object: T, + s1: A, + s2: B, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B + ) => any | void + ): Object; + mergeWith( + object: T, + s1: A, + s2: B, + s3: C, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B | C + ) => any | void + ): Object; + mergeWith( + object: T, + s1: A, + s2: B, + s3: C, + s4: D, + customizer?: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B | C | D + ) => any | void + ): Object; omit(object?: ?Object, ...props: Array): Object; omit(object?: ?Object, props: Array): Object; - omitBy(object?: ?T, predicate?: OPredicate): Object; + omitBy( + object: T, + predicate?: ?OPredicate + ): Object; + omitBy( + object: T, + predicate?: ?OPredicate + ): {}; pick(object?: ?Object, ...props: Array): Object; pick(object?: ?Object, props: Array): Object; - pickBy(object?: ?T, predicate?: OPredicate): Object; - result(object?: ?Object, path?: ?Array|string, defaultValue?: any): any; - set(object?: ?Object, path?: ?Array|string, value: any): Object; - setWith(object: T, path?: ?Array|string, value: any, customizer?: (nsValue: any, key: string, nsObject: T) => any): Object; - toPairs(object?: ?Object|Array<*>): NestedArray; - toPairsIn(object?: ?Object): NestedArray; - transform(collection: Object|Array, iteratee?: OIteratee<*>, accumulator?: any): any; - unset(object?: ?Object, path?: ?Array|string): bool; - update(object: Object, path: string[]|string, updater: Function): Object; - updateWith(object: Object, path: string[]|string, updater: Function, customizer?: Function): Object; + pickBy( + object: T, + predicate?: ?OPredicate + ): Object; + pickBy( + object: T, + predicate?: ?OPredicate + ): {}; + result( + object?: ?Object, + path?: ?Array | string, + defaultValue?: any + ): any; + set(object: Object, path?: ?Array | string, value: any): Object; + set( + object: T, + path?: ?Array | string, + value?: ?any): T; + setWith( + object: T, + path?: ?Array | string, + value: any, + customizer?: (nsValue: any, key: string, nsObject: T) => any + ): Object; + setWith( + object: T, + path?: ?Array | string, + value?: ?any, + customizer?: ?(nsValue: any, key: string, nsObject: T) => any + ): T; + toPairs(object?: ?Object | Array<*>): Array<[string, any]>; + toPairsIn(object?: ?Object): Array<[string, any]>; + transform( + collection: Object | Array, + iteratee?: ?OIteratee<*>, + accumulator?: any + ): any; + transform( + collection: void | null, + iteratee?: ?OIteratee<*>, + accumulator?: ?any + ): {}; + unset(object: Object, path?: ?Array | ?string): boolean; + unset(object: void | null, path?: ?Array | ?string): true; + update(object: Object, path: string[] | string, updater: Function): Object; + update( + object: T, + path?: ?string[] | ?string, + updater?: ?Function): T; + updateWith( + object: Object, + path?: ?string[] | ?string, + updater?: ?Function, + customizer?: ?Function + ): Object; + updateWith( + object: T, + path?: ?string[] | ?string, + updater?: ?Function, + customizer?: ?Function + ): T; values(object?: ?Object): Array; valuesIn(object?: ?Object): Array; @@ -420,95 +1276,4701 @@ declare module 'lodash' { // harder to read, but this is _() (value: any): any; chain(value: T): any; - tap(value: T, interceptor: (value:T)=>any): T; - thru(value: T1, interceptor: (value:T1)=>T2): T2; + tap(value: T, interceptor: (value: T) => any): T; + thru(value: T1, interceptor: (value: T1) => T2): T2; // TODO: _.prototype.* // String - camelCase(string?: ?string): string; - capitalize(string?: string): string; - deburr(string?: string): string; - endsWith(string?: string, target?: string, position?: number): bool; - escape(string?: string): string; - escapeRegExp(string?: string): string; - kebabCase(string?: string): string; - lowerCase(string?: string): string; - lowerFirst(string?: string): string; - pad(string?: string, length?: number, chars?: string): string; - padEnd(string?: string, length?: number, chars?: string): string; - padStart(string?: string, length?: number, chars?: string): string; - parseInt(string: string, radix?: number): number; - repeat(string?: string, n?: number): string; - replace(string?: string, pattern: RegExp|string, replacement: ((string: string) => string)|string): string; - snakeCase(string?: string): string; - split(string?: string, separator: RegExp|string, limit?: number): Array; - startCase(string?: string): string; - startsWith(string?: string, target?: string, position?: number): bool; - template(string?: string, options?: TemplateSettings): Function; - toLower(string?: string): string; - toUpper(string?: string): string; - trim(string?: string, chars?: string): string; - trimEnd(string?: string, chars?: string): string; - trimStart(string?: string, chars?: string): string; - truncate(string?: string, options?: TruncateOptions): string; - unescape(string?: string): string; - upperCase(string?: string): string; - upperFirst(string?: string): string; - words(string?: string, pattern?: RegExp|string): Array; + camelCase(string: string): string; + camelCase(string: void | null): ''; + capitalize(string: string): string; + capitalize(string: void | null): ''; + deburr(string: string): string; + deburr(string: void | null): ''; + endsWith(string: string, target?: string, position?: ?number): boolean; + endsWith(string: void | null, target?: ?string, position?: ?number): false; + escape(string: string): string; + escape(string: void | null): ''; + escapeRegExp(string: string): string; + escapeRegExp(string: void | null): ''; + kebabCase(string: string): string; + kebabCase(string: void | null): ''; + lowerCase(string: string): string; + lowerCase(string: void | null): ''; + lowerFirst(string: string): string; + lowerFirst(string: void | null): ''; + pad(string?: ?string, length?: ?number, chars?: ?string): string; + padEnd(string?: ?string, length?: ?number, chars?: ?string): string; + padStart(string?: ?string, length?: ?number, chars?: ?string): string; + parseInt(string: string, radix?: ?number): number; + repeat(string: string, n?: ?number): string; + repeat(string: void | null, n?: ?number): ''; + replace( + string: string, + pattern: RegExp | string, + replacement: ((string: string) => string) | string + ): string; + replace( + string: void | null, + pattern?: ?RegExp | ?string, + replacement: ?((string: string) => string) | ?string + ): ''; + snakeCase(string: string): string; + snakeCase(string: void | null): ''; + split( + string?: ?string, + separator?: ?RegExp | ?string, + limit?: ?number + ): Array; + startCase(string: string): string; + startCase(string: void | null): ''; + startsWith(string: string, target?: string, position?: number): boolean; + startsWith(string: void | null, target?: ?string, position?: ?number): false; + template(string?: ?string, options?: ?TemplateSettings): Function; + toLower(string: string): string; + toLower(string: void | null): ''; + toUpper(string: string): string; + toUpper(string: void | null): ''; + trim(string: string, chars?: string): string; + trim(string: void | null, chars?: ?string): ''; + trimEnd(string: string, chars?: ?string): string; + trimEnd(string: void | null, chars?: ?string): ''; + trimStart(string: string, chars?: ?string): string; + trimStart(string: void | null, chars?: ?string): ''; + truncate(string: string, options?: TruncateOptions): string; + truncate(string: void | null, options?: ?TruncateOptions): ''; + unescape(string: string): string; + unescape(string: void | null): ''; + upperCase(string: string): string; + upperCase(string: void | null): ''; + upperFirst(string: string): string; + upperFirst(string: void | null): ''; + words(string?: ?string, pattern?: ?RegExp | ?string): Array; // Util - attempt(func: Function): any; - bindAll(object?: ?Object, methodNames: Array): Object; - bindAll(object?: ?Object, ...methodNames: Array): Object; - cond(pairs: NestedArray): Function; - conforms(source: Object): Function; + attempt(func: Function, ...args: Array): any; + bindAll(object: Object, methodNames?: ?Array): Object; + bindAll(object: T, methodNames?: ?Array): T; + bindAll(object: Object, ...methodNames: Array): Object; + cond(pairs?: ?NestedArray): Function; + conforms(source?: ?Object): Function; constant(value: T): () => T; - defaultTo(value: T1, default: T2): T1; + defaultTo( + value: T1, + defaultValue: T2 + ): T1; // NaN is a number instead of its own type, otherwise it would behave like null/void - defaultTo(value: T1, default: T2): T1|T2; - defaultTo(value: T1, default: T2): T2; - flow(...funcs?: Array): Function; + defaultTo(value: T1, defaultValue: T2): T1 | T2; + defaultTo(value: T1, defaultValue: T2): T2; + flow: $ComposeReverse; flow(funcs?: Array): Function; - flowRight(...funcs?: Array): Function; + flowRight: $Compose; flowRight(funcs?: Array): Function; identity(value: T): T; iteratee(func?: any): Function; - matches(source: Object): Function; - matchesProperty(path?: ?Array|string, srcValue: any): Function; - method(path?: ?Array|string, ...args?: Array): Function; + matches(source?: ?Object): Function; + matchesProperty(path?: ?Array | string, srcValue: any): Function; + method(path?: ?Array | string, ...args?: Array): Function; methodOf(object?: ?Object, ...args?: Array): Function; - mixin(object?: T, source: Object, options?: { chain: bool }): T; + mixin( + object?: T, + source: Object, + options?: { chain: boolean } + ): T; noConflict(): Lodash; noop(...args: Array): void; - nthArg(n?: number): Function; + nthArg(n?: ?number): Function; over(...iteratees: Array): Function; over(iteratees: Array): Function; overEvery(...predicates: Array): Function; overEvery(predicates: Array): Function; overSome(...predicates: Array): Function; overSome(predicates: Array): Function; - property(path?: ?Array|string): Function; + property(path?: ?Array | string): Function; propertyOf(object?: ?Object): Function; range(start: number, end: number, step?: number): Array; range(end: number, step?: number): Array; - rangeRight(start: number, end: number, step?: number): Array; - rangeRight(end: number, step?: number): Array; - runInContext(context?: Object): Function; + rangeRight(start?: ?number, end?: ?number, step?: ?number): Array; + rangeRight(end?: ?number, step?: ?number): Array; + runInContext(context?: ?Object): Function; + + stubArray(): Array<*>; + stubFalse(): false; + stubObject(): {}; + stubString(): ""; + stubTrue(): true; + times(n?: ?number, ...rest?: Array): Array; + times(n: number, iteratee: (i: number) => T): Array; + toPath(value: any): Array; + uniqueId(prefix?: ?string): string; + + // Properties + VERSION: string; + templateSettings: TemplateSettings; + } + + declare module.exports: Lodash; +} + +declare module "lodash/fp" { + declare type __CurriedFunction1 = (...r: [AA]) => R; + declare type CurriedFunction1 = __CurriedFunction1; + + declare type __CurriedFunction2 = (( + ...r: [AA] + ) => CurriedFunction1) & + ((...r: [AA, BB]) => R); + declare type CurriedFunction2 = __CurriedFunction2; + + declare type __CurriedFunction3 = (( + ...r: [AA] + ) => CurriedFunction2) & + ((...r: [AA, BB]) => CurriedFunction1) & + ((...r: [AA, BB, CC]) => R); + declare type CurriedFunction3 = __CurriedFunction3< + A, + B, + C, + R, + *, + *, + * + >; + + declare type __CurriedFunction4< + A, + B, + C, + D, + R, + AA: A, + BB: B, + CC: C, + DD: D + > = ((...r: [AA]) => CurriedFunction3) & + ((...r: [AA, BB]) => CurriedFunction2) & + ((...r: [AA, BB, CC]) => CurriedFunction1) & + ((...r: [AA, BB, CC, DD]) => R); + declare type CurriedFunction4 = __CurriedFunction4< + A, + B, + C, + D, + R, + *, + *, + *, + * + >; + + declare type __CurriedFunction5< + A, + B, + C, + D, + E, + R, + AA: A, + BB: B, + CC: C, + DD: D, + EE: E + > = ((...r: [AA]) => CurriedFunction4) & + ((...r: [AA, BB]) => CurriedFunction3) & + ((...r: [AA, BB, CC]) => CurriedFunction2) & + ((...r: [AA, BB, CC, DD]) => CurriedFunction1) & + ((...r: [AA, BB, CC, DD, EE]) => R); + declare type CurriedFunction5 = __CurriedFunction5< + A, + B, + C, + D, + E, + R, + *, + *, + *, + *, + * + >; + + declare type __CurriedFunction6< + A, + B, + C, + D, + E, + F, + R, + AA: A, + BB: B, + CC: C, + DD: D, + EE: E, + FF: F + > = ((...r: [AA]) => CurriedFunction5) & + ((...r: [AA, BB]) => CurriedFunction4) & + ((...r: [AA, BB, CC]) => CurriedFunction3) & + ((...r: [AA, BB, CC, DD]) => CurriedFunction2) & + ((...r: [AA, BB, CC, DD, EE]) => CurriedFunction1) & + ((...r: [AA, BB, CC, DD, EE, FF]) => R); + declare type CurriedFunction6 = __CurriedFunction6< + A, + B, + C, + D, + E, + F, + R, + *, + *, + *, + *, + *, + * + >; + + declare type Curry = (((...r: [A]) => R) => CurriedFunction1) & + (((...r: [A, B]) => R) => CurriedFunction2) & + (((...r: [A, B, C]) => R) => CurriedFunction3) & + (( + (...r: [A, B, C, D]) => R + ) => CurriedFunction4) & + (( + (...r: [A, B, C, D, E]) => R + ) => CurriedFunction5) & + (( + (...r: [A, B, C, D, E, F]) => R + ) => CurriedFunction6); + + declare type UnaryFn = (a: A) => R; + + declare type TemplateSettings = { + escape?: RegExp, + evaluate?: RegExp, + imports?: Object, + interpolate?: RegExp, + variable?: string + }; + + declare type TruncateOptions = { + length?: number, + omission?: string, + separator?: RegExp | string + }; + + declare type DebounceOptions = { + leading?: boolean, + maxWait?: number, + trailing?: boolean + }; + + declare type ThrottleOptions = { + leading?: boolean, + trailing?: boolean + }; + + declare type NestedArray = Array>; + + declare type matchesIterateeShorthand = Object; + declare type matchesPropertyIterateeShorthand = [string, any]; + declare type propertyIterateeShorthand = string; + + declare type OPredicate = + | ((value: A) => any) + | matchesIterateeShorthand + | matchesPropertyIterateeShorthand + | propertyIterateeShorthand; + + declare type OIterateeWithResult = Object | string | ((value: V) => R); + declare type OIteratee = OIterateeWithResult; + declare type OFlatMapIteratee = OIterateeWithResult>; + + declare type Predicate = + | ((value: T) => any) + | matchesIterateeShorthand + | matchesPropertyIterateeShorthand + | propertyIterateeShorthand; + + declare type _ValueOnlyIteratee = (value: T) => mixed; + declare type ValueOnlyIteratee = _ValueOnlyIteratee | string; + declare type _Iteratee = (item: T) => mixed; + declare type Iteratee = _Iteratee | Object | string; + declare type FlatMapIteratee = + | ((item: T) => Array) + | Object + | string; + declare type Comparator = (item: T, item2: T) => boolean; + + declare type MapIterator = ((item: T) => U) | propertyIterateeShorthand; + + declare type OMapIterator = + | ((item: T) => U) + | propertyIterateeShorthand; + + declare class Lodash { + // Array + chunk(size: number): (array: Array) => Array>; + chunk(size: number, array: Array): Array>; + compact(array: Array): Array; + concat | T, B: Array | U>( + base: A + ): (elements: B) => Array; + concat | T, B: Array | U>( + base: A, + elements: B + ): Array; + difference(values: Array): (array: Array) => Array; + difference(values: Array, array: Array): Array; + differenceBy( + iteratee: ValueOnlyIteratee + ): ((values: Array) => (array: Array) => T[]) & + ((values: Array, array: Array) => T[]); + differenceBy( + iteratee: ValueOnlyIteratee, + values: Array + ): (array: Array) => T[]; + differenceBy( + iteratee: ValueOnlyIteratee, + values: Array, + array: Array + ): T[]; + differenceWith( + values: T[] + ): ((comparator: Comparator) => (array: T[]) => T[]) & + ((comparator: Comparator, array: T[]) => T[]); + differenceWith( + values: T[], + comparator: Comparator + ): (array: T[]) => T[]; + differenceWith(values: T[], comparator: Comparator, array: T[]): T[]; + drop(n: number): (array: Array) => Array; + drop(n: number, array: Array): Array; + dropLast(n: number): (array: Array) => Array; + dropLast(n: number, array: Array): Array; + dropRight(n: number): (array: Array) => Array; + dropRight(n: number, array: Array): Array; + dropRightWhile(predicate: Predicate): (array: Array) => Array; + dropRightWhile(predicate: Predicate, array: Array): Array; + dropWhile(predicate: Predicate): (array: Array) => Array; + dropWhile(predicate: Predicate, array: Array): Array; + dropLastWhile(predicate: Predicate): (array: Array) => Array; + dropLastWhile(predicate: Predicate, array: Array): Array; + fill( + start: number + ): (( + end: number + ) => ((value: U) => (array: Array) => Array) & + ((value: U, array: Array) => Array)) & + ((end: number, value: U) => (array: Array) => Array) & + ((end: number, value: U, array: Array) => Array); + fill( + start: number, + end: number + ): ((value: U) => (array: Array) => Array) & + ((value: U, array: Array) => Array); + fill( + start: number, + end: number, + value: U + ): (array: Array) => Array; + fill( + start: number, + end: number, + value: U, + array: Array + ): Array; + findIndex(predicate: Predicate): (array: $ReadOnlyArray) => number; + findIndex(predicate: Predicate, array: $ReadOnlyArray): number; + findIndexFrom( + predicate: Predicate + ): ((fromIndex: number) => (array: $ReadOnlyArray) => number) & + ((fromIndex: number, array: $ReadOnlyArray) => number); + findIndexFrom( + predicate: Predicate, + fromIndex: number + ): (array: $ReadOnlyArray) => number; + findIndexFrom( + predicate: Predicate, + fromIndex: number, + array: $ReadOnlyArray + ): number; + findLastIndex( + predicate: Predicate + ): (array: $ReadOnlyArray) => number; + findLastIndex(predicate: Predicate, array: $ReadOnlyArray): number; + findLastIndexFrom( + predicate: Predicate + ): ((fromIndex: number) => (array: $ReadOnlyArray) => number) & + ((fromIndex: number, array: $ReadOnlyArray) => number); + findLastIndexFrom( + predicate: Predicate, + fromIndex: number + ): (array: $ReadOnlyArray) => number; + findLastIndexFrom( + predicate: Predicate, + fromIndex: number, + array: $ReadOnlyArray + ): number; + // alias of _.head + first(array: Array): T; + flatten(array: Array | X>): Array; + unnest(array: Array | X>): Array; + flattenDeep(array: any[]): Array; + flattenDepth(depth: number): (array: any[]) => any[]; + flattenDepth(depth: number, array: any[]): any[]; + fromPairs(pairs: Array<[A, B]>): { [key: A]: B }; + head(array: Array): T; + indexOf(value: T): (array: Array) => number; + indexOf(value: T, array: Array): number; + indexOfFrom( + value: T + ): ((fromIndex: number) => (array: Array) => number) & + ((fromIndex: number, array: Array) => number); + indexOfFrom(value: T, fromIndex: number): (array: Array) => number; + indexOfFrom(value: T, fromIndex: number, array: Array): number; + initial(array: Array): Array; + init(array: Array): Array; + intersection(a1: Array): (a2: Array) => Array; + intersection(a1: Array, a2: Array): Array; + intersectionBy( + iteratee: ValueOnlyIteratee + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + intersectionBy( + iteratee: ValueOnlyIteratee, + a1: Array + ): (a2: Array) => Array; + intersectionBy( + iteratee: ValueOnlyIteratee, + a1: Array, + a2: Array + ): Array; + intersectionWith( + comparator: Comparator + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + intersectionWith( + comparator: Comparator, + a1: Array + ): (a2: Array) => Array; + intersectionWith( + comparator: Comparator, + a1: Array, + a2: Array + ): Array; + join(separator: string): (array: Array) => string; + join(separator: string, array: Array): string; + last(array: Array): T; + lastIndexOf(value: T): (array: Array) => number; + lastIndexOf(value: T, array: Array): number; + lastIndexOfFrom( + value: T + ): ((fromIndex: number) => (array: Array) => number) & + ((fromIndex: number, array: Array) => number); + lastIndexOfFrom( + value: T, + fromIndex: number + ): (array: Array) => number; + lastIndexOfFrom(value: T, fromIndex: number, array: Array): number; + nth(n: number): (array: T[]) => T; + nth(n: number, array: T[]): T; + pull(value: T): (array: Array) => Array; + pull(value: T, array: Array): Array; + pullAll(values: Array): (array: Array) => Array; + pullAll(values: Array, array: Array): Array; + pullAllBy( + iteratee: ValueOnlyIteratee + ): ((values: Array) => (array: Array) => Array) & + ((values: Array, array: Array) => Array); + pullAllBy( + iteratee: ValueOnlyIteratee, + values: Array + ): (array: Array) => Array; + pullAllBy( + iteratee: ValueOnlyIteratee, + values: Array, + array: Array + ): Array; + pullAllWith( + comparator: Function + ): ((values: T[]) => (array: T[]) => T[]) & + ((values: T[], array: T[]) => T[]); + pullAllWith(comparator: Function, values: T[]): (array: T[]) => T[]; + pullAllWith(comparator: Function, values: T[], array: T[]): T[]; + pullAt(indexed: Array): (array: Array) => Array; + pullAt(indexed: Array, array: Array): Array; + remove(predicate: Predicate): (array: Array) => Array; + remove(predicate: Predicate, array: Array): Array; + reverse(array: Array): Array; + slice( + start: number + ): ((end: number) => (array: Array) => Array) & + ((end: number, array: Array) => Array); + slice(start: number, end: number): (array: Array) => Array; + slice(start: number, end: number, array: Array): Array; + sortedIndex(value: T): (array: Array) => number; + sortedIndex(value: T, array: Array): number; + sortedIndexBy( + iteratee: ValueOnlyIteratee + ): ((value: T) => (array: Array) => number) & + ((value: T, array: Array) => number); + sortedIndexBy( + iteratee: ValueOnlyIteratee, + value: T + ): (array: Array) => number; + sortedIndexBy( + iteratee: ValueOnlyIteratee, + value: T, + array: Array + ): number; + sortedIndexOf(value: T): (array: Array) => number; + sortedIndexOf(value: T, array: Array): number; + sortedLastIndex(value: T): (array: Array) => number; + sortedLastIndex(value: T, array: Array): number; + sortedLastIndexBy( + iteratee: ValueOnlyIteratee + ): ((value: T) => (array: Array) => number) & + ((value: T, array: Array) => number); + sortedLastIndexBy( + iteratee: ValueOnlyIteratee, + value: T + ): (array: Array) => number; + sortedLastIndexBy( + iteratee: ValueOnlyIteratee, + value: T, + array: Array + ): number; + sortedLastIndexOf(value: T): (array: Array) => number; + sortedLastIndexOf(value: T, array: Array): number; + sortedUniq(array: Array): Array; + sortedUniqBy( + iteratee: (value: T) => mixed + ): (array: Array) => Array; + sortedUniqBy(iteratee: (value: T) => mixed, array: Array): Array; + tail(array: Array): Array; + take(n: number): (array: Array) => Array; + take(n: number, array: Array): Array; + takeRight(n: number): (array: Array) => Array; + takeRight(n: number, array: Array): Array; + takeLast(n: number): (array: Array) => Array; + takeLast(n: number, array: Array): Array; + takeRightWhile(predicate: Predicate): (array: Array) => Array; + takeRightWhile(predicate: Predicate, array: Array): Array; + takeLastWhile(predicate: Predicate): (array: Array) => Array; + takeLastWhile(predicate: Predicate, array: Array): Array; + takeWhile(predicate: Predicate): (array: Array) => Array; + takeWhile(predicate: Predicate, array: Array): Array; + union(a1: Array): (a2: Array) => Array; + union(a1: Array, a2: Array): Array; + unionBy( + iteratee: ValueOnlyIteratee + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + unionBy( + iteratee: ValueOnlyIteratee, + a1: Array + ): (a2: Array) => Array; + unionBy( + iteratee: ValueOnlyIteratee, + a1: Array, + a2: Array + ): Array; + unionWith( + comparator: Comparator + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + unionWith( + comparator: Comparator, + a1: Array + ): (a2: Array) => Array; + unionWith( + comparator: Comparator, + a1: Array, + a2: Array + ): Array; + uniq(array: Array): Array; + uniqBy(iteratee: ValueOnlyIteratee): (array: Array) => Array; + uniqBy(iteratee: ValueOnlyIteratee, array: Array): Array; + uniqWith(comparator: Comparator): (array: Array) => Array; + uniqWith(comparator: Comparator, array: Array): Array; + unzip(array: Array): Array; + unzipWith(iteratee: Iteratee): (array: Array) => Array; + unzipWith(iteratee: Iteratee, array: Array): Array; + without(values: Array): (array: Array) => Array; + without(values: Array, array: Array): Array; + xor(a1: Array): (a2: Array) => Array; + xor(a1: Array, a2: Array): Array; + symmetricDifference(a1: Array): (a2: Array) => Array; + symmetricDifference(a1: Array, a2: Array): Array; + xorBy( + iteratee: ValueOnlyIteratee + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + xorBy( + iteratee: ValueOnlyIteratee, + a1: Array + ): (a2: Array) => Array; + xorBy( + iteratee: ValueOnlyIteratee, + a1: Array, + a2: Array + ): Array; + symmetricDifferenceBy( + iteratee: ValueOnlyIteratee + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + symmetricDifferenceBy( + iteratee: ValueOnlyIteratee, + a1: Array + ): (a2: Array) => Array; + symmetricDifferenceBy( + iteratee: ValueOnlyIteratee, + a1: Array, + a2: Array + ): Array; + xorWith( + comparator: Comparator + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + xorWith( + comparator: Comparator, + a1: Array + ): (a2: Array) => Array; + xorWith(comparator: Comparator, a1: Array, a2: Array): Array; + symmetricDifferenceWith( + comparator: Comparator + ): ((a1: Array) => (a2: Array) => Array) & + ((a1: Array, a2: Array) => Array); + symmetricDifferenceWith( + comparator: Comparator, + a1: Array + ): (a2: Array) => Array; + symmetricDifferenceWith( + comparator: Comparator, + a1: Array, + a2: Array + ): Array; + zip(a1: A[]): (a2: B[]) => Array<[A, B]>; + zip(a1: A[], a2: B[]): Array<[A, B]>; + zipAll(arrays: Array>): Array; + zipObject(props?: Array): (values?: Array) => { [key: K]: V }; + zipObject(props?: Array, values?: Array): { [key: K]: V }; + zipObj(props: Array): (values: Array) => Object; + zipObj(props: Array, values: Array): Object; + zipObjectDeep(props: any[]): (values: any) => Object; + zipObjectDeep(props: any[], values: any): Object; + zipWith( + iteratee: Iteratee + ): ((a1: NestedArray) => (a2: NestedArray) => Array) & + ((a1: NestedArray, a2: NestedArray) => Array); + zipWith( + iteratee: Iteratee, + a1: NestedArray + ): (a2: NestedArray) => Array; + zipWith( + iteratee: Iteratee, + a1: NestedArray, + a2: NestedArray + ): Array; + // Collection + countBy( + iteratee: ValueOnlyIteratee + ): (collection: Array | { [id: any]: T }) => { [string]: number }; + countBy( + iteratee: ValueOnlyIteratee, + collection: Array | { [id: any]: T } + ): { [string]: number }; + // alias of _.forEach + each( + iteratee: Iteratee | OIteratee + ): (collection: Array | { [id: any]: T }) => Array; + each( + iteratee: Iteratee | OIteratee, + collection: Array | { [id: any]: T } + ): Array; + // alias of _.forEachRight + eachRight( + iteratee: Iteratee | OIteratee + ): (collection: Array | { [id: any]: T }) => Array; + eachRight( + iteratee: Iteratee | OIteratee, + collection: Array | { [id: any]: T } + ): Array; + every( + iteratee: Iteratee | OIteratee + ): (collection: Array | { [id: any]: T }) => boolean; + every( + iteratee: Iteratee | OIteratee, + collection: Array | { [id: any]: T } + ): boolean; + all( + iteratee: Iteratee | OIteratee + ): (collection: Array | { [id: any]: T }) => boolean; + all( + iteratee: Iteratee | OIteratee, + collection: Array | { [id: any]: T } + ): boolean; + filter( + predicate: Predicate | OPredicate + ): (collection: Array | { [id: any]: T }) => Array; + filter( + predicate: Predicate | OPredicate, + collection: Array | { [id: any]: T } + ): Array; + find( + predicate: Predicate | OPredicate + ): (collection: $ReadOnlyArray | { [id: any]: T }) => T | void; + find( + predicate: Predicate | OPredicate, + collection: $ReadOnlyArray | { [id: any]: T } + ): T | void; + findFrom( + predicate: Predicate | OPredicate + ): (( + fromIndex: number + ) => (collection: $ReadOnlyArray | { [id: any]: T }) => T | void) & + (( + fromIndex: number, + collection: $ReadOnlyArray | { [id: any]: T } + ) => T | void); + findFrom( + predicate: Predicate | OPredicate, + fromIndex: number + ): (collection: Array | { [id: any]: T }) => T | void; + findFrom( + predicate: Predicate | OPredicate, + fromIndex: number, + collection: $ReadOnlyArray | { [id: any]: T } + ): T | void; + findLast( + predicate: Predicate | OPredicate + ): (collection: $ReadOnlyArray | { [id: any]: T }) => T | void; + findLast( + predicate: Predicate | OPredicate, + collection: $ReadOnlyArray | { [id: any]: T } + ): T | void; + findLastFrom( + predicate: Predicate | OPredicate + ): (( + fromIndex: number + ) => (collection: $ReadOnlyArray | { [id: any]: T }) => T | void) & + (( + fromIndex: number, + collection: $ReadOnlyArray | { [id: any]: T } + ) => T | void); + findLastFrom( + predicate: Predicate | OPredicate, + fromIndex: number + ): (collection: $ReadOnlyArray | { [id: any]: T }) => T | void; + findLastFrom( + predicate: Predicate | OPredicate, + fromIndex: number, + collection: $ReadOnlyArray | { [id: any]: T } + ): T | void; + flatMap( + iteratee: FlatMapIteratee | OFlatMapIteratee + ): (collection: Array | { [id: any]: T }) => Array; + flatMap( + iteratee: FlatMapIteratee | OFlatMapIteratee, + collection: Array | { [id: any]: T } + ): Array; + flatMapDeep( + iteratee: FlatMapIteratee | OFlatMapIteratee + ): (collection: Array | { [id: any]: T }) => Array; + flatMapDeep( + iteratee: FlatMapIteratee | OFlatMapIteratee, + collection: Array | { [id: any]: T } + ): Array; + flatMapDepth( + iteratee: FlatMapIteratee | OFlatMapIteratee + ): (( + depth: number + ) => (collection: Array | { [id: any]: T }) => Array) & + ((depth: number, collection: Array | { [id: any]: T }) => Array); + flatMapDepth( + iteratee: FlatMapIteratee | OFlatMapIteratee, + depth: number + ): (collection: Array | { [id: any]: T }) => Array; + flatMapDepth( + iteratee: FlatMapIteratee | OFlatMapIteratee, + depth: number, + collection: Array | { [id: any]: T } + ): Array; + forEach( + iteratee: Iteratee | OIteratee + ): (collection: Array | { [id: any]: T }) => Array; + forEach( + iteratee: Iteratee | OIteratee, + collection: Array | { [id: any]: T } + ): Array; + forEachRight( + iteratee: Iteratee | OIteratee + ): (collection: Array | { [id: any]: T }) => Array; + forEachRight( + iteratee: Iteratee | OIteratee, + collection: Array | { [id: any]: T } + ): Array; + groupBy( + iteratee: ValueOnlyIteratee + ): (collection: Array | { [id: any]: T }) => { [key: V]: Array }; + groupBy( + iteratee: ValueOnlyIteratee, + collection: Array | { [id: any]: T } + ): { [key: V]: Array }; + includes(value: string): (str: string) => boolean; + includes(value: string, str: string): boolean; + includes(value: T): (collection: Array | { [id: any]: T }) => boolean; + includes(value: T, collection: Array | { [id: any]: T }): boolean; + contains(value: string): (str: string) => boolean; + contains(value: string, str: string): boolean; + contains(value: T): (collection: Array | { [id: any]: T }) => boolean; + contains(value: T, collection: Array | { [id: any]: T }): boolean; + includesFrom( + value: string + ): ((fromIndex: number) => (str: string) => boolean) & + ((fromIndex: number, str: string) => boolean); + includesFrom(value: string, fromIndex: number): (str: string) => boolean; + includesFrom(value: string, fromIndex: number, str: string): boolean; + includesFrom( + value: T + ): ((fromIndex: number) => (collection: Array) => boolean) & + ((fromIndex: number, collection: Array) => boolean); + includesFrom( + value: T, + fromIndex: number + ): (collection: Array) => boolean; + includesFrom(value: T, fromIndex: number, collection: Array): boolean; + invokeMap( + path: ((value: T) => Array | string) | Array | string + ): (collection: Array | { [id: any]: T }) => Array; + invokeMap( + path: ((value: T) => Array | string) | Array | string, + collection: Array | { [id: any]: T } + ): Array; + invokeArgsMap( + path: ((value: T) => Array | string) | Array | string + ): (( + collection: Array | { [id: any]: T } + ) => (args: Array) => Array) & + (( + collection: Array | { [id: any]: T }, + args: Array + ) => Array); + invokeArgsMap( + path: ((value: T) => Array | string) | Array | string, + collection: Array | { [id: any]: T } + ): (args: Array) => Array; + invokeArgsMap( + path: ((value: T) => Array | string) | Array | string, + collection: Array | { [id: any]: T }, + args: Array + ): Array; + keyBy( + iteratee: ValueOnlyIteratee + ): (collection: Array | { [id: any]: T }) => { [key: V]: T }; + keyBy( + iteratee: ValueOnlyIteratee, + collection: Array | { [id: any]: T } + ): { [key: V]: T }; + indexBy( + iteratee: ValueOnlyIteratee + ): (collection: Array | { [id: any]: T }) => { [key: V]: T }; + indexBy( + iteratee: ValueOnlyIteratee, + collection: Array | { [id: any]: T } + ): { [key: V]: T }; + map( + iteratee: MapIterator | OMapIterator + ): (collection: Array | { [id: any]: T }) => Array; + map( + iteratee: MapIterator | OMapIterator, + collection: Array | { [id: any]: T } + ): Array; + map(iteratee: (char: string) => any): (str: string) => string; + map(iteratee: (char: string) => any, str: string): string; + pluck( + iteratee: MapIterator | OMapIterator + ): (collection: Array | { [id: any]: T }) => Array; + pluck( + iteratee: MapIterator | OMapIterator, + collection: Array | { [id: any]: T } + ): Array; + pluck(iteratee: (char: string) => any): (str: string) => string; + pluck(iteratee: (char: string) => any, str: string): string; + orderBy( + iteratees: Array | OIteratee<*>> | string + ): (( + orders: Array<"asc" | "desc"> | string + ) => (collection: Array | { [id: any]: T }) => Array) & + (( + orders: Array<"asc" | "desc"> | string, + collection: Array | { [id: any]: T } + ) => Array); + orderBy( + iteratees: Array | OIteratee<*>> | string, + orders: Array<"asc" | "desc"> | string + ): (collection: Array | { [id: any]: T }) => Array; + orderBy( + iteratees: Array | OIteratee<*>> | string, + orders: Array<"asc" | "desc"> | string, + collection: Array | { [id: any]: T } + ): Array; + partition( + predicate: Predicate | OPredicate + ): (collection: Array | { [id: any]: T }) => [Array, Array]; + partition( + predicate: Predicate | OPredicate, + collection: Array | { [id: any]: T } + ): [Array, Array]; + reduce( + iteratee: (accumulator: U, value: T) => U + ): ((accumulator: U) => (collection: Array | { [id: any]: T }) => U) & + ((accumulator: U, collection: Array | { [id: any]: T }) => U); + reduce( + iteratee: (accumulator: U, value: T) => U, + accumulator: U + ): (collection: Array | { [id: any]: T }) => U; + reduce( + iteratee: (accumulator: U, value: T) => U, + accumulator: U, + collection: Array | { [id: any]: T } + ): U; + reduceRight( + iteratee: (value: T, accumulator: U) => U + ): ((accumulator: U) => (collection: Array | { [id: any]: T }) => U) & + ((accumulator: U, collection: Array | { [id: any]: T }) => U); + reduceRight( + iteratee: (value: T, accumulator: U) => U, + accumulator: U + ): (collection: Array | { [id: any]: T }) => U; + reduceRight( + iteratee: (value: T, accumulator: U) => U, + accumulator: U, + collection: Array | { [id: any]: T } + ): U; + reject( + predicate: Predicate | OPredicate + ): (collection: Array | { [id: any]: T }) => Array; + reject( + predicate: Predicate | OPredicate, + collection: Array | { [id: any]: T } + ): Array; + sample(collection: Array | { [id: any]: T }): T; + sampleSize( + n: number + ): (collection: Array | { [id: any]: T }) => Array; + sampleSize(n: number, collection: Array | { [id: any]: T }): Array; + shuffle(collection: Array | { [id: any]: T }): Array; + size(collection: Array | Object | string): number; + some( + predicate: Predicate | OPredicate + ): (collection: Array | { [id: any]: T }) => boolean; + some( + predicate: Predicate | OPredicate, + collection: Array | { [id: any]: T } + ): boolean; + any( + predicate: Predicate | OPredicate + ): (collection: Array | { [id: any]: T }) => boolean; + any( + predicate: Predicate | OPredicate, + collection: Array | { [id: any]: T } + ): boolean; + sortBy( + iteratees: Array | OIteratee> | Iteratee | OIteratee + ): (collection: Array | { [id: any]: T }) => Array; + sortBy( + iteratees: Array | OIteratee> | Iteratee | OIteratee, + collection: Array | { [id: any]: T } + ): Array; + + // Date + now(): number; + + // Function + after(fn: Function): (n: number) => Function; + after(fn: Function, n: number): Function; + ary(func: Function): Function; + nAry(n: number): (func: Function) => Function; + nAry(n: number, func: Function): Function; + before(fn: Function): (n: number) => Function; + before(fn: Function, n: number): Function; + bind(func: Function): (thisArg: any) => Function; + bind(func: Function, thisArg: any): Function; + bindKey(obj: Object): (key: string) => Function; + bindKey(obj: Object, key: string): Function; + curry: Curry; + curryN(arity: number): (func: Function) => Function; + curryN(arity: number, func: Function): Function; + curryRight(func: Function): Function; + curryRightN(arity: number): (func: Function) => Function; + curryRightN(arity: number, func: Function): Function; + debounce(wait: number): (func: F) => F; + debounce(wait: number, func: F): F; + defer(func: Function): TimeoutID; + delay(wait: number): (func: Function) => TimeoutID; + delay(wait: number, func: Function): TimeoutID; + flip(func: Function): Function; + memoize(func: F): F; + negate(predicate: Function): Function; + complement(predicate: Function): Function; + once(func: Function): Function; + overArgs(func: Function): (transforms: Array) => Function; + overArgs(func: Function, transforms: Array): Function; + useWith(func: Function): (transforms: Array) => Function; + useWith(func: Function, transforms: Array): Function; + partial(func: Function): (partials: any[]) => Function; + partial(func: Function, partials: any[]): Function; + partialRight(func: Function): (partials: Array) => Function; + partialRight(func: Function, partials: Array): Function; + rearg(indexes: Array): (func: Function) => Function; + rearg(indexes: Array, func: Function): Function; + rest(func: Function): Function; + unapply(func: Function): Function; + restFrom(start: number): (func: Function) => Function; + restFrom(start: number, func: Function): Function; + spread(func: Function): Function; + apply(func: Function): Function; + spreadFrom(start: number): (func: Function) => Function; + spreadFrom(start: number, func: Function): Function; + throttle(wait: number): (func: Function) => Function; + throttle(wait: number, func: Function): Function; + unary(func: Function): Function; + wrap(wrapper: Function): (value: any) => Function; + wrap(wrapper: Function, value: any): Function; + + // Lang + castArray(value: *): any[]; + clone(value: T): T; + cloneDeep(value: T): T; + cloneDeepWith( + customizer: (value: T, key: number | string, object: T, stack: any) => U + ): (value: T) => U; + cloneDeepWith( + customizer: (value: T, key: number | string, object: T, stack: any) => U, + value: T + ): U; + cloneWith( + customizer: (value: T, key: number | string, object: T, stack: any) => U + ): (value: T) => U; + cloneWith( + customizer: (value: T, key: number | string, object: T, stack: any) => U, + value: T + ): U; + conformsTo( + predicates: T & { [key: string]: (x: any) => boolean } + ): (source: T) => boolean; + conformsTo( + predicates: T & { [key: string]: (x: any) => boolean }, + source: T + ): boolean; + where( + predicates: T & { [key: string]: (x: any) => boolean } + ): (source: T) => boolean; + where( + predicates: T & { [key: string]: (x: any) => boolean }, + source: T + ): boolean; + conforms( + predicates: T & { [key: string]: (x: any) => boolean } + ): (source: T) => boolean; + conforms( + predicates: T & { [key: string]: (x: any) => boolean }, + source: T + ): boolean; + eq(value: any): (other: any) => boolean; + eq(value: any, other: any): boolean; + identical(value: any): (other: any) => boolean; + identical(value: any, other: any): boolean; + gt(value: any): (other: any) => boolean; + gt(value: any, other: any): boolean; + gte(value: any): (other: any) => boolean; + gte(value: any, other: any): boolean; + isArguments(value: any): boolean; + isArray(value: any): boolean; + isArrayBuffer(value: any): boolean; + isArrayLike(value: any): boolean; + isArrayLikeObject(value: any): boolean; + isBoolean(value: any): boolean; + isBuffer(value: any): boolean; + isDate(value: any): boolean; + isElement(value: any): boolean; + isEmpty(value: any): boolean; + isEqual(value: any): (other: any) => boolean; + isEqual(value: any, other: any): boolean; + equals(value: any): (other: any) => boolean; + equals(value: any, other: any): boolean; + isEqualWith( + customizer: ( + objValue: any, + otherValue: any, + key: number | string, + object: T, + other: U, + stack: any + ) => boolean | void + ): ((value: T) => (other: U) => boolean) & + ((value: T, other: U) => boolean); + isEqualWith( + customizer: ( + objValue: any, + otherValue: any, + key: number | string, + object: T, + other: U, + stack: any + ) => boolean | void, + value: T + ): (other: U) => boolean; + isEqualWith( + customizer: ( + objValue: any, + otherValue: any, + key: number | string, + object: T, + other: U, + stack: any + ) => boolean | void, + value: T, + other: U + ): boolean; + isError(value: any): boolean; + isFinite(value: any): boolean; + isFunction(value: Function): true; + isFunction(value: number | string | void | null | Object): false; + isInteger(value: any): boolean; + isLength(value: any): boolean; + isMap(value: any): boolean; + isMatch(source: Object): (object: Object) => boolean; + isMatch(source: Object, object: Object): boolean; + whereEq(source: Object): (object: Object) => boolean; + whereEq(source: Object, object: Object): boolean; + isMatchWith( + customizer: ( + objValue: any, + srcValue: any, + key: number | string, + object: T, + source: U + ) => boolean | void + ): ((source: U) => (object: T) => boolean) & + ((source: U, object: T) => boolean); + isMatchWith( + customizer: ( + objValue: any, + srcValue: any, + key: number | string, + object: T, + source: U + ) => boolean | void, + source: U + ): (object: T) => boolean; + isMatchWith( + customizer: ( + objValue: any, + srcValue: any, + key: number | string, + object: T, + source: U + ) => boolean | void, + source: U, + object: T + ): boolean; + isNaN(value: any): boolean; + isNative(value: any): boolean; + isNil(value: any): boolean; + isNull(value: any): boolean; + isNumber(value: any): boolean; + isObject(value: any): boolean; + isObjectLike(value: any): boolean; + isPlainObject(value: any): boolean; + isRegExp(value: any): boolean; + isSafeInteger(value: any): boolean; + isSet(value: any): boolean; + isString(value: string): true; + isString( + value: number | boolean | Function | void | null | Object | Array + ): false; + isSymbol(value: any): boolean; + isTypedArray(value: any): boolean; + isUndefined(value: any): boolean; + isWeakMap(value: any): boolean; + isWeakSet(value: any): boolean; + lt(value: any): (other: any) => boolean; + lt(value: any, other: any): boolean; + lte(value: any): (other: any) => boolean; + lte(value: any, other: any): boolean; + toArray(value: any): Array; + toFinite(value: any): number; + toInteger(value: any): number; + toLength(value: any): number; + toNumber(value: any): number; + toPlainObject(value: any): Object; + toSafeInteger(value: any): number; + toString(value: any): string; + + // Math + add(augend: number): (addend: number) => number; + add(augend: number, addend: number): number; + ceil(number: number): number; + divide(dividend: number): (divisor: number) => number; + divide(dividend: number, divisor: number): number; + floor(number: number): number; + max(array: Array): T; + maxBy(iteratee: Iteratee): (array: Array) => T; + maxBy(iteratee: Iteratee, array: Array): T; + mean(array: Array<*>): number; + meanBy(iteratee: Iteratee): (array: Array) => number; + meanBy(iteratee: Iteratee, array: Array): number; + min(array: Array): T; + minBy(iteratee: Iteratee): (array: Array) => T; + minBy(iteratee: Iteratee, array: Array): T; + multiply(multiplier: number): (multiplicand: number) => number; + multiply(multiplier: number, multiplicand: number): number; + round(number: number): number; + subtract(minuend: number): (subtrahend: number) => number; + subtract(minuend: number, subtrahend: number): number; + sum(array: Array<*>): number; + sumBy(iteratee: Iteratee): (array: Array) => number; + sumBy(iteratee: Iteratee, array: Array): number; + + // number + clamp( + lower: number + ): ((upper: number) => (number: number) => number) & + ((upper: number, number: number) => number); + clamp(lower: number, upper: number): (number: number) => number; + clamp(lower: number, upper: number, number: number): number; + inRange( + start: number + ): ((end: number) => (number: number) => boolean) & + ((end: number, number: number) => boolean); + inRange(start: number, end: number): (number: number) => boolean; + inRange(start: number, end: number, number: number): boolean; + random(lower: number): (upper: number) => number; + random(lower: number, upper: number): number; + + // Object + assign(object: Object): (source: Object) => Object; + assign(object: Object, source: Object): Object; + assignAll(objects: Array): Object; + assignInAll(objects: Array): Object; + extendAll(objects: Array): Object; + assignIn(a: A): (b: B) => A & B; + assignIn(a: A, b: B): A & B; + assignInWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void + ): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object); + assignInWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void, + object: T + ): (s1: A) => Object; + assignInWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void, + object: T, + s1: A + ): Object; + assignWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void + ): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object); + assignWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void, + object: T + ): (s1: A) => Object; + assignWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void, + object: T, + s1: A + ): Object; + assignInAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object + ) => any | void + ): (objects: Array) => Object; + assignInAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object + ) => any | void, + objects: Array + ): Object; + extendAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object + ) => any | void + ): (objects: Array) => Object; + extendAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object + ) => any | void, + objects: Array + ): Object; + assignAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object + ) => any | void + ): (objects: Array) => Object; + assignAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object + ) => any | void, + objects: Array + ): Object; + at(paths: Array): (object: Object) => Array; + at(paths: Array, object: Object): Array; + props(paths: Array): (object: Object) => Array; + props(paths: Array, object: Object): Array; + paths(paths: Array): (object: Object) => Array; + paths(paths: Array, object: Object): Array; + create(prototype: T): $Supertype; + defaults(source: Object): (object: Object) => Object; + defaults(source: Object, object: Object): Object; + defaultsAll(objects: Array): Object; + defaultsDeep(source: Object): (object: Object) => Object; + defaultsDeep(source: Object, object: Object): Object; + defaultsDeepAll(objects: Array): Object; + // alias for _.toPairs + entries(object: Object): Array<[string, any]>; + // alias for _.toPairsIn + entriesIn(object: Object): Array<[string, any]>; + // alias for _.assignIn + extend(a: A): (b: B) => A & B; + extend(a: A, b: B): A & B; + // alias for _.assignInWith + extendWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void + ): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object); + extendWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void, + object: T + ): (s1: A) => Object; + extendWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A + ) => any | void, + object: T, + s1: A + ): Object; + findKey( + predicate: OPredicate + ): (object: T) => string | void; + findKey( + predicate: OPredicate, + object: T + ): string | void; + findLastKey( + predicate: OPredicate + ): (object: T) => string | void; + findLastKey( + predicate: OPredicate, + object: T + ): string | void; + forIn(iteratee: OIteratee<*>): (object: Object) => Object; + forIn(iteratee: OIteratee<*>, object: Object): Object; + forInRight(iteratee: OIteratee<*>): (object: Object) => Object; + forInRight(iteratee: OIteratee<*>, object: Object): Object; + forOwn(iteratee: OIteratee<*>): (object: Object) => Object; + forOwn(iteratee: OIteratee<*>, object: Object): Object; + forOwnRight(iteratee: OIteratee<*>): (object: Object) => Object; + forOwnRight(iteratee: OIteratee<*>, object: Object): Object; + functions(object: Object): Array; + functionsIn(object: Object): Array; + get(path: Array | string): (object: Object | Array) => any; + get(path: Array | string, object: Object | Array): any; + prop(path: Array | string): (object: Object | Array) => any; + prop(path: Array | string, object: Object | Array): any; + path(path: Array | string): (object: Object | Array) => any; + path(path: Array | string, object: Object | Array): any; + getOr( + defaultValue: any + ): (( + path: Array | string + ) => (object: Object | Array) => any) & + ((path: Array | string, object: Object | Array) => any); + getOr( + defaultValue: any, + path: Array | string + ): (object: Object | Array) => any; + getOr( + defaultValue: any, + path: Array | string, + object: Object | Array + ): any; + propOr( + defaultValue: any + ): (( + path: Array | string + ) => (object: Object | Array) => any) & + ((path: Array | string, object: Object | Array) => any); + propOr( + defaultValue: any, + path: Array | string + ): (object: Object | Array) => any; + propOr( + defaultValue: any, + path: Array | string, + object: Object | Array + ): any; + pathOr( + defaultValue: any + ): (( + path: Array | string + ) => (object: Object | Array) => any) & + ((path: Array | string, object: Object | Array) => any); + pathOr( + defaultValue: any, + path: Array | string + ): (object: Object | Array) => any; + pathOr( + defaultValue: any, + path: Array | string, + object: Object | Array + ): any; + has(path: Array | string): (object: Object) => boolean; + has(path: Array | string, object: Object): boolean; + hasIn(path: Array | string): (object: Object) => boolean; + hasIn(path: Array | string, object: Object): boolean; + invert(object: Object): Object; + invertObj(object: Object): Object; + invertBy(iteratee: Function): (object: Object) => Object; + invertBy(iteratee: Function, object: Object): Object; + invoke(path: Array | string): (object: Object) => any; + invoke(path: Array | string, object: Object): any; + invokeArgs( + path: Array | string + ): ((object: Object) => (args: Array) => any) & + ((object: Object, args: Array) => any); + invokeArgs( + path: Array | string, + object: Object + ): (args: Array) => any; + invokeArgs( + path: Array | string, + object: Object, + args: Array + ): any; + keys(object: { [key: K]: any }): Array; + keys(object: Object): Array; + keysIn(object: Object): Array; + mapKeys(iteratee: OIteratee<*>): (object: Object) => Object; + mapKeys(iteratee: OIteratee<*>, object: Object): Object; + mapValues(iteratee: OIteratee<*>): (object: Object) => Object; + mapValues(iteratee: OIteratee<*>, object: Object): Object; + merge(object: Object): (source: Object) => Object; + merge(object: Object, source: Object): Object; + mergeAll(objects: Array): Object; + mergeWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B + ) => any | void + ): ((object: T) => (s1: A) => Object) & ((object: T, s1: A) => Object); + mergeWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B + ) => any | void, + object: T + ): (s1: A) => Object; + mergeWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: T, + source: A | B + ) => any | void, + object: T, + s1: A + ): Object; + mergeAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object + ) => any | void + ): (objects: Array) => Object; + mergeAllWith( + customizer: ( + objValue: any, + srcValue: any, + key: string, + object: Object, + source: Object + ) => any | void, + objects: Array + ): Object; + omit(props: Array): (object: Object) => Object; + omit(props: Array, object: Object): Object; + omitAll(props: Array): (object: Object) => Object; + omitAll(props: Array, object: Object): Object; + omitBy( + predicate: OPredicate + ): (object: T) => Object; + omitBy(predicate: OPredicate, object: T): Object; + pick(props: Array): (object: Object) => Object; + pick(props: Array, object: Object): Object; + pickAll(props: Array): (object: Object) => Object; + pickAll(props: Array, object: Object): Object; + pickBy( + predicate: OPredicate + ): (object: T) => Object; + pickBy(predicate: OPredicate, object: T): Object; + result(path: Array | string): (object: Object) => any; + result(path: Array | string, object: Object): any; + set( + path: Array | string + ): ((value: any) => (object: Object) => Object) & + ((value: any, object: Object) => Object); + set(path: Array | string, value: any): (object: Object) => Object; + set(path: Array | string, value: any, object: Object): Object; + assoc( + path: Array | string + ): ((value: any) => (object: Object) => Object) & + ((value: any, object: Object) => Object); + assoc(path: Array | string, value: any): (object: Object) => Object; + assoc(path: Array | string, value: any, object: Object): Object; + assocPath( + path: Array | string + ): ((value: any) => (object: Object) => Object) & + ((value: any, object: Object) => Object); + assocPath( + path: Array | string, + value: any + ): (object: Object) => Object; + assocPath(path: Array | string, value: any, object: Object): Object; + setWith( + customizer: (nsValue: any, key: string, nsObject: T) => any + ): (( + path: Array | string + ) => ((value: any) => (object: T) => Object) & + ((value: any, object: T) => Object)) & + ((path: Array | string, value: any) => (object: T) => Object) & + ((path: Array | string, value: any, object: T) => Object); + setWith( + customizer: (nsValue: any, key: string, nsObject: T) => any, + path: Array | string + ): ((value: any) => (object: T) => Object) & + ((value: any, object: T) => Object); + setWith( + customizer: (nsValue: any, key: string, nsObject: T) => any, + path: Array | string, + value: any + ): (object: T) => Object; + setWith( + customizer: (nsValue: any, key: string, nsObject: T) => any, + path: Array | string, + value: any, + object: T + ): Object; + toPairs(object: Object | Array<*>): Array<[string, any]>; + toPairsIn(object: Object): Array<[string, any]>; + transform( + iteratee: OIteratee<*> + ): ((accumulator: any) => (collection: Object | Array) => any) & + ((accumulator: any, collection: Object | Array) => any); + transform( + iteratee: OIteratee<*>, + accumulator: any + ): (collection: Object | Array) => any; + transform( + iteratee: OIteratee<*>, + accumulator: any, + collection: Object | Array + ): any; + unset(path: Array | string): (object: Object) => boolean; + unset(path: Array | string, object: Object): boolean; + dissoc(path: Array | string): (object: Object) => boolean; + dissoc(path: Array | string, object: Object): boolean; + dissocPath(path: Array | string): (object: Object) => boolean; + dissocPath(path: Array | string, object: Object): boolean; + update( + path: string[] | string + ): ((updater: Function) => (object: Object) => Object) & + ((updater: Function, object: Object) => Object); + update( + path: string[] | string, + updater: Function + ): (object: Object) => Object; + update(path: string[] | string, updater: Function, object: Object): Object; + updateWith( + customizer: Function + ): (( + path: string[] | string + ) => ((updater: Function) => (object: Object) => Object) & + ((updater: Function, object: Object) => Object)) & + (( + path: string[] | string, + updater: Function + ) => (object: Object) => Object) & + ((path: string[] | string, updater: Function, object: Object) => Object); + updateWith( + customizer: Function, + path: string[] | string + ): ((updater: Function) => (object: Object) => Object) & + ((updater: Function, object: Object) => Object); + updateWith( + customizer: Function, + path: string[] | string, + updater: Function + ): (object: Object) => Object; + updateWith( + customizer: Function, + path: string[] | string, + updater: Function, + object: Object + ): Object; + values(object: Object): Array; + valuesIn(object: Object): Array; + + tap(interceptor: (value: T) => any): (value: T) => T; + tap(interceptor: (value: T) => any, value: T): T; + thru(interceptor: (value: T1) => T2): (value: T1) => T2; + thru(interceptor: (value: T1) => T2, value: T1): T2; + + // String + camelCase(string: string): string; + capitalize(string: string): string; + deburr(string: string): string; + endsWith(target: string): (string: string) => boolean; + endsWith(target: string, string: string): boolean; + escape(string: string): string; + escapeRegExp(string: string): string; + kebabCase(string: string): string; + lowerCase(string: string): string; + lowerFirst(string: string): string; + pad(length: number): (string: string) => string; + pad(length: number, string: string): string; + padChars( + chars: string + ): ((length: number) => (string: string) => string) & + ((length: number, string: string) => string); + padChars(chars: string, length: number): (string: string) => string; + padChars(chars: string, length: number, string: string): string; + padEnd(length: number): (string: string) => string; + padEnd(length: number, string: string): string; + padCharsEnd( + chars: string + ): ((length: number) => (string: string) => string) & + ((length: number, string: string) => string); + padCharsEnd(chars: string, length: number): (string: string) => string; + padCharsEnd(chars: string, length: number, string: string): string; + padStart(length: number): (string: string) => string; + padStart(length: number, string: string): string; + padCharsStart( + chars: string + ): ((length: number) => (string: string) => string) & + ((length: number, string: string) => string); + padCharsStart(chars: string, length: number): (string: string) => string; + padCharsStart(chars: string, length: number, string: string): string; + parseInt(radix: number): (string: string) => number; + parseInt(radix: number, string: string): number; + repeat(n: number): (string: string) => string; + repeat(n: number, string: string): string; + replace( + pattern: RegExp | string + ): (( + replacement: ((string: string) => string) | string + ) => (string: string) => string) & + (( + replacement: ((string: string) => string) | string, + string: string + ) => string); + replace( + pattern: RegExp | string, + replacement: ((string: string) => string) | string + ): (string: string) => string; + replace( + pattern: RegExp | string, + replacement: ((string: string) => string) | string, + string: string + ): string; + snakeCase(string: string): string; + split(separator: RegExp | string): (string: string) => Array; + split(separator: RegExp | string, string: string): Array; + startCase(string: string): string; + startsWith(target: string): (string: string) => boolean; + startsWith(target: string, string: string): boolean; + template(string: string): Function; + toLower(string: string): string; + toUpper(string: string): string; + trim(string: string): string; + trimChars(chars: string): (string: string) => string; + trimChars(chars: string, string: string): string; + trimEnd(string: string): string; + trimCharsEnd(chars: string): (string: string) => string; + trimCharsEnd(chars: string, string: string): string; + trimStart(string: string): string; + trimCharsStart(chars: string): (string: string) => string; + trimCharsStart(chars: string, string: string): string; + truncate(options: TruncateOptions): (string: string) => string; + truncate(options: TruncateOptions, string: string): string; + unescape(string: string): string; + upperCase(string: string): string; + upperFirst(string: string): string; + words(string: string): Array; + + // Util + attempt(func: Function): any; + bindAll(methodNames: Array): (object: Object) => Object; + bindAll(methodNames: Array, object: Object): Object; + cond(pairs: NestedArray): Function; + constant(value: T): () => T; + always(value: T): () => T; + defaultTo( + defaultValue: T2 + ): (value: T1) => T1; + defaultTo( + defaultValue: T2, + value: T1 + ): T1; + // NaN is a number instead of its own type, otherwise it would behave like null/void + defaultTo(defaultValue: T2): (value: T1) => T1 | T2; + defaultTo(defaultValue: T2, value: T1): T1 | T2; + defaultTo(defaultValue: T2): (value: T1) => T2; + defaultTo(defaultValue: T2, value: T1): T2; + flow: $ComposeReverse; + flow(funcs: Array): Function; + pipe: $ComposeReverse; + pipe(funcs: Array): Function; + flowRight: $Compose; + flowRight(funcs: Array): Function; + compose: $Compose; + compose(funcs: Array): Function; + identity(value: T): T; + iteratee(func: any): Function; + matches(source: Object): (object: Object) => boolean; + matches(source: Object, object: Object): boolean; + matchesProperty(path: Array | string): (srcValue: any) => Function; + matchesProperty(path: Array | string, srcValue: any): Function; + propEq(path: Array | string): (srcValue: any) => Function; + propEq(path: Array | string, srcValue: any): Function; + pathEq(path: Array | string): (srcValue: any) => Function; + pathEq(path: Array | string, srcValue: any): Function; + method(path: Array | string): Function; + methodOf(object: Object): Function; + mixin( + object: T + ): ((source: Object) => (options: { chain: boolean }) => T) & + ((source: Object, options: { chain: boolean }) => T); + mixin( + object: T, + source: Object + ): (options: { chain: boolean }) => T; + mixin( + object: T, + source: Object, + options: { chain: boolean } + ): T; + noConflict(): Lodash; + noop(...args: Array): void; + nthArg(n: number): Function; + over(iteratees: Array): Function; + juxt(iteratees: Array): Function; + overEvery(predicates: Array): Function; + allPass(predicates: Array): Function; + overSome(predicates: Array): Function; + anyPass(predicates: Array): Function; + property( + path: Array | string + ): (object: Object | Array) => any; + property(path: Array | string, object: Object | Array): any; + propertyOf(object: Object): (path: Array | string) => Function; + propertyOf(object: Object, path: Array | string): Function; + range(start: number): (end: number) => Array; + range(start: number, end: number): Array; + rangeStep( + step: number + ): ((start: number) => (end: number) => Array) & + ((start: number, end: number) => Array); + rangeStep(step: number, start: number): (end: number) => Array; + rangeStep(step: number, start: number, end: number): Array; + rangeRight(start: number): (end: number) => Array; + rangeRight(start: number, end: number): Array; + rangeStepRight( + step: number + ): ((start: number) => (end: number) => Array) & + ((start: number, end: number) => Array); + rangeStepRight(step: number, start: number): (end: number) => Array; + rangeStepRight(step: number, start: number, end: number): Array; + runInContext(context: Object): Function; stubArray(): Array<*>; stubFalse(): false; + F(): false; stubObject(): {}; - stubString(): ''; + stubString(): ""; stubTrue(): true; - times(n: number, ...rest: Array): Array; - times(n: number, iteratee: ((i: number) => T)): Array; + T(): true; + times(iteratee: (i: number) => T): (n: number) => Array; + times(iteratee: (i: number) => T, n: number): Array; toPath(value: any): Array; - uniqueId(prefix?: string): string; + uniqueId(prefix: string): string; + + __: any; + placeholder: any; + + convert(options: { + cap?: boolean, + curry?: boolean, + fixed?: boolean, + immutable?: boolean, + rearg?: boolean + }): void; // Properties VERSION: string; templateSettings: TemplateSettings; } - declare var exports: Lodash; + declare module.exports: Lodash; +} + +declare module "lodash/chunk" { + declare module.exports: $PropertyType<$Exports<"lodash">, "chunk">; +} + +declare module "lodash/compact" { + declare module.exports: $PropertyType<$Exports<"lodash">, "compact">; +} + +declare module "lodash/concat" { + declare module.exports: $PropertyType<$Exports<"lodash">, "concat">; +} + +declare module "lodash/difference" { + declare module.exports: $PropertyType<$Exports<"lodash">, "difference">; +} + +declare module "lodash/differenceBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "differenceBy">; +} + +declare module "lodash/differenceWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "differenceWith">; +} + +declare module "lodash/drop" { + declare module.exports: $PropertyType<$Exports<"lodash">, "drop">; +} + +declare module "lodash/dropRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "dropRight">; +} + +declare module "lodash/dropRightWhile" { + declare module.exports: $PropertyType<$Exports<"lodash">, "dropRightWhile">; +} + +declare module "lodash/dropWhile" { + declare module.exports: $PropertyType<$Exports<"lodash">, "dropWhile">; +} + +declare module "lodash/fill" { + declare module.exports: $PropertyType<$Exports<"lodash">, "fill">; +} + +declare module "lodash/findIndex" { + declare module.exports: $PropertyType<$Exports<"lodash">, "findIndex">; +} + +declare module "lodash/findLastIndex" { + declare module.exports: $PropertyType<$Exports<"lodash">, "findLastIndex">; +} + +declare module "lodash/first" { + declare module.exports: $PropertyType<$Exports<"lodash">, "first">; +} + +declare module "lodash/flatten" { + declare module.exports: $PropertyType<$Exports<"lodash">, "flatten">; +} + +declare module "lodash/flattenDeep" { + declare module.exports: $PropertyType<$Exports<"lodash">, "flattenDeep">; +} + +declare module "lodash/flattenDepth" { + declare module.exports: $PropertyType<$Exports<"lodash">, "flattenDepth">; +} + +declare module "lodash/fromPairs" { + declare module.exports: $PropertyType<$Exports<"lodash">, "fromPairs">; +} + +declare module "lodash/head" { + declare module.exports: $PropertyType<$Exports<"lodash">, "head">; +} + +declare module "lodash/indexOf" { + declare module.exports: $PropertyType<$Exports<"lodash">, "indexOf">; +} + +declare module "lodash/initial" { + declare module.exports: $PropertyType<$Exports<"lodash">, "initial">; +} + +declare module "lodash/intersection" { + declare module.exports: $PropertyType<$Exports<"lodash">, "intersection">; +} + +declare module "lodash/intersectionBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "intersectionBy">; +} + +declare module "lodash/intersectionWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "intersectionWith">; +} + +declare module "lodash/join" { + declare module.exports: $PropertyType<$Exports<"lodash">, "join">; +} + +declare module "lodash/last" { + declare module.exports: $PropertyType<$Exports<"lodash">, "last">; +} + +declare module "lodash/lastIndexOf" { + declare module.exports: $PropertyType<$Exports<"lodash">, "lastIndexOf">; +} + +declare module "lodash/nth" { + declare module.exports: $PropertyType<$Exports<"lodash">, "nth">; +} + +declare module "lodash/pull" { + declare module.exports: $PropertyType<$Exports<"lodash">, "pull">; +} + +declare module "lodash/pullAll" { + declare module.exports: $PropertyType<$Exports<"lodash">, "pullAll">; +} + +declare module "lodash/pullAllBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "pullAllBy">; +} + +declare module "lodash/pullAllWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "pullAllWith">; +} + +declare module "lodash/pullAt" { + declare module.exports: $PropertyType<$Exports<"lodash">, "pullAt">; +} + +declare module "lodash/remove" { + declare module.exports: $PropertyType<$Exports<"lodash">, "remove">; +} + +declare module "lodash/reverse" { + declare module.exports: $PropertyType<$Exports<"lodash">, "reverse">; +} + +declare module "lodash/slice" { + declare module.exports: $PropertyType<$Exports<"lodash">, "slice">; +} + +declare module "lodash/sortedIndex" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sortedIndex">; +} + +declare module "lodash/sortedIndexBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sortedIndexBy">; +} + +declare module "lodash/sortedIndexOf" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sortedIndexOf">; +} + +declare module "lodash/sortedLastIndex" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sortedLastIndex">; +} + +declare module "lodash/sortedLastIndexBy" { + declare module.exports: $PropertyType< + $Exports<"lodash">, + "sortedLastIndexBy" + >; +} + +declare module "lodash/sortedLastIndexOf" { + declare module.exports: $PropertyType< + $Exports<"lodash">, + "sortedLastIndexOf" + >; +} + +declare module "lodash/sortedUniq" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sortedUniq">; +} + +declare module "lodash/sortedUniqBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sortedUniqBy">; +} + +declare module "lodash/tail" { + declare module.exports: $PropertyType<$Exports<"lodash">, "tail">; +} + +declare module "lodash/take" { + declare module.exports: $PropertyType<$Exports<"lodash">, "take">; +} + +declare module "lodash/takeRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "takeRight">; +} + +declare module "lodash/takeRightWhile" { + declare module.exports: $PropertyType<$Exports<"lodash">, "takeRightWhile">; +} + +declare module "lodash/takeWhile" { + declare module.exports: $PropertyType<$Exports<"lodash">, "takeWhile">; +} + +declare module "lodash/union" { + declare module.exports: $PropertyType<$Exports<"lodash">, "union">; +} + +declare module "lodash/unionBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "unionBy">; +} + +declare module "lodash/unionWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "unionWith">; +} + +declare module "lodash/uniq" { + declare module.exports: $PropertyType<$Exports<"lodash">, "uniq">; +} + +declare module "lodash/uniqBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "uniqBy">; +} + +declare module "lodash/uniqWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "uniqWith">; +} + +declare module "lodash/unzip" { + declare module.exports: $PropertyType<$Exports<"lodash">, "unzip">; +} + +declare module "lodash/unzipWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "unzipWith">; +} + +declare module "lodash/without" { + declare module.exports: $PropertyType<$Exports<"lodash">, "without">; +} + +declare module "lodash/xor" { + declare module.exports: $PropertyType<$Exports<"lodash">, "xor">; +} + +declare module "lodash/xorBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "xorBy">; +} + +declare module "lodash/xorWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "xorWith">; +} + +declare module "lodash/zip" { + declare module.exports: $PropertyType<$Exports<"lodash">, "zip">; +} + +declare module "lodash/zipObject" { + declare module.exports: $PropertyType<$Exports<"lodash">, "zipObject">; +} + +declare module "lodash/zipObjectDeep" { + declare module.exports: $PropertyType<$Exports<"lodash">, "zipObjectDeep">; +} + +declare module "lodash/zipWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "zipWith">; +} + +declare module "lodash/countBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "countBy">; +} + +declare module "lodash/each" { + declare module.exports: $PropertyType<$Exports<"lodash">, "each">; +} + +declare module "lodash/eachRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "eachRight">; +} + +declare module "lodash/every" { + declare module.exports: $PropertyType<$Exports<"lodash">, "every">; +} + +declare module "lodash/filter" { + declare module.exports: $PropertyType<$Exports<"lodash">, "filter">; +} + +declare module "lodash/find" { + declare module.exports: $PropertyType<$Exports<"lodash">, "find">; +} + +declare module "lodash/findLast" { + declare module.exports: $PropertyType<$Exports<"lodash">, "findLast">; +} + +declare module "lodash/flatMap" { + declare module.exports: $PropertyType<$Exports<"lodash">, "flatMap">; +} + +declare module "lodash/flatMapDeep" { + declare module.exports: $PropertyType<$Exports<"lodash">, "flatMapDeep">; +} + +declare module "lodash/flatMapDepth" { + declare module.exports: $PropertyType<$Exports<"lodash">, "flatMapDepth">; +} + +declare module "lodash/forEach" { + declare module.exports: $PropertyType<$Exports<"lodash">, "forEach">; +} + +declare module "lodash/forEachRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "forEachRight">; +} + +declare module "lodash/groupBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "groupBy">; +} + +declare module "lodash/includes" { + declare module.exports: $PropertyType<$Exports<"lodash">, "includes">; +} + +declare module "lodash/invokeMap" { + declare module.exports: $PropertyType<$Exports<"lodash">, "invokeMap">; +} + +declare module "lodash/keyBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "keyBy">; +} + +declare module "lodash/map" { + declare module.exports: $PropertyType<$Exports<"lodash">, "map">; +} + +declare module "lodash/orderBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "orderBy">; +} + +declare module "lodash/partition" { + declare module.exports: $PropertyType<$Exports<"lodash">, "partition">; +} + +declare module "lodash/reduce" { + declare module.exports: $PropertyType<$Exports<"lodash">, "reduce">; +} + +declare module "lodash/reduceRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "reduceRight">; +} + +declare module "lodash/reject" { + declare module.exports: $PropertyType<$Exports<"lodash">, "reject">; +} + +declare module "lodash/sample" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sample">; +} + +declare module "lodash/sampleSize" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sampleSize">; +} + +declare module "lodash/shuffle" { + declare module.exports: $PropertyType<$Exports<"lodash">, "shuffle">; +} + +declare module "lodash/size" { + declare module.exports: $PropertyType<$Exports<"lodash">, "size">; +} + +declare module "lodash/some" { + declare module.exports: $PropertyType<$Exports<"lodash">, "some">; +} + +declare module "lodash/sortBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sortBy">; +} + +declare module "lodash/now" { + declare module.exports: $PropertyType<$Exports<"lodash">, "now">; +} + +declare module "lodash/after" { + declare module.exports: $PropertyType<$Exports<"lodash">, "after">; +} + +declare module "lodash/ary" { + declare module.exports: $PropertyType<$Exports<"lodash">, "ary">; +} + +declare module "lodash/before" { + declare module.exports: $PropertyType<$Exports<"lodash">, "before">; +} + +declare module "lodash/bind" { + declare module.exports: $PropertyType<$Exports<"lodash">, "bind">; +} + +declare module "lodash/bindKey" { + declare module.exports: $PropertyType<$Exports<"lodash">, "bindKey">; +} + +declare module "lodash/curry" { + declare module.exports: $PropertyType<$Exports<"lodash">, "curry">; +} + +declare module "lodash/curryRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "curryRight">; +} + +declare module "lodash/debounce" { + declare module.exports: $PropertyType<$Exports<"lodash">, "debounce">; +} + +declare module "lodash/defer" { + declare module.exports: $PropertyType<$Exports<"lodash">, "defer">; +} + +declare module "lodash/delay" { + declare module.exports: $PropertyType<$Exports<"lodash">, "delay">; +} + +declare module "lodash/flip" { + declare module.exports: $PropertyType<$Exports<"lodash">, "flip">; +} + +declare module "lodash/memoize" { + declare module.exports: $PropertyType<$Exports<"lodash">, "memoize">; +} + +declare module "lodash/negate" { + declare module.exports: $PropertyType<$Exports<"lodash">, "negate">; +} + +declare module "lodash/once" { + declare module.exports: $PropertyType<$Exports<"lodash">, "once">; +} + +declare module "lodash/overArgs" { + declare module.exports: $PropertyType<$Exports<"lodash">, "overArgs">; +} + +declare module "lodash/partial" { + declare module.exports: $PropertyType<$Exports<"lodash">, "partial">; +} + +declare module "lodash/partialRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "partialRight">; +} + +declare module "lodash/rearg" { + declare module.exports: $PropertyType<$Exports<"lodash">, "rearg">; +} + +declare module "lodash/rest" { + declare module.exports: $PropertyType<$Exports<"lodash">, "rest">; +} + +declare module "lodash/spread" { + declare module.exports: $PropertyType<$Exports<"lodash">, "spread">; +} + +declare module "lodash/throttle" { + declare module.exports: $PropertyType<$Exports<"lodash">, "throttle">; +} + +declare module "lodash/unary" { + declare module.exports: $PropertyType<$Exports<"lodash">, "unary">; +} + +declare module "lodash/wrap" { + declare module.exports: $PropertyType<$Exports<"lodash">, "wrap">; +} + +declare module "lodash/castArray" { + declare module.exports: $PropertyType<$Exports<"lodash">, "castArray">; +} + +declare module "lodash/clone" { + declare module.exports: $PropertyType<$Exports<"lodash">, "clone">; +} + +declare module "lodash/cloneDeep" { + declare module.exports: $PropertyType<$Exports<"lodash">, "cloneDeep">; +} + +declare module "lodash/cloneDeepWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "cloneDeepWith">; +} + +declare module "lodash/cloneWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "cloneWith">; +} + +declare module "lodash/conformsTo" { + declare module.exports: $PropertyType<$Exports<"lodash">, "conformsTo">; +} + +declare module "lodash/eq" { + declare module.exports: $PropertyType<$Exports<"lodash">, "eq">; +} + +declare module "lodash/gt" { + declare module.exports: $PropertyType<$Exports<"lodash">, "gt">; +} + +declare module "lodash/gte" { + declare module.exports: $PropertyType<$Exports<"lodash">, "gte">; +} + +declare module "lodash/isArguments" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isArguments">; +} + +declare module "lodash/isArray" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isArray">; +} + +declare module "lodash/isArrayBuffer" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isArrayBuffer">; +} + +declare module "lodash/isArrayLike" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isArrayLike">; +} + +declare module "lodash/isArrayLikeObject" { + declare module.exports: $PropertyType< + $Exports<"lodash">, + "isArrayLikeObject" + >; +} + +declare module "lodash/isBoolean" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isBoolean">; +} + +declare module "lodash/isBuffer" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isBuffer">; +} + +declare module "lodash/isDate" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isDate">; +} + +declare module "lodash/isElement" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isElement">; +} + +declare module "lodash/isEmpty" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isEmpty">; +} + +declare module "lodash/isEqual" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isEqual">; +} + +declare module "lodash/isEqualWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isEqualWith">; +} + +declare module "lodash/isError" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isError">; +} + +declare module "lodash/isFinite" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isFinite">; +} + +declare module "lodash/isFunction" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isFunction">; +} + +declare module "lodash/isInteger" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isInteger">; +} + +declare module "lodash/isLength" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isLength">; +} + +declare module "lodash/isMap" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isMap">; +} + +declare module "lodash/isMatch" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isMatch">; +} + +declare module "lodash/isMatchWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isMatchWith">; +} + +declare module "lodash/isNaN" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isNaN">; +} + +declare module "lodash/isNative" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isNative">; +} + +declare module "lodash/isNil" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isNil">; +} + +declare module "lodash/isNull" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isNull">; +} + +declare module "lodash/isNumber" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isNumber">; +} + +declare module "lodash/isObject" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isObject">; +} + +declare module "lodash/isObjectLike" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isObjectLike">; +} + +declare module "lodash/isPlainObject" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isPlainObject">; +} + +declare module "lodash/isRegExp" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isRegExp">; +} + +declare module "lodash/isSafeInteger" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isSafeInteger">; +} + +declare module "lodash/isSet" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isSet">; +} + +declare module "lodash/isString" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isString">; +} + +declare module "lodash/isSymbol" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isSymbol">; +} + +declare module "lodash/isTypedArray" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isTypedArray">; +} + +declare module "lodash/isUndefined" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isUndefined">; +} + +declare module "lodash/isWeakMap" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isWeakMap">; +} + +declare module "lodash/isWeakSet" { + declare module.exports: $PropertyType<$Exports<"lodash">, "isWeakSet">; +} + +declare module "lodash/lt" { + declare module.exports: $PropertyType<$Exports<"lodash">, "lt">; +} + +declare module "lodash/lte" { + declare module.exports: $PropertyType<$Exports<"lodash">, "lte">; +} + +declare module "lodash/toArray" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toArray">; +} + +declare module "lodash/toFinite" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toFinite">; +} + +declare module "lodash/toInteger" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toInteger">; +} + +declare module "lodash/toLength" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toLength">; +} + +declare module "lodash/toNumber" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toNumber">; +} + +declare module "lodash/toPlainObject" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toPlainObject">; +} + +declare module "lodash/toSafeInteger" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toSafeInteger">; +} + +declare module "lodash/toString" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toString">; +} + +declare module "lodash/add" { + declare module.exports: $PropertyType<$Exports<"lodash">, "add">; +} + +declare module "lodash/ceil" { + declare module.exports: $PropertyType<$Exports<"lodash">, "ceil">; +} + +declare module "lodash/divide" { + declare module.exports: $PropertyType<$Exports<"lodash">, "divide">; +} + +declare module "lodash/floor" { + declare module.exports: $PropertyType<$Exports<"lodash">, "floor">; +} + +declare module "lodash/max" { + declare module.exports: $PropertyType<$Exports<"lodash">, "max">; +} + +declare module "lodash/maxBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "maxBy">; +} + +declare module "lodash/mean" { + declare module.exports: $PropertyType<$Exports<"lodash">, "mean">; +} + +declare module "lodash/meanBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "meanBy">; +} + +declare module "lodash/min" { + declare module.exports: $PropertyType<$Exports<"lodash">, "min">; +} + +declare module "lodash/minBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "minBy">; +} + +declare module "lodash/multiply" { + declare module.exports: $PropertyType<$Exports<"lodash">, "multiply">; +} + +declare module "lodash/round" { + declare module.exports: $PropertyType<$Exports<"lodash">, "round">; +} + +declare module "lodash/subtract" { + declare module.exports: $PropertyType<$Exports<"lodash">, "subtract">; +} + +declare module "lodash/sum" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sum">; +} + +declare module "lodash/sumBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "sumBy">; +} + +declare module "lodash/clamp" { + declare module.exports: $PropertyType<$Exports<"lodash">, "clamp">; +} + +declare module "lodash/inRange" { + declare module.exports: $PropertyType<$Exports<"lodash">, "inRange">; +} + +declare module "lodash/random" { + declare module.exports: $PropertyType<$Exports<"lodash">, "random">; +} + +declare module "lodash/assign" { + declare module.exports: $PropertyType<$Exports<"lodash">, "assign">; +} + +declare module "lodash/assignIn" { + declare module.exports: $PropertyType<$Exports<"lodash">, "assignIn">; +} + +declare module "lodash/assignInWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "assignInWith">; +} + +declare module "lodash/assignWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "assignWith">; +} + +declare module "lodash/at" { + declare module.exports: $PropertyType<$Exports<"lodash">, "at">; +} + +declare module "lodash/create" { + declare module.exports: $PropertyType<$Exports<"lodash">, "create">; +} + +declare module "lodash/defaults" { + declare module.exports: $PropertyType<$Exports<"lodash">, "defaults">; +} + +declare module "lodash/defaultsDeep" { + declare module.exports: $PropertyType<$Exports<"lodash">, "defaultsDeep">; +} + +declare module "lodash/entries" { + declare module.exports: $PropertyType<$Exports<"lodash">, "entries">; +} + +declare module "lodash/entriesIn" { + declare module.exports: $PropertyType<$Exports<"lodash">, "entriesIn">; +} + +declare module "lodash/extend" { + declare module.exports: $PropertyType<$Exports<"lodash">, "extend">; +} + +declare module "lodash/extendWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "extendWith">; +} + +declare module "lodash/findKey" { + declare module.exports: $PropertyType<$Exports<"lodash">, "findKey">; +} + +declare module "lodash/findLastKey" { + declare module.exports: $PropertyType<$Exports<"lodash">, "findLastKey">; +} + +declare module "lodash/forIn" { + declare module.exports: $PropertyType<$Exports<"lodash">, "forIn">; +} + +declare module "lodash/forInRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "forInRight">; +} + +declare module "lodash/forOwn" { + declare module.exports: $PropertyType<$Exports<"lodash">, "forOwn">; +} + +declare module "lodash/forOwnRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "forOwnRight">; +} + +declare module "lodash/functions" { + declare module.exports: $PropertyType<$Exports<"lodash">, "functions">; +} + +declare module "lodash/functionsIn" { + declare module.exports: $PropertyType<$Exports<"lodash">, "functionsIn">; +} + +declare module "lodash/get" { + declare module.exports: $PropertyType<$Exports<"lodash">, "get">; +} + +declare module "lodash/has" { + declare module.exports: $PropertyType<$Exports<"lodash">, "has">; +} + +declare module "lodash/hasIn" { + declare module.exports: $PropertyType<$Exports<"lodash">, "hasIn">; +} + +declare module "lodash/invert" { + declare module.exports: $PropertyType<$Exports<"lodash">, "invert">; +} + +declare module "lodash/invertBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "invertBy">; +} + +declare module "lodash/invoke" { + declare module.exports: $PropertyType<$Exports<"lodash">, "invoke">; +} + +declare module "lodash/keys" { + declare module.exports: $PropertyType<$Exports<"lodash">, "keys">; +} + +declare module "lodash/keysIn" { + declare module.exports: $PropertyType<$Exports<"lodash">, "keysIn">; +} + +declare module "lodash/mapKeys" { + declare module.exports: $PropertyType<$Exports<"lodash">, "mapKeys">; +} + +declare module "lodash/mapValues" { + declare module.exports: $PropertyType<$Exports<"lodash">, "mapValues">; +} + +declare module "lodash/merge" { + declare module.exports: $PropertyType<$Exports<"lodash">, "merge">; +} + +declare module "lodash/mergeWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "mergeWith">; +} + +declare module "lodash/omit" { + declare module.exports: $PropertyType<$Exports<"lodash">, "omit">; +} + +declare module "lodash/omitBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "omitBy">; +} + +declare module "lodash/pick" { + declare module.exports: $PropertyType<$Exports<"lodash">, "pick">; +} + +declare module "lodash/pickBy" { + declare module.exports: $PropertyType<$Exports<"lodash">, "pickBy">; +} + +declare module "lodash/result" { + declare module.exports: $PropertyType<$Exports<"lodash">, "result">; +} + +declare module "lodash/set" { + declare module.exports: $PropertyType<$Exports<"lodash">, "set">; +} + +declare module "lodash/setWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "setWith">; +} + +declare module "lodash/toPairs" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toPairs">; +} + +declare module "lodash/toPairsIn" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toPairsIn">; +} + +declare module "lodash/transform" { + declare module.exports: $PropertyType<$Exports<"lodash">, "transform">; +} + +declare module "lodash/unset" { + declare module.exports: $PropertyType<$Exports<"lodash">, "unset">; +} + +declare module "lodash/update" { + declare module.exports: $PropertyType<$Exports<"lodash">, "update">; +} + +declare module "lodash/updateWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "updateWith">; +} + +declare module "lodash/values" { + declare module.exports: $PropertyType<$Exports<"lodash">, "values">; +} + +declare module "lodash/valuesIn" { + declare module.exports: $PropertyType<$Exports<"lodash">, "valuesIn">; +} + +declare module "lodash/chain" { + declare module.exports: $PropertyType<$Exports<"lodash">, "chain">; +} + +declare module "lodash/tap" { + declare module.exports: $PropertyType<$Exports<"lodash">, "tap">; +} + +declare module "lodash/thru" { + declare module.exports: $PropertyType<$Exports<"lodash">, "thru">; +} + +declare module "lodash/camelCase" { + declare module.exports: $PropertyType<$Exports<"lodash">, "camelCase">; +} + +declare module "lodash/capitalize" { + declare module.exports: $PropertyType<$Exports<"lodash">, "capitalize">; +} + +declare module "lodash/deburr" { + declare module.exports: $PropertyType<$Exports<"lodash">, "deburr">; +} + +declare module "lodash/endsWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "endsWith">; +} + +declare module "lodash/escape" { + declare module.exports: $PropertyType<$Exports<"lodash">, "escape">; +} + +declare module "lodash/escapeRegExp" { + declare module.exports: $PropertyType<$Exports<"lodash">, "escapeRegExp">; +} + +declare module "lodash/kebabCase" { + declare module.exports: $PropertyType<$Exports<"lodash">, "kebabCase">; +} + +declare module "lodash/lowerCase" { + declare module.exports: $PropertyType<$Exports<"lodash">, "lowerCase">; +} + +declare module "lodash/lowerFirst" { + declare module.exports: $PropertyType<$Exports<"lodash">, "lowerFirst">; +} + +declare module "lodash/pad" { + declare module.exports: $PropertyType<$Exports<"lodash">, "pad">; +} + +declare module "lodash/padEnd" { + declare module.exports: $PropertyType<$Exports<"lodash">, "padEnd">; +} + +declare module "lodash/padStart" { + declare module.exports: $PropertyType<$Exports<"lodash">, "padStart">; +} + +declare module "lodash/parseInt" { + declare module.exports: $PropertyType<$Exports<"lodash">, "parseInt">; +} + +declare module "lodash/repeat" { + declare module.exports: $PropertyType<$Exports<"lodash">, "repeat">; +} + +declare module "lodash/replace" { + declare module.exports: $PropertyType<$Exports<"lodash">, "replace">; +} + +declare module "lodash/snakeCase" { + declare module.exports: $PropertyType<$Exports<"lodash">, "snakeCase">; +} + +declare module "lodash/split" { + declare module.exports: $PropertyType<$Exports<"lodash">, "split">; +} + +declare module "lodash/startCase" { + declare module.exports: $PropertyType<$Exports<"lodash">, "startCase">; +} + +declare module "lodash/startsWith" { + declare module.exports: $PropertyType<$Exports<"lodash">, "startsWith">; +} + +declare module "lodash/template" { + declare module.exports: $PropertyType<$Exports<"lodash">, "template">; +} + +declare module "lodash/toLower" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toLower">; +} + +declare module "lodash/toUpper" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toUpper">; +} + +declare module "lodash/trim" { + declare module.exports: $PropertyType<$Exports<"lodash">, "trim">; +} + +declare module "lodash/trimEnd" { + declare module.exports: $PropertyType<$Exports<"lodash">, "trimEnd">; +} + +declare module "lodash/trimStart" { + declare module.exports: $PropertyType<$Exports<"lodash">, "trimStart">; +} + +declare module "lodash/truncate" { + declare module.exports: $PropertyType<$Exports<"lodash">, "truncate">; +} + +declare module "lodash/unescape" { + declare module.exports: $PropertyType<$Exports<"lodash">, "unescape">; +} + +declare module "lodash/upperCase" { + declare module.exports: $PropertyType<$Exports<"lodash">, "upperCase">; +} + +declare module "lodash/upperFirst" { + declare module.exports: $PropertyType<$Exports<"lodash">, "upperFirst">; +} + +declare module "lodash/words" { + declare module.exports: $PropertyType<$Exports<"lodash">, "words">; +} + +declare module "lodash/attempt" { + declare module.exports: $PropertyType<$Exports<"lodash">, "attempt">; +} + +declare module "lodash/bindAll" { + declare module.exports: $PropertyType<$Exports<"lodash">, "bindAll">; +} + +declare module "lodash/cond" { + declare module.exports: $PropertyType<$Exports<"lodash">, "cond">; +} + +declare module "lodash/conforms" { + declare module.exports: $PropertyType<$Exports<"lodash">, "conforms">; +} + +declare module "lodash/constant" { + declare module.exports: $PropertyType<$Exports<"lodash">, "constant">; +} + +declare module "lodash/defaultTo" { + declare module.exports: $PropertyType<$Exports<"lodash">, "defaultTo">; +} + +declare module "lodash/flow" { + declare module.exports: $PropertyType<$Exports<"lodash">, "flow">; +} + +declare module "lodash/flowRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "flowRight">; +} + +declare module "lodash/identity" { + declare module.exports: $PropertyType<$Exports<"lodash">, "identity">; +} + +declare module "lodash/iteratee" { + declare module.exports: $PropertyType<$Exports<"lodash">, "iteratee">; +} + +declare module "lodash/matches" { + declare module.exports: $PropertyType<$Exports<"lodash">, "matches">; +} + +declare module "lodash/matchesProperty" { + declare module.exports: $PropertyType<$Exports<"lodash">, "matchesProperty">; +} + +declare module "lodash/method" { + declare module.exports: $PropertyType<$Exports<"lodash">, "method">; +} + +declare module "lodash/methodOf" { + declare module.exports: $PropertyType<$Exports<"lodash">, "methodOf">; +} + +declare module "lodash/mixin" { + declare module.exports: $PropertyType<$Exports<"lodash">, "mixin">; +} + +declare module "lodash/noConflict" { + declare module.exports: $PropertyType<$Exports<"lodash">, "noConflict">; +} + +declare module "lodash/noop" { + declare module.exports: $PropertyType<$Exports<"lodash">, "noop">; +} + +declare module "lodash/nthArg" { + declare module.exports: $PropertyType<$Exports<"lodash">, "nthArg">; +} + +declare module "lodash/over" { + declare module.exports: $PropertyType<$Exports<"lodash">, "over">; +} + +declare module "lodash/overEvery" { + declare module.exports: $PropertyType<$Exports<"lodash">, "overEvery">; +} + +declare module "lodash/overSome" { + declare module.exports: $PropertyType<$Exports<"lodash">, "overSome">; +} + +declare module "lodash/property" { + declare module.exports: $PropertyType<$Exports<"lodash">, "property">; +} + +declare module "lodash/propertyOf" { + declare module.exports: $PropertyType<$Exports<"lodash">, "propertyOf">; +} + +declare module "lodash/range" { + declare module.exports: $PropertyType<$Exports<"lodash">, "range">; +} + +declare module "lodash/rangeRight" { + declare module.exports: $PropertyType<$Exports<"lodash">, "rangeRight">; +} + +declare module "lodash/runInContext" { + declare module.exports: $PropertyType<$Exports<"lodash">, "runInContext">; +} + +declare module "lodash/stubArray" { + declare module.exports: $PropertyType<$Exports<"lodash">, "stubArray">; +} + +declare module "lodash/stubFalse" { + declare module.exports: $PropertyType<$Exports<"lodash">, "stubFalse">; +} + +declare module "lodash/stubObject" { + declare module.exports: $PropertyType<$Exports<"lodash">, "stubObject">; +} + +declare module "lodash/stubString" { + declare module.exports: $PropertyType<$Exports<"lodash">, "stubString">; +} + +declare module "lodash/stubTrue" { + declare module.exports: $PropertyType<$Exports<"lodash">, "stubTrue">; +} + +declare module "lodash/times" { + declare module.exports: $PropertyType<$Exports<"lodash">, "times">; +} + +declare module "lodash/toPath" { + declare module.exports: $PropertyType<$Exports<"lodash">, "toPath">; +} + +declare module "lodash/uniqueId" { + declare module.exports: $PropertyType<$Exports<"lodash">, "uniqueId">; +} + +declare module "lodash/fp/chunk" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "chunk">; +} + +declare module "lodash/fp/compact" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "compact">; +} + +declare module "lodash/fp/concat" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "concat">; +} + +declare module "lodash/fp/difference" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "difference">; +} + +declare module "lodash/fp/differenceBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "differenceBy">; +} + +declare module "lodash/fp/differenceWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "differenceWith">; +} + +declare module "lodash/fp/drop" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "drop">; +} + +declare module "lodash/fp/dropLast" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "dropLast">; +} + +declare module "lodash/fp/dropRight" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "dropRight">; +} + +declare module "lodash/fp/dropRightWhile" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "dropRightWhile">; +} + +declare module "lodash/fp/dropWhile" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "dropWhile">; +} + +declare module "lodash/fp/dropLastWhile" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "dropLastWhile">; +} + +declare module "lodash/fp/fill" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "fill">; +} + +declare module "lodash/fp/findIndex" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "findIndex">; +} + +declare module "lodash/fp/findIndexFrom" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "findIndexFrom">; +} + +declare module "lodash/fp/findLastIndex" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "findLastIndex">; +} + +declare module "lodash/fp/findLastIndexFrom" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "findLastIndexFrom">; +} + +declare module "lodash/fp/first" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "first">; +} + +declare module "lodash/fp/flatten" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "flatten">; +} + +declare module "lodash/fp/unnest" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "unnest">; +} + +declare module "lodash/fp/flattenDeep" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "flattenDeep">; +} + +declare module "lodash/fp/flattenDepth" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "flattenDepth">; +} + +declare module "lodash/fp/fromPairs" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "fromPairs">; +} + +declare module "lodash/fp/head" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "head">; +} + +declare module "lodash/fp/indexOf" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "indexOf">; +} + +declare module "lodash/fp/indexOfFrom" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "indexOfFrom">; +} + +declare module "lodash/fp/initial" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "initial">; +} + +declare module "lodash/fp/init" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "init">; +} + +declare module "lodash/fp/intersection" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "intersection">; +} + +declare module "lodash/fp/intersectionBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "intersectionBy">; +} + +declare module "lodash/fp/intersectionWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "intersectionWith">; +} + +declare module "lodash/fp/join" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "join">; +} + +declare module "lodash/fp/last" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "last">; +} + +declare module "lodash/fp/lastIndexOf" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "lastIndexOf">; +} + +declare module "lodash/fp/lastIndexOfFrom" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "lastIndexOfFrom">; +} + +declare module "lodash/fp/nth" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "nth">; +} + +declare module "lodash/fp/pull" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "pull">; +} + +declare module "lodash/fp/pullAll" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "pullAll">; +} + +declare module "lodash/fp/pullAllBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "pullAllBy">; +} + +declare module "lodash/fp/pullAllWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "pullAllWith">; +} + +declare module "lodash/fp/pullAt" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "pullAt">; +} + +declare module "lodash/fp/remove" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "remove">; +} + +declare module "lodash/fp/reverse" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "reverse">; +} + +declare module "lodash/fp/slice" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "slice">; +} + +declare module "lodash/fp/sortedIndex" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "sortedIndex">; +} + +declare module "lodash/fp/sortedIndexBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "sortedIndexBy">; +} + +declare module "lodash/fp/sortedIndexOf" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "sortedIndexOf">; +} + +declare module "lodash/fp/sortedLastIndex" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "sortedLastIndex">; +} + +declare module "lodash/fp/sortedLastIndexBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "sortedLastIndexBy">; +} + +declare module "lodash/fp/sortedLastIndexOf" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "sortedLastIndexOf">; +} + +declare module "lodash/fp/sortedUniq" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "sortedUniq">; +} + +declare module "lodash/fp/sortedUniqBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "sortedUniqBy">; +} + +declare module "lodash/fp/tail" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "tail">; +} + +declare module "lodash/fp/take" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "take">; +} + +declare module "lodash/fp/takeRight" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "takeRight">; +} + +declare module "lodash/fp/takeLast" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "takeLast">; +} + +declare module "lodash/fp/takeRightWhile" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "takeRightWhile">; +} + +declare module "lodash/fp/takeLastWhile" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "takeLastWhile">; +} + +declare module "lodash/fp/takeWhile" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "takeWhile">; +} + +declare module "lodash/fp/union" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "union">; +} + +declare module "lodash/fp/unionBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "unionBy">; +} + +declare module "lodash/fp/unionWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "unionWith">; +} + +declare module "lodash/fp/uniq" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "uniq">; +} + +declare module "lodash/fp/uniqBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "uniqBy">; +} + +declare module "lodash/fp/uniqWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "uniqWith">; +} + +declare module "lodash/fp/unzip" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "unzip">; +} + +declare module "lodash/fp/unzipWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "unzipWith">; +} + +declare module "lodash/fp/without" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "without">; +} + +declare module "lodash/fp/xor" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "xor">; +} + +declare module "lodash/fp/symmetricDifference" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "symmetricDifference">; +} + +declare module "lodash/fp/xorBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "xorBy">; +} + +declare module "lodash/fp/symmetricDifferenceBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "symmetricDifferenceBy">; +} + +declare module "lodash/fp/xorWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "xorWith">; +} + +declare module "lodash/fp/symmetricDifferenceWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "symmetricDifferenceWith">; +} + +declare module "lodash/fp/zip" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "zip">; +} + +declare module "lodash/fp/zipAll" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "zipAll">; +} + +declare module "lodash/fp/zipObject" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "zipObject">; +} + +declare module "lodash/fp/zipObj" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "zipObj">; +} + +declare module "lodash/fp/zipObjectDeep" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "zipObjectDeep">; +} + +declare module "lodash/fp/zipWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "zipWith">; +} + +declare module "lodash/fp/countBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "countBy">; +} + +declare module "lodash/fp/each" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "each">; +} + +declare module "lodash/fp/eachRight" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "eachRight">; +} + +declare module "lodash/fp/every" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "every">; +} + +declare module "lodash/fp/all" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "all">; +} + +declare module "lodash/fp/filter" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "filter">; +} + +declare module "lodash/fp/find" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "find">; +} + +declare module "lodash/fp/findFrom" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "findFrom">; +} + +declare module "lodash/fp/findLast" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "findLast">; +} + +declare module "lodash/fp/findLastFrom" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "findLastFrom">; +} + +declare module "lodash/fp/flatMap" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "flatMap">; +} + +declare module "lodash/fp/flatMapDeep" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "flatMapDeep">; +} + +declare module "lodash/fp/flatMapDepth" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "flatMapDepth">; +} + +declare module "lodash/fp/forEach" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "forEach">; +} + +declare module "lodash/fp/forEachRight" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "forEachRight">; +} + +declare module "lodash/fp/groupBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "groupBy">; +} + +declare module "lodash/fp/includes" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "includes">; +} + +declare module "lodash/fp/contains" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "contains">; +} + +declare module "lodash/fp/includesFrom" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "includesFrom">; +} + +declare module "lodash/fp/invokeMap" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "invokeMap">; +} + +declare module "lodash/fp/invokeArgsMap" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "invokeArgsMap">; +} + +declare module "lodash/fp/keyBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "keyBy">; +} + +declare module "lodash/fp/indexBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "indexBy">; +} + +declare module "lodash/fp/map" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "map">; +} + +declare module "lodash/fp/pluck" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "pluck">; +} + +declare module "lodash/fp/orderBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "orderBy">; +} + +declare module "lodash/fp/partition" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "partition">; +} + +declare module "lodash/fp/reduce" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "reduce">; +} + +declare module "lodash/fp/reduceRight" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "reduceRight">; +} + +declare module "lodash/fp/reject" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "reject">; +} + +declare module "lodash/fp/sample" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "sample">; +} + +declare module "lodash/fp/sampleSize" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "sampleSize">; +} + +declare module "lodash/fp/shuffle" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "shuffle">; +} + +declare module "lodash/fp/size" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "size">; +} + +declare module "lodash/fp/some" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "some">; +} + +declare module "lodash/fp/any" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "any">; +} + +declare module "lodash/fp/sortBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "sortBy">; +} + +declare module "lodash/fp/now" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "now">; +} + +declare module "lodash/fp/after" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "after">; +} + +declare module "lodash/fp/ary" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "ary">; +} + +declare module "lodash/fp/nAry" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "nAry">; +} + +declare module "lodash/fp/before" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "before">; +} + +declare module "lodash/fp/bind" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "bind">; +} + +declare module "lodash/fp/bindKey" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "bindKey">; +} + +declare module "lodash/fp/curry" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "curry">; +} + +declare module "lodash/fp/curryN" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "curryN">; +} + +declare module "lodash/fp/curryRight" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "curryRight">; +} + +declare module "lodash/fp/curryRightN" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "curryRightN">; +} + +declare module "lodash/fp/debounce" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "debounce">; +} + +declare module "lodash/fp/defer" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "defer">; +} + +declare module "lodash/fp/delay" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "delay">; +} + +declare module "lodash/fp/flip" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "flip">; +} + +declare module "lodash/fp/memoize" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "memoize">; +} + +declare module "lodash/fp/negate" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "negate">; +} + +declare module "lodash/fp/complement" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "complement">; +} + +declare module "lodash/fp/once" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "once">; +} + +declare module "lodash/fp/overArgs" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "overArgs">; +} + +declare module "lodash/fp/useWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "useWith">; +} + +declare module "lodash/fp/partial" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "partial">; +} + +declare module "lodash/fp/partialRight" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "partialRight">; +} + +declare module "lodash/fp/rearg" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "rearg">; +} + +declare module "lodash/fp/rest" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "rest">; +} + +declare module "lodash/fp/unapply" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "unapply">; +} + +declare module "lodash/fp/restFrom" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "restFrom">; +} + +declare module "lodash/fp/spread" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "spread">; +} + +declare module "lodash/fp/apply" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "apply">; +} + +declare module "lodash/fp/spreadFrom" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "spreadFrom">; +} + +declare module "lodash/fp/throttle" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "throttle">; +} + +declare module "lodash/fp/unary" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "unary">; +} + +declare module "lodash/fp/wrap" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "wrap">; +} + +declare module "lodash/fp/castArray" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "castArray">; +} + +declare module "lodash/fp/clone" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "clone">; +} + +declare module "lodash/fp/cloneDeep" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "cloneDeep">; +} + +declare module "lodash/fp/cloneDeepWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "cloneDeepWith">; +} + +declare module "lodash/fp/cloneWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "cloneWith">; +} + +declare module "lodash/fp/conformsTo" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "conformsTo">; +} + +declare module "lodash/fp/where" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "where">; +} + +declare module "lodash/fp/conforms" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "conforms">; +} + +declare module "lodash/fp/eq" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "eq">; +} + +declare module "lodash/fp/identical" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "identical">; +} + +declare module "lodash/fp/gt" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "gt">; +} + +declare module "lodash/fp/gte" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "gte">; +} + +declare module "lodash/fp/isArguments" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isArguments">; +} + +declare module "lodash/fp/isArray" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isArray">; +} + +declare module "lodash/fp/isArrayBuffer" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isArrayBuffer">; +} + +declare module "lodash/fp/isArrayLike" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isArrayLike">; +} + +declare module "lodash/fp/isArrayLikeObject" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isArrayLikeObject">; +} + +declare module "lodash/fp/isBoolean" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isBoolean">; +} + +declare module "lodash/fp/isBuffer" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isBuffer">; +} + +declare module "lodash/fp/isDate" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isDate">; +} + +declare module "lodash/fp/isElement" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isElement">; +} + +declare module "lodash/fp/isEmpty" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isEmpty">; +} + +declare module "lodash/fp/isEqual" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isEqual">; +} + +declare module "lodash/fp/equals" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "equals">; +} + +declare module "lodash/fp/isEqualWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isEqualWith">; +} + +declare module "lodash/fp/isError" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isError">; +} + +declare module "lodash/fp/isFinite" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isFinite">; +} + +declare module "lodash/fp/isFunction" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isFunction">; +} + +declare module "lodash/fp/isInteger" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isInteger">; +} + +declare module "lodash/fp/isLength" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isLength">; +} + +declare module "lodash/fp/isMap" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isMap">; +} + +declare module "lodash/fp/isMatch" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isMatch">; +} + +declare module "lodash/fp/whereEq" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "whereEq">; +} + +declare module "lodash/fp/isMatchWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isMatchWith">; +} + +declare module "lodash/fp/isNaN" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isNaN">; +} + +declare module "lodash/fp/isNative" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isNative">; +} + +declare module "lodash/fp/isNil" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isNil">; +} + +declare module "lodash/fp/isNull" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isNull">; +} + +declare module "lodash/fp/isNumber" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isNumber">; +} + +declare module "lodash/fp/isObject" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isObject">; +} + +declare module "lodash/fp/isObjectLike" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isObjectLike">; +} + +declare module "lodash/fp/isPlainObject" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isPlainObject">; +} + +declare module "lodash/fp/isRegExp" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isRegExp">; +} + +declare module "lodash/fp/isSafeInteger" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isSafeInteger">; +} + +declare module "lodash/fp/isSet" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isSet">; +} + +declare module "lodash/fp/isString" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isString">; +} + +declare module "lodash/fp/isSymbol" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isSymbol">; +} + +declare module "lodash/fp/isTypedArray" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isTypedArray">; +} + +declare module "lodash/fp/isUndefined" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isUndefined">; +} + +declare module "lodash/fp/isWeakMap" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isWeakMap">; +} + +declare module "lodash/fp/isWeakSet" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "isWeakSet">; +} + +declare module "lodash/fp/lt" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "lt">; +} + +declare module "lodash/fp/lte" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "lte">; +} + +declare module "lodash/fp/toArray" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "toArray">; +} + +declare module "lodash/fp/toFinite" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "toFinite">; +} + +declare module "lodash/fp/toInteger" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "toInteger">; +} + +declare module "lodash/fp/toLength" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "toLength">; +} + +declare module "lodash/fp/toNumber" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "toNumber">; +} + +declare module "lodash/fp/toPlainObject" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "toPlainObject">; +} + +declare module "lodash/fp/toSafeInteger" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "toSafeInteger">; +} + +declare module "lodash/fp/toString" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "toString">; +} + +declare module "lodash/fp/add" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "add">; +} + +declare module "lodash/fp/ceil" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "ceil">; +} + +declare module "lodash/fp/divide" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "divide">; +} + +declare module "lodash/fp/floor" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "floor">; +} + +declare module "lodash/fp/max" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "max">; +} + +declare module "lodash/fp/maxBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "maxBy">; +} + +declare module "lodash/fp/mean" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "mean">; +} + +declare module "lodash/fp/meanBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "meanBy">; +} + +declare module "lodash/fp/min" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "min">; +} + +declare module "lodash/fp/minBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "minBy">; +} + +declare module "lodash/fp/multiply" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "multiply">; +} + +declare module "lodash/fp/round" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "round">; +} + +declare module "lodash/fp/subtract" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "subtract">; +} + +declare module "lodash/fp/sum" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "sum">; +} + +declare module "lodash/fp/sumBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "sumBy">; +} + +declare module "lodash/fp/clamp" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "clamp">; +} + +declare module "lodash/fp/inRange" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "inRange">; +} + +declare module "lodash/fp/random" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "random">; +} + +declare module "lodash/fp/assign" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "assign">; +} + +declare module "lodash/fp/assignAll" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "assignAll">; +} + +declare module "lodash/fp/assignInAll" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "assignInAll">; +} + +declare module "lodash/fp/extendAll" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "extendAll">; +} + +declare module "lodash/fp/assignIn" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "assignIn">; +} + +declare module "lodash/fp/assignInWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "assignInWith">; +} + +declare module "lodash/fp/assignWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "assignWith">; +} + +declare module "lodash/fp/assignInAllWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "assignInAllWith">; +} + +declare module "lodash/fp/extendAllWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "extendAllWith">; +} + +declare module "lodash/fp/assignAllWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "assignAllWith">; +} + +declare module "lodash/fp/at" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "at">; +} + +declare module "lodash/fp/props" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "props">; +} + +declare module "lodash/fp/paths" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "paths">; +} + +declare module "lodash/fp/create" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "create">; +} + +declare module "lodash/fp/defaults" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "defaults">; +} + +declare module "lodash/fp/defaultsAll" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "defaultsAll">; +} + +declare module "lodash/fp/defaultsDeep" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "defaultsDeep">; +} + +declare module "lodash/fp/defaultsDeepAll" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "defaultsDeepAll">; +} + +declare module "lodash/fp/entries" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "entries">; +} + +declare module "lodash/fp/entriesIn" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "entriesIn">; +} + +declare module "lodash/fp/extend" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "extend">; +} + +declare module "lodash/fp/extendWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "extendWith">; +} + +declare module "lodash/fp/findKey" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "findKey">; +} + +declare module "lodash/fp/findLastKey" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "findLastKey">; +} + +declare module "lodash/fp/forIn" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "forIn">; +} + +declare module "lodash/fp/forInRight" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "forInRight">; +} + +declare module "lodash/fp/forOwn" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "forOwn">; +} + +declare module "lodash/fp/forOwnRight" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "forOwnRight">; +} + +declare module "lodash/fp/functions" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "functions">; +} + +declare module "lodash/fp/functionsIn" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "functionsIn">; +} + +declare module "lodash/fp/get" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "get">; +} + +declare module "lodash/fp/prop" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "prop">; +} + +declare module "lodash/fp/path" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "path">; +} + +declare module "lodash/fp/getOr" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "getOr">; +} + +declare module "lodash/fp/propOr" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "propOr">; +} + +declare module "lodash/fp/pathOr" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "pathOr">; +} + +declare module "lodash/fp/has" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "has">; +} + +declare module "lodash/fp/hasIn" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "hasIn">; +} + +declare module "lodash/fp/invert" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "invert">; +} + +declare module "lodash/fp/invertObj" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "invertObj">; +} + +declare module "lodash/fp/invertBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "invertBy">; +} + +declare module "lodash/fp/invoke" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "invoke">; +} + +declare module "lodash/fp/invokeArgs" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "invokeArgs">; +} + +declare module "lodash/fp/keys" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "keys">; +} + +declare module "lodash/fp/keysIn" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "keysIn">; +} + +declare module "lodash/fp/mapKeys" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "mapKeys">; +} + +declare module "lodash/fp/mapValues" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "mapValues">; +} + +declare module "lodash/fp/merge" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "merge">; +} + +declare module "lodash/fp/mergeAll" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "mergeAll">; +} + +declare module "lodash/fp/mergeWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "mergeWith">; +} + +declare module "lodash/fp/mergeAllWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "mergeAllWith">; +} + +declare module "lodash/fp/omit" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "omit">; +} + +declare module "lodash/fp/omitAll" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "omitAll">; +} + +declare module "lodash/fp/omitBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "omitBy">; +} + +declare module "lodash/fp/pick" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "pick">; +} + +declare module "lodash/fp/pickAll" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "pickAll">; +} + +declare module "lodash/fp/pickBy" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "pickBy">; +} + +declare module "lodash/fp/result" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "result">; +} + +declare module "lodash/fp/set" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "set">; +} + +declare module "lodash/fp/assoc" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "assoc">; +} + +declare module "lodash/fp/assocPath" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "assocPath">; +} + +declare module "lodash/fp/setWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "setWith">; +} + +declare module "lodash/fp/toPairs" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "toPairs">; +} + +declare module "lodash/fp/toPairsIn" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "toPairsIn">; +} + +declare module "lodash/fp/transform" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "transform">; +} + +declare module "lodash/fp/unset" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "unset">; +} + +declare module "lodash/fp/dissoc" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "dissoc">; +} + +declare module "lodash/fp/dissocPath" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "dissocPath">; +} + +declare module "lodash/fp/update" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "update">; +} + +declare module "lodash/fp/updateWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "updateWith">; +} + +declare module "lodash/fp/values" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "values">; +} + +declare module "lodash/fp/valuesIn" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "valuesIn">; +} + +declare module "lodash/fp/tap" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "tap">; +} + +declare module "lodash/fp/thru" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "thru">; +} + +declare module "lodash/fp/camelCase" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "camelCase">; +} + +declare module "lodash/fp/capitalize" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "capitalize">; +} + +declare module "lodash/fp/deburr" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "deburr">; +} + +declare module "lodash/fp/endsWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "endsWith">; +} + +declare module "lodash/fp/escape" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "escape">; +} + +declare module "lodash/fp/escapeRegExp" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "escapeRegExp">; +} + +declare module "lodash/fp/kebabCase" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "kebabCase">; +} + +declare module "lodash/fp/lowerCase" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "lowerCase">; +} + +declare module "lodash/fp/lowerFirst" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "lowerFirst">; +} + +declare module "lodash/fp/pad" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "pad">; +} + +declare module "lodash/fp/padChars" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "padChars">; +} + +declare module "lodash/fp/padEnd" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "padEnd">; +} + +declare module "lodash/fp/padCharsEnd" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "padCharsEnd">; +} + +declare module "lodash/fp/padStart" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "padStart">; +} + +declare module "lodash/fp/padCharsStart" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "padCharsStart">; +} + +declare module "lodash/fp/parseInt" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "parseInt">; +} + +declare module "lodash/fp/repeat" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "repeat">; +} + +declare module "lodash/fp/replace" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "replace">; +} + +declare module "lodash/fp/snakeCase" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "snakeCase">; +} + +declare module "lodash/fp/split" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "split">; +} + +declare module "lodash/fp/startCase" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "startCase">; +} + +declare module "lodash/fp/startsWith" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "startsWith">; +} + +declare module "lodash/fp/template" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "template">; +} + +declare module "lodash/fp/toLower" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "toLower">; +} + +declare module "lodash/fp/toUpper" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "toUpper">; +} + +declare module "lodash/fp/trim" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "trim">; +} + +declare module "lodash/fp/trimChars" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "trimChars">; +} + +declare module "lodash/fp/trimEnd" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "trimEnd">; +} + +declare module "lodash/fp/trimCharsEnd" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "trimCharsEnd">; +} + +declare module "lodash/fp/trimStart" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "trimStart">; +} + +declare module "lodash/fp/trimCharsStart" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "trimCharsStart">; +} + +declare module "lodash/fp/truncate" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "truncate">; +} + +declare module "lodash/fp/unescape" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "unescape">; +} + +declare module "lodash/fp/upperCase" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "upperCase">; +} + +declare module "lodash/fp/upperFirst" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "upperFirst">; +} + +declare module "lodash/fp/words" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "words">; +} + +declare module "lodash/fp/attempt" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "attempt">; +} + +declare module "lodash/fp/bindAll" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "bindAll">; +} + +declare module "lodash/fp/cond" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "cond">; +} + +declare module "lodash/fp/constant" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "constant">; +} + +declare module "lodash/fp/always" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "always">; +} + +declare module "lodash/fp/defaultTo" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "defaultTo">; +} + +declare module "lodash/fp/flow" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "flow">; +} + +declare module "lodash/fp/pipe" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "pipe">; +} + +declare module "lodash/fp/flowRight" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "flowRight">; +} + +declare module "lodash/fp/compose" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "compose">; +} + +declare module "lodash/fp/identity" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "identity">; +} + +declare module "lodash/fp/iteratee" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "iteratee">; +} + +declare module "lodash/fp/matches" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "matches">; +} + +declare module "lodash/fp/matchesProperty" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "matchesProperty">; +} + +declare module "lodash/fp/propEq" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "propEq">; +} + +declare module "lodash/fp/pathEq" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "pathEq">; +} + +declare module "lodash/fp/method" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "method">; +} + +declare module "lodash/fp/methodOf" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "methodOf">; +} + +declare module "lodash/fp/mixin" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "mixin">; +} + +declare module "lodash/fp/noConflict" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "noConflict">; +} + +declare module "lodash/fp/noop" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "noop">; +} + +declare module "lodash/fp/nthArg" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "nthArg">; +} + +declare module "lodash/fp/over" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "over">; +} + +declare module "lodash/fp/juxt" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "juxt">; +} + +declare module "lodash/fp/overEvery" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "overEvery">; +} + +declare module "lodash/fp/allPass" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "allPass">; +} + +declare module "lodash/fp/overSome" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "overSome">; +} + +declare module "lodash/fp/anyPass" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "anyPass">; +} + +declare module "lodash/fp/property" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "property">; +} + +declare module "lodash/fp/propertyOf" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "propertyOf">; +} + +declare module "lodash/fp/range" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "range">; +} + +declare module "lodash/fp/rangeStep" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "rangeStep">; +} + +declare module "lodash/fp/rangeRight" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "rangeRight">; +} + +declare module "lodash/fp/rangeStepRight" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "rangeStepRight">; +} + +declare module "lodash/fp/runInContext" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "runInContext">; +} + +declare module "lodash/fp/stubArray" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "stubArray">; +} + +declare module "lodash/fp/stubFalse" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "stubFalse">; +} + +declare module "lodash/fp/F" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "F">; +} + +declare module "lodash/fp/stubObject" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "stubObject">; +} + +declare module "lodash/fp/stubString" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "stubString">; +} + +declare module "lodash/fp/stubTrue" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "stubTrue">; +} + +declare module "lodash/fp/T" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "T">; +} + +declare module "lodash/fp/times" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "times">; +} + +declare module "lodash/fp/toPath" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "toPath">; +} + +declare module "lodash/fp/uniqueId" { + declare module.exports: $PropertyType<$Exports<"lodash/fp">, "uniqueId">; }