UNPKG

@reactivex/rxjs

Version:

Reactive Extensions for modern JavaScript

1,993 lines (1,776 loc) 452 kB
// Generated by typings // Source: https://raw.githubusercontent.com/types/npm-lodash/6557c3cd628ef6b39abfdc826b27ea1f06d8af89/index.d.ts declare module 'lodash' { /* ### 4.0.0 Changelog (https://github.com/lodash/lodash/wiki/Changelog) #### TODO: removed: - [x] Removed _.support - [x] Removed _.findWhere in favor of _.find with iteratee shorthand - [x] Removed _.where in favor of _.filter with iteratee shorthand - [x] Removed _.pluck in favor of _.map with iteratee shorthand renamed: - [x] Renamed _.first to _.head - [x] Renamed _.indexBy to _.keyBy - [x] Renamed _.invoke to _.invokeMap - [x] Renamed _.overArgs to _.overArgs - [x] Renamed _.padLeft & _.padRight to _.padStart & _.padEnd - [x] Renamed _.pairs to _.toPairs - [x] Renamed _.rest to _.tail - [x] Renamed _.restParam to _.rest - [x] Renamed _.sortByOrder to _.orderBy - [x] Renamed _.trimLeft & _.trimRight to _.trimStart & _.trimEnd - [x] Renamed _.trunc to _.truncate split: - [x] Split _.indexOf & _.lastIndexOf into _.sortedIndexOf & _.sortedLastIndexOf - [x] Split _.max & _.min into _.maxBy & _.minBy - [x] Split _.omit & _.pick into _.omitBy & _.pickBy - [x] Split _.sample into _.sampleSize - [x] Split _.sortedIndex into _.sortedIndexBy - [x] Split _.sortedLastIndex into _.sortedLastIndexBy - [x] Split _.uniq into _.sortedUniq, _.sortedUniqBy, & _.uniqBy changes: - [x] Absorbed _.sortByAll into _.sortBy - [x] Changed the category of _.at to “Object” - [x] Changed the category of _.bindAll to “Utility” - [x] Made _.capitalize uppercase the first character & lowercase the rest - [x] Made _.functions return only own method names added 23 array methods: - [x] _.concat - [x] _.differenceBy - [x] _.differenceWith - [x] _.flatMap - [x] _.fromPairs - [x] _.intersectionBy - [x] _.intersectionWith - [x] _.join - [x] _.pullAll - [x] _.pullAllBy - [x] _.reverse - [x] _.sortedIndexBy - [x] _.sortedIndexOf - [x] _.sortedLastIndexBy - [x] _.sortedLastIndexOf - [x] _.sortedUniq - [x] _.sortedUniqBy - [x] _.unionBy - [x] _.unionWith - [x] _.uniqBy - [x] _.uniqWith - [x] _.xorBy - [x] _.xorWith added 18 lang methods: - [x] _.cloneDeepWith - [x] _.cloneWith - [x] _.eq - [x] _.isArrayLike - [x] _.isArrayLikeObject - [x] _.isEqualWith - [x] _.isInteger - [x] _.isLength - [x] _.isMatchWith - [x] _.isNil - [x] _.isObjectLike - [x] _.isSafeInteger - [x] _.isSymbol - [x] _.toInteger - [x] _.toLength - [x] _.toNumber - [x] _.toSafeInteger - [x] _.toString added 13 object methods: - [x] _.assignIn - [x] _.assignInWith - [x] _.assignWith - [x] _.functionsIn - [x] _.hasIn - [x] _.mergeWith - [x] _.omitBy - [x] _.pickBy added 8 string methods: - [x] _.lowerCase - [x] _.lowerFirst - [x] _.upperCase - [x] _.upperFirst - [x] _.toLower - [x] _.toUpper added 8 utility methods: - [x] _.toPath added 4 math methods: - [x] _.maxBy - [x] _.mean - [x] _.minBy - [x] _.sumBy added 2 function methods: - [x] _.flip - [x] _.unary added 2 number methods: - [x] _.clamp - [x] _.subtract added collection method: - [x] _.sampleSize Added 3 aliases - [x] _.first as an alias of _.head Removed 17 aliases - [x] Removed aliase _.all - [x] Removed aliase _.any - [x] Removed aliase _.backflow - [x] Removed aliase _.callback - [x] Removed aliase _.collect - [x] Removed aliase _.compose - [x] Removed aliase _.contains - [x] Removed aliase _.detect - [x] Removed aliase _.foldl - [x] Removed aliase _.foldr - [x] Removed aliase _.include - [x] Removed aliase _.inject - [x] Removed aliase _.methods - [x] Removed aliase _.object - [x] Removed aliase _.run - [x] Removed aliase _.select - [x] Removed aliase _.unique Other changes - [x] Added support for array buffers to _.isEqual - [x] Added support for converting iterators to _.toArray - [x] Added support for deep paths to _.zipObject - [x] Changed UMD to export to window or self when available regardless of other exports - [x] Ensured debounce cancel clears args & thisArg references - [x] Ensured _.add, _.subtract, & _.sum don’t skip NaN values - [x] Ensured _.clone treats generators like functions - [x] Ensured _.clone produces clones with the source’s [[Prototype]] - [x] Ensured _.defaults assigns properties that shadow Object.prototype - [x] Ensured _.defaultsDeep doesn’t merge a string into an array - [x] Ensured _.defaultsDeep & _.merge don’t modify sources - [x] Ensured _.defaultsDeep works with circular references - [x] Ensured _.keys skips “length” on strict mode arguments objects in Safari 9 - [x] Ensured _.merge doesn’t convert strings to arrays - [x] Ensured _.merge merges plain-objects onto non plain-objects - [x] Ensured _#plant resets iterator data of cloned sequences - [x] Ensured _.random swaps min & max if min is greater than max - [x] Ensured _.range preserves the sign of start of -0 - [x] Ensured _.reduce & _.reduceRight use getIteratee in their array branch - [x] Fixed rounding issue with the precision param of _.floor ** LATER ** Misc: - [ ] Made _.forEach, _.forIn, _.forOwn, & _.times implicitly end a chain sequence - [ ] Removed thisArg params from most methods - [ ] Made “By” methods provide a single param to iteratees - [ ] Made _.words chainable by default - [ ] Removed isDeep params from _.clone & _.flatten - [ ] Removed _.bindAll support for binding all methods when no names are provided - [ ] Removed func-first param signature from _.before & _.after - [ ] _.extend as an alias of _.assignIn - [ ] _.extendWith as an alias of _.assignInWith - [ ] Added clear method to _.memoize.Cache - [ ] Added flush method to debounced & throttled functions - [ ] Added support for ES6 maps, sets, & symbols to _.clone, _.isEqual, & _.toArray - [ ] Enabled _.flow & _.flowRight to accept an array of functions - [ ] Ensured “Collection” methods treat functions as objects - [ ] Ensured _.assign, _.defaults, & _.merge coerce object values to objects - [ ] Ensured _.bindKey bound functions call object[key] when called with the new operator - [ ] Ensured _.isFunction returns true for generator functions - [ ] Ensured _.merge assigns typed arrays directly - [ ] Made _(...) an iterator & iterable - [ ] Made _.drop, _.take, & right forms coerce n of undefined to 0 Methods: - [ ] _.concat - [ ] _.differenceBy - [ ] _.differenceWith - [ ] _.flatMap - [x] _.fromPairs - [ ] _.intersectionBy - [ ] _.intersectionWith - [ ] _.join - [ ] _.pullAll - [ ] _.pullAllBy - [ ] _.reverse - [ ] _.sortedLastIndexOf - [ ] _.unionBy - [ ] _.unionWith - [ ] _.uniqWith - [ ] _.xorBy - [ ] _.xorWith - [ ] _.toString - [ ] _.invoke - [ ] _.setWith - [ ] _.toPairs - [ ] _.toPairsIn - [ ] _.unset - [ ] _.replace - [ ] _.split - [ ] _.cond - [ ] _.conforms - [ ] _.nthArg - [ ] _.over - [ ] _.overEvery - [ ] _.overSome - [ ] _.rangeRight - [ ] _.next */ var _: _.LoDashStatic; namespace _ { interface LoDashStatic { /** * Creates a lodash object which wraps the given value to enable intuitive method chaining. * * In addition to Lo-Dash methods, wrappers also have the following Array methods: * concat, join, pop, push, reverse, shift, slice, sort, splice, and unshift * * Chaining is supported in custom builds as long as the value method is implicitly or * explicitly included in the build. * * The chainable wrapper functions are: * after, assign, bind, bindAll, bindKey, chain, chunk, compact, compose, concat, countBy, * createCallback, curry, debounce, defaults, defer, delay, difference, filter, flatten, * forEach, forEachRight, forIn, forInRight, forOwn, forOwnRight, functions, groupBy, * keyBy, initial, intersection, invert, invoke, keys, map, max, memoize, merge, min, * object, omit, once, pairs, partial, partialRight, pick, pluck, pull, push, range, reject, * remove, rest, reverse, sample, shuffle, slice, sort, sortBy, splice, tap, throttle, times, * toArray, transform, union, uniq, unset, unshift, unzip, values, where, without, wrap, and zip * * The non-chainable wrapper functions are: * clone, cloneDeep, contains, escape, every, find, findIndex, findKey, findLast, * findLastIndex, findLastKey, has, identity, indexOf, isArguments, isArray, isBoolean, * isDate, isElement, isEmpty, isEqual, isFinite, isFunction, isNaN, isNull, isNumber, * isObject, isPlainObject, isRegExp, isString, isUndefined, join, lastIndexOf, mixin, * noConflict, parseInt, pop, random, reduce, reduceRight, result, shift, size, some, * sortedIndex, runInContext, template, unescape, uniqueId, and value * * The wrapper functions first and last return wrapped values when n is provided, otherwise * they return unwrapped values. * * Explicit chaining can be enabled by using the _.chain method. */ (value: number): LoDashImplicitWrapper<number>; (value: string): LoDashImplicitStringWrapper; (value: boolean): LoDashImplicitWrapper<boolean>; (value: Array<number>): LoDashImplicitNumberArrayWrapper; <T>(value: Array<T>): LoDashImplicitArrayWrapper<T>; <T extends {}>(value: T): LoDashImplicitObjectWrapper<T>; (value: any): LoDashImplicitWrapper<any>; /** * The semantic version number. */ VERSION: string; /** * By default, the template delimiters used by Lo-Dash are similar to those in embedded Ruby * (ERB). Change the following template settings to use alternative delimiters. */ templateSettings: TemplateSettings; } /** * By default, the template delimiters used by Lo-Dash are similar to those in embedded Ruby * (ERB). Change the following template settings to use alternative delimiters. */ interface TemplateSettings { /** * The "escape" delimiter. */ escape?: RegExp; /** * The "evaluate" delimiter. */ evaluate?: RegExp; /** * An object to import into the template as local variables. */ imports?: Dictionary<any>; /** * The "interpolate" delimiter. */ interpolate?: RegExp; /** * Used to reference the data object in the template text. */ variable?: string; } /** * Creates a cache object to store key/value pairs. */ interface MapCache { /** * Removes `key` and its value from the cache. * @param key The key of the value to remove. * @return Returns `true` if the entry was removed successfully, else `false`. */ delete(key: string): boolean; /** * Gets the cached value for `key`. * @param key The key of the value to get. * @return Returns the cached value. */ get(key: string): any; /** * Checks if a cached value for `key` exists. * @param key The key of the entry to check. * @return Returns `true` if an entry for `key` exists, else `false`. */ has(key: string): boolean; /** * Sets `value` to `key` of the cache. * @param key The key of the value to cache. * @param value The value to cache. * @return Returns the cache object. */ set(key: string, value: any): _.Dictionary<any>; } interface LoDashWrapperBase<T, TWrapper> { } interface LoDashImplicitWrapperBase<T, TWrapper> extends LoDashWrapperBase<T, TWrapper> { } interface LoDashExplicitWrapperBase<T, TWrapper> extends LoDashWrapperBase<T, TWrapper> { } interface LoDashImplicitWrapper<T> extends LoDashImplicitWrapperBase<T, LoDashImplicitWrapper<T>> { } interface LoDashExplicitWrapper<T> extends LoDashExplicitWrapperBase<T, LoDashExplicitWrapper<T>> { } interface LoDashImplicitStringWrapper extends LoDashImplicitWrapper<string> { } interface LoDashExplicitStringWrapper extends LoDashExplicitWrapper<string> { } interface LoDashImplicitObjectWrapper<T> extends LoDashImplicitWrapperBase<T, LoDashImplicitObjectWrapper<T>> { } interface LoDashExplicitObjectWrapper<T> extends LoDashExplicitWrapperBase<T, LoDashExplicitObjectWrapper<T>> { } interface LoDashImplicitArrayWrapper<T> extends LoDashImplicitWrapperBase<T[], LoDashImplicitArrayWrapper<T>> { pop(): T; push(...items: T[]): LoDashImplicitArrayWrapper<T>; shift(): T; sort(compareFn?: (a: T, b: T) => number): LoDashImplicitArrayWrapper<T>; splice(start: number): LoDashImplicitArrayWrapper<T>; splice(start: number, deleteCount: number, ...items: any[]): LoDashImplicitArrayWrapper<T>; unshift(...items: T[]): LoDashImplicitArrayWrapper<T>; } interface LoDashExplicitArrayWrapper<T> extends LoDashExplicitWrapperBase<T[], LoDashExplicitArrayWrapper<T>> { } interface LoDashImplicitNumberArrayWrapper extends LoDashImplicitArrayWrapper<number> { } interface LoDashExplicitNumberArrayWrapper extends LoDashExplicitArrayWrapper<number> { } /********* * Array * ********/ // _.chunk interface LoDashStatic { /** * Creates an array of elements split into groups the length of size. If collection can’t be split evenly, the * final chunk will be the remaining elements. * * @param array The array to process. * @param size The length of each chunk. * @return Returns the new array containing chunks. */ chunk<T>( array: List<T>, size?: number ): T[][]; } interface LoDashImplicitArrayWrapper<T> { /** * @see _.chunk */ chunk(size?: number): LoDashImplicitArrayWrapper<T[]>; } interface LoDashImplicitObjectWrapper<T> { /** * @see _.chunk */ chunk<TResult>(size?: number): LoDashImplicitArrayWrapper<TResult[]>; } interface LoDashExplicitArrayWrapper<T> { /** * @see _.chunk */ chunk(size?: number): LoDashExplicitArrayWrapper<T[]>; } interface LoDashExplicitObjectWrapper<T> { /** * @see _.chunk */ chunk<TResult>(size?: number): LoDashExplicitArrayWrapper<TResult[]>; } // _.compact interface LoDashStatic { /** * Creates an array with all falsey values removed. The values false, null, 0, "", undefined, and NaN are * falsey. * * @param array The array to compact. * @return (Array) Returns the new array of filtered values. */ compact<T>(array?: List<T>): T[]; } interface LoDashImplicitArrayWrapper<T> { /** * @see _.compact */ compact(): LoDashImplicitArrayWrapper<T>; } interface LoDashImplicitObjectWrapper<T> { /** * @see _.compact */ compact<TResult>(): LoDashImplicitArrayWrapper<TResult>; } interface LoDashExplicitArrayWrapper<T> { /** * @see _.compact */ compact(): LoDashExplicitArrayWrapper<T>; } interface LoDashExplicitObjectWrapper<T> { /** * @see _.compact */ compact<TResult>(): LoDashExplicitArrayWrapper<TResult>; } // _.concat DUMMY interface LoDashStatic { /** * Creates a new array concatenating `array` with any additional arrays * and/or values. * * @static * @memberOf _ * @category Array * @param {Array} array The array to concatenate. * @param {...*} [values] The values to concatenate. * @returns {Array} Returns the new concatenated array. * @example * * var array = [1]; * var other = _.concat(array, 2, [3], [[4]]); * * console.log(other); * // => [1, 2, 3, [4]] * * console.log(array); * // => [1] */ concat<T>(...values: (T[] | List<T>)[]): T[]; } // _.difference interface LoDashStatic { /** * Creates an array of unique array values not included in the other provided arrays using SameValueZero for * equality comparisons. * * @param array The array to inspect. * @param values The arrays of values to exclude. * @return Returns the new array of filtered values. */ difference<T>( array: T[] | List<T>, ...values: Array<T[] | List<T>> ): T[]; } interface LoDashImplicitArrayWrapper<T> { /** * @see _.difference */ difference(...values: (T[] | List<T>)[]): LoDashImplicitArrayWrapper<T>; } interface LoDashImplicitObjectWrapper<T> { /** * @see _.difference */ difference<TValue>(...values: (TValue[] | List<TValue>)[]): LoDashImplicitArrayWrapper<TValue>; } interface LoDashExplicitArrayWrapper<T> { /** * @see _.difference */ difference(...values: (T[] | List<T>)[]): LoDashExplicitArrayWrapper<T>; } interface LoDashExplicitObjectWrapper<T> { /** * @see _.difference */ difference<TValue>(...values: (TValue[] | List<TValue>)[]): LoDashExplicitArrayWrapper<TValue>; } // _.differenceBy interface LoDashStatic { /** * This method is like _.difference except that it accepts iteratee which is invoked for each element of array * and values to generate the criterion by which uniqueness is computed. The iteratee is invoked with one * argument: (value). * * @param array The array to inspect. * @param values The values to exclude. * @param iteratee The iteratee invoked per element. * @returns Returns the new array of filtered values. */ differenceBy<T>( array: T[] | List<T>, values?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): T[]; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( array: T[] | List<T>, values?: T[] | List<T>, iteratee?: W ): T[]; /** * @see _.differenceBy */ differenceBy<T>( array: T[] | List<T>, values1?: T[] | List<T>, values2?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): T[]; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( array: T[] | List<T>, values1?: T[] | List<T>, values2?: T[] | List<T>, iteratee?: W ): T[]; /** * @see _.differenceBy */ differenceBy<T>( array: T[] | List<T>, values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): T[]; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( array: T[] | List<T>, values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, iteratee?: W ): T[]; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( array: T[] | List<T>, values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, iteratee?: W ): T[]; /** * @see _.differenceBy */ differenceBy<T>( array: T[] | List<T>, values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): T[]; /** * @see _.differenceBy */ differenceBy<T>( array: T[] | List<T>, values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, values5?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): T[]; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( array: T[] | List<T>, values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, values5?: T[] | List<T>, iteratee?: W ): T[]; /** * @see _.differenceBy */ differenceBy<T>( array: T[] | List<T>, ...values: any[] ): T[]; } interface LoDashImplicitArrayWrapper<T> { /** * @see _.differenceBy */ differenceBy<T>( values?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values?: T[] | List<T>, iteratee?: W ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( values1?: T[] | List<T>, values2?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values1?: T[] | List<T>, values2?: T[] | List<T>, iteratee?: W ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, iteratee?: W ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, iteratee?: W ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, values5?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, values5?: T[] | List<T>, iteratee?: W ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( ...values: any[] ): LoDashImplicitArrayWrapper<T>; } interface LoDashImplicitObjectWrapper<T> { /** * @see _.differenceBy */ differenceBy<T>( values?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values?: T[] | List<T>, iteratee?: W ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( values1?: T[] | List<T>, values2?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values1?: T[] | List<T>, values2?: T[] | List<T>, iteratee?: W ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, iteratee?: W ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, iteratee?: W ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, values5?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, values5?: T[] | List<T>, iteratee?: W ): LoDashImplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( ...values: any[] ): LoDashImplicitArrayWrapper<T>; } interface LoDashExplicitArrayWrapper<T> { /** * @see _.differenceBy */ differenceBy<T>( values?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values?: T[] | List<T>, iteratee?: W ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( values1?: T[] | List<T>, values2?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values1?: T[] | List<T>, values2?: T[] | List<T>, iteratee?: W ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, iteratee?: W ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, iteratee?: W ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, values5?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, values5?: T[] | List<T>, iteratee?: W ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( ...values: any[] ): LoDashExplicitArrayWrapper<T>; } interface LoDashExplicitObjectWrapper<T> { /** * @see _.differenceBy */ differenceBy<T>( values?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values?: T[] | List<T>, iteratee?: W ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( values1?: T[] | List<T>, values2?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values1?: T[] | List<T>, values2?: T[] | List<T>, iteratee?: W ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, iteratee?: W ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, iteratee?: W ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, values5?: T[] | List<T>, iteratee?: ((value: T) => any) | string ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T, W extends Object>( values1?: T[] | List<T>, values2?: T[] | List<T>, values3?: T[] | List<T>, values4?: T[] | List<T>, values5?: T[] | List<T>, iteratee?: W ): LoDashExplicitArrayWrapper<T>; /** * @see _.differenceBy */ differenceBy<T>( ...values: any[] ): LoDashExplicitArrayWrapper<T>; } // _.differenceWith DUMMY interface LoDashStatic { /** * Creates an array of unique `array` values not included in the other * provided arrays using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) * for equality comparisons. * * @static * @memberOf _ * @category Array * @param {Array} array The array to inspect. * @param {...Array} [values] The values to exclude. * @returns {Array} Returns the new array of filtered values. * @example * * _.difference([3, 2, 1], [4, 2]); * // => [3, 1] */ differenceWith( array: any[] | List<any>, ...values: any[] ): any[]; } // _.drop interface LoDashStatic { /** * Creates a slice of array with n elements dropped from the beginning. * * @param array The array to query. * @param n The number of elements to drop. * @return Returns the slice of array. */ drop<T>(array: T[] | List<T>, n?: number): T[]; } interface LoDashImplicitArrayWrapper<T> { /** * @see _.drop */ drop(n?: number): LoDashImplicitArrayWrapper<T>; } interface LoDashImplicitObjectWrapper<T> { /** * @see _.drop */ drop<T>(n?: number): LoDashImplicitArrayWrapper<T>; } interface LoDashExplicitArrayWrapper<T> { /** * @see _.drop */ drop(n?: number): LoDashExplicitArrayWrapper<T>; } interface LoDashExplicitObjectWrapper<T> { /** * @see _.drop */ drop<T>(n?: number): LoDashExplicitArrayWrapper<T>; } // _.dropRight interface LoDashStatic { /** * Creates a slice of array with n elements dropped from the end. * * @param array The array to query. * @param n The number of elements to drop. * @return Returns the slice of array. */ dropRight<T>( array: List<T>, n?: number ): T[]; } interface LoDashImplicitArrayWrapper<T> { /** * @see _.dropRight */ dropRight(n?: number): LoDashImplicitArrayWrapper<T>; } interface LoDashImplicitObjectWrapper<T> { /** * @see _.dropRight */ dropRight<TResult>(n?: number): LoDashImplicitArrayWrapper<TResult>; } interface LoDashExplicitArrayWrapper<T> { /** * @see _.dropRight */ dropRight(n?: number): LoDashExplicitArrayWrapper<T>; } interface LoDashExplicitObjectWrapper<T> { /** * @see _.dropRight */ dropRight<TResult>(n?: number): LoDashExplicitArrayWrapper<TResult>; } // _.dropRightWhile interface LoDashStatic { /** * Creates a slice of array excluding elements dropped from the end. Elements are dropped until predicate * returns falsey. The predicate is bound to thisArg and invoked with three arguments: (value, index, array). * * If a property name is provided for predicate the created _.property style callback returns the property * value of the given element. * * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for * elements that have a matching property value, else false. * * If an object is provided for predicate the created _.matches style callback returns true for elements that * match the properties of the given object, else false. * * @param array The array to query. * @param predicate The function invoked per iteration. * @param thisArg The this binding of predicate. * @return Returns the slice of array. */ dropRightWhile<TValue>( array: List<TValue>, predicate?: ListIterator<TValue, boolean>, thisArg?: any ): TValue[]; /** * @see _.dropRightWhile */ dropRightWhile<TValue>( array: List<TValue>, predicate?: string, thisArg?: any ): TValue[]; /** * @see _.dropRightWhile */ dropRightWhile<TWhere, TValue>( array: List<TValue>, predicate?: TWhere ): TValue[]; } interface LoDashImplicitArrayWrapper<T> { /** * @see _.dropRightWhile */ dropRightWhile( predicate?: ListIterator<T, boolean>, thisArg?: any ): LoDashImplicitArrayWrapper<T>; /** * @see _.dropRightWhile */ dropRightWhile( predicate?: string, thisArg?: any ): LoDashImplicitArrayWrapper<T>; /** * @see _.dropRightWhile */ dropRightWhile<TWhere>( predicate?: TWhere ): LoDashImplicitArrayWrapper<T>; } interface LoDashImplicitObjectWrapper<T> { /** * @see _.dropRightWhile */ dropRightWhile<TValue>( predicate?: ListIterator<TValue, boolean>, thisArg?: any ): LoDashImplicitArrayWrapper<TValue>; /** * @see _.dropRightWhile */ dropRightWhile<TValue>( predicate?: string, thisArg?: any ): LoDashImplicitArrayWrapper<TValue>; /** * @see _.dropRightWhile */ dropRightWhile<TWhere, TValue>( predicate?: TWhere ): LoDashImplicitArrayWrapper<TValue>; } interface LoDashExplicitArrayWrapper<T> { /** * @see _.dropRightWhile */ dropRightWhile( predicate?: ListIterator<T, boolean>, thisArg?: any ): LoDashExplicitArrayWrapper<T>; /** * @see _.dropRightWhile */ dropRightWhile( predicate?: string, thisArg?: any ): LoDashExplicitArrayWrapper<T>; /** * @see _.dropRightWhile */ dropRightWhile<TWhere>( predicate?: TWhere ): LoDashExplicitArrayWrapper<T>; } interface LoDashExplicitObjectWrapper<T> { /** * @see _.dropRightWhile */ dropRightWhile<TValue>( predicate?: ListIterator<TValue, boolean>, thisArg?: any ): LoDashExplicitArrayWrapper<TValue>; /** * @see _.dropRightWhile */ dropRightWhile<TValue>( predicate?: string, thisArg?: any ): LoDashExplicitArrayWrapper<TValue>; /** * @see _.dropRightWhile */ dropRightWhile<TWhere, TValue>( predicate?: TWhere ): LoDashExplicitArrayWrapper<TValue>; } // _.dropWhile interface LoDashStatic { /** * Creates a slice of array excluding elements dropped from the beginning. Elements are dropped until predicate * returns falsey. The predicate is bound to thisArg and invoked with three arguments: (value, index, array). * * If a property name is provided for predicate the created _.property style callback returns the property * value of the given element. * * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for * elements that have a matching property value, else false. * * If an object is provided for predicate the created _.matches style callback returns true for elements that * have the properties of the given object, else false. * * @param array The array to query. * @param predicate The function invoked per iteration. * @param thisArg The this binding of predicate. * @return Returns the slice of array. */ dropWhile<TValue>( array: List<TValue>, predicate?: ListIterator<TValue, boolean>, thisArg?: any ): TValue[]; /** * @see _.dropWhile */ dropWhile<TValue>( array: List<TValue>, predicate?: string, thisArg?: any ): TValue[]; /** * @see _.dropWhile */ dropWhile<TWhere, TValue>( array: List<TValue>, predicate?: TWhere ): TValue[]; } interface LoDashImplicitArrayWrapper<T> { /** * @see _.dropWhile */ dropWhile( predicate?: ListIterator<T, boolean>, thisArg?: any ): LoDashImplicitArrayWrapper<T>; /** * @see _.dropWhile */ dropWhile( predicate?: string, thisArg?: any ): LoDashImplicitArrayWrapper<T>; /** * @see _.dropWhile */ dropWhile<TWhere>( predicate?: TWhere ): LoDashImplicitArrayWrapper<T>; } interface LoDashImplicitObjectWrapper<T> { /** * @see _.dropWhile */ dropWhile<TValue>( predicate?: ListIterator<TValue, boolean>, thisArg?: any ): LoDashImplicitArrayWrapper<TValue>; /** * @see _.dropWhile */ dropWhile<TValue>( predicate?: string, thisArg?: any ): LoDashImplicitArrayWrapper<TValue>; /** * @see _.dropWhile */ dropWhile<TWhere, TValue>( predicate?: TWhere ): LoDashImplicitArrayWrapper<TValue>; } interface LoDashExplicitArrayWrapper<T> { /** * @see _.dropWhile */ dropWhile( predicate?: ListIterator<T, boolean>, thisArg?: any ): LoDashExplicitArrayWrapper<T>; /** * @see _.dropWhile */ dropWhile( predicate?: string, thisArg?: any ): LoDashExplicitArrayWrapper<T>; /** * @see _.dropWhile */ dropWhile<TWhere>( predicate?: TWhere ): LoDashExplicitArrayWrapper<T>; } interface LoDashExplicitObjectWrapper<T> { /** * @see _.dropWhile */ dropWhile<TValue>( predicate?: ListIterator<TValue, boolean>, thisArg?: any ): LoDashExplicitArrayWrapper<TValue>; /** * @see _.dropWhile */ dropWhile<TValue>( predicate?: string, thisArg?: any ): LoDashExplicitArrayWrapper<TValue>; /** * @see _.dropWhile */ dropWhile<TWhere, TValue>( predicate?: TWhere ): LoDashExplicitArrayWrapper<TValue>; } // _.fill interface LoDashStatic { /** * Fills elements of array with value from start up to, but not including, end. * * Note: This method mutates array. * * @param array The array to fill. * @param value The value to fill array with. * @param start The start position. * @param end The end position. * @return Returns array. */ fill<T>( array: any[], value: T, start?: number, end?: number ): T[]; /** * @see _.fill */ fill<T>( array: List<any>, value: T, start?: number, end?: number ): List<T>; } interface LoDashImplicitArrayWrapper<T> { /** * @see _.fill */ fill<T>( value: T, start?: number, end?: number ): LoDashImplicitArrayWrapper<T>; } interface LoDashImplicitObjectWrapper<T> { /** * @see _.fill */ fill<T>( value: T, start?: number, end?: number ): LoDashImplicitObjectWrapper<List<T>>; } interface LoDashExplicitArrayWrapper<T> { /** * @see _.fill */ fill<T>( value: T, start?: number, end?: number ): LoDashExplicitArrayWrapper<T>; } interface LoDashExplicitObjectWrapper<T> { /** * @see _.fill */ fill<T>( value: T, start?: number, end?: number ): LoDashExplicitObjectWrapper<List<T>>; } // _.findIndex interface LoDashStatic { /** * This method is like _.find except that it returns the index of the first element predicate returns truthy * for instead of the element itself. * * If a property name is provided for predicate the created _.property style callback returns the property * value of the given element. * * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for * elements that have a matching property value, else false. * * If an object is provided for predicate the created _.matches style callback returns true for elements that * have the properties of the given object, else false. * * @param array The array to search. * @param predicate The function invoked per iteration. * @param thisArg The this binding of predicate. * @return Returns the index of the found element, else -1. */ findIndex<T>( array: List<T>, predicate?: ListIterator<T, boolean>, thisArg?: any ): number; /** * @see _.findIndex */ findIndex<T>( array: List<T>, predicate?: string, thisArg?: any ): number; /** * @see _.findIndex */ findIndex<W, T>( array: List<T>, predicate?: W ): number; } interface LoDashImplicitArrayWrapper<T> { /** * @see _.findIndex */ findIndex( predicate?: ListIterator<T, boolean>, thisArg?: any ): number; /** * @see _.findIndex */ findIndex( predicate?: string, thisArg?: any ): number; /** * @see _.findIndex */ findIndex<W>( predicate?: W ): number; } interface LoDashImplicitObjectWrapper<T> { /** * @see _.findIndex */ findIndex<TResult>( predicate?: ListIterator<TResult, boolean>, thisArg?: any ): number; /** * @see _.findIndex */ findIndex( predicate?: string, thisArg?: any ): number; /** * @see _.findIndex */ findIndex<W>( predicate?: W ): number; } interface LoDashExplicitArrayWrapper<T> { /** * @see _.findIndex */ findIndex( predicate?: ListIterator<T, boolean>, thisArg?: any ): LoDashExplicitWrapper<number>; /** * @see _.findIndex */ findIndex( predicate?: string, thisArg?: any ): LoDashExplicitWrapper<number>; /** * @see _.findIndex */ findIndex<W>( predicate?: W ): LoDashExplicitWrapper<number>; } interface LoDashExplicitObjectWrapper<T> { /** * @see _.findIndex */ findIndex<TResult>( predicate?: ListIterator<TResult, boolean>, thisArg?: any ): LoDashExplicitWrapper<number>; /** * @see _.findIndex */ findIndex( predicate?: string, thisArg?: any ): LoDashExplicitWrapper<number>; /** * @see _.findIndex */ findIndex<W>( predicate?: W ): LoDashExplicitWrapper<number>; } // _.findLastIndex interface LoDashStatic { /** * This method is like _.findIndex except that it iterates over elements of collection from right to left. * * If a property name is provided for predicate the created _.property style callback returns the property * value of the given element. * * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for * elements that have a matching property value, else false. * * If an object is provided for predicate the created _.matches style callback returns true for elements that * have the properties of the given object, else false. * * @param array The array to search. * @param predicate The function invoked per iteration. * @param thisArg The function invoked per iteration. * @return Returns the index of the found element, else -1. */ findLastIndex<T>( array: List<T>, predicate?: ListIterator<T, boolean>, thisArg?: any ): number; /** * @see _.findLastIndex */ findLastIndex<T>( array: List<T>, predicate?: string, thisArg?: any ): number; /** * @see _.findLastIndex */ findLastIndex<W, T>( array: List<T>, predicate?: W ): number; } interface LoDashImplicitArrayWrapper<T> { /** * @see _.findLastIndex */ findLastIndex( predicate?: ListIterator<T, boolean>, thisArg?: any ): number; /** * @see _.findLastIndex */ findLastIndex( predicate?: string, thisArg?: any ): number; /** * @see _.findLastIndex */ findLastIndex<W>( predicate?: W ): number; } interface LoDashImplicitObjectWrapper<T> { /** * @see _.findLastIndex */ findLastIndex<TResult>( predicate?: ListIterator<TResult, boolean>, thisArg?: any ): number; /** * @see _.findLastIndex */ findLastIndex( predicate?: string, thisArg?: any ): number; /** * @see _.findLastIndex */ findLastIndex<W>( predicate?: W ): number; } interface LoDashExplicitArrayWrapper<T> { /** * @see _.findLastIndex */ findLastIndex( predicate?: ListIterator<T, boolean>, thisArg?: any ): LoDashExplicitWrapper<number>; /** * @see _.findLastIndex */ findLastIndex( predicate?: string, thisArg?: any ): LoDashExplicitWrapper<number>; /** * @see _.findLastIndex */ findLastIndex<W>( predicate?: W ): LoDashExplicitWrapper<number>; } interface LoDashExplicitObjectWrapper<T> { /** * @see _.findLastIndex */ findLastIndex<TResult>( predicate?: ListIterator<TResult, boolean>, thisArg?: any ): LoDashExplicitWrapper<number>; /** * @see _.findLastIndex */ findLastIndex( predicate?: string, thisArg?: any ): LoDashExplicitWrapper<number>; /** * @see _.findLastIndex */ findLastIndex<W>( predicate?: W ): LoDashExplicitWrapper<number>; } // _.first interface LoDashStatic { /** * @see _.head */ first<T>(array: List<T>): T; } interface LoDashImplicitArrayWrapper<T> { /** * @see _.head */ first(): T; } interface LoDashImplicitObjectWrapper<T> { /** * @see _.head */ first<TResult>(): TResult; } interface LoDashExplicitArrayWrapper<T> { /** * @see _.head */ first(): LoDashExplicitWrapper<T>; } interface RecursiveArray<T> extends Array<T | RecursiveArray<T>> { } interface ListOfRecursiveArraysOrValues<T> extends List<T | RecursiveArray<T>> { } // _.flatMap interface LoDashStatic { /** * Creates an array of flattened values by running each element in collection through iteratee * and concating its result to the other mapped values. The iteratee is invoked with three arguments: * (value, index|key, collection). * * @param collection The collection to iterate over. * @param iteratee The function invoked per iteration. * @return Returns the new flattened array. */ flatMap<T, TResult>( collection: List<T>, iteratee?: ListIterator<T, TResult|TResult[]> ): TResult[]; /** * @see _.flatMap */ flatMap<TResult>( collection: List<any>, iteratee?: ListIterator<any, TResult|TResult[]> ): TResult[]; /** * @see _.flatMap */ flatMap<T, TResult>( collection: Dictionary<T>, iteratee?: DictionaryIterator<T, TResult|TResult[]> ): TResult[]; /** * @see _.flatMap */ flatMap<TResult>( collection: Dictionary<any>, iteratee?: DictionaryIterator<any, TResult|TResult[]> ): TResult[]; /** * @see _.flatMap */ flatMap<T, TResult>( collection: NumericDictionary<T>, iteratee?: NumericDictionaryIterator<T, TResult|TResult[]> ): TResult[]; /** * @see _.flatMap */ flatMap<TResult>( collection: NumericDictionary<any>, iteratee?: NumericDictionaryIterator<any, TResult|TResult[]> ): TResult[]; /** * @see _.flatMap */ flatMap<TObject extends Object, TResult>( collection: TObject, iteratee?: ObjectIterator<any, TResult|TResult[]> ): TResult[]; /** * @see _.flatMap */ flatMap<TResult>( collection: Object, iteratee?: ObjectIterator<any, TResult|TResult[]> ): TResult[]; /** * @see _.flatMap */ flatMap<TWhere extends Object, TObject extends Object>( collection: TObject, iteratee: TWhere ): boolean[]; /** * @see _.flatMap */ flatMap<TObject extends Object, TResult>( collection: TObject, iteratee: Object|string ): TResult[]; /** * @see _.flatMap */ flatMap<TObject extends Object>(