import _ = require("../index"); declare module "../index" { // add interface LoDashStatic { /** * Adds two numbers. * * @param augend The first number to add. * @param addend The second number to add. * @return Returns the sum. */ add( augend: number, addend: number ): number; } interface LoDashImplicitWrapper { /** * @see _.add */ add(addend: number): number; } interface LoDashExplicitWrapper { /** * @see _.add */ add(addend: number): LoDashExplicitWrapper; } // ceil interface LoDashStatic { /** * Calculates n rounded up to precision. * * @param n The number to round up. * @param precision The precision to round up to. * @return Returns the rounded up number. */ ceil( n: number, precision?: number ): number; } interface LoDashImplicitWrapper { /** * @see _.ceil */ ceil(precision?: number): number; } interface LoDashExplicitWrapper { /** * @see _.ceil */ ceil(precision?: number): LoDashExplicitWrapper; } // divide interface LoDashStatic { /** * Divide two numbers. * * @param dividend The first number in a division. * @param divisor The second number in a division. * @returns Returns the quotient. */ divide( dividend: number, divisor: number ): number; } interface LoDashImplicitWrapper { /** * @see _.divide */ divide(divisor: number): number; } interface LoDashExplicitWrapper { /** * @see _.divide */ divide(divisor: number): LoDashExplicitWrapper; } // floor interface LoDashStatic { /** * Calculates n rounded down to precision. * * @param n The number to round down. * @param precision The precision to round down to. * @return Returns the rounded down number. */ floor( n: number, precision?: number ): number; } interface LoDashImplicitWrapper { /** * @see _.floor */ floor(precision?: number): number; } interface LoDashExplicitWrapper { /** * @see _.floor */ floor(precision?: number): LoDashExplicitWrapper; } // max interface LoDashStatic { /** * Computes the maximum value of `array`. If `array` is empty or falsey * `undefined` is returned. * * @category Math * @param array The array to iterate over. * @returns Returns the maximum value. */ max( collection: List | null | undefined ): T | undefined; } interface LoDashImplicitWrapper { /** * @see _.max */ max(this: LoDashImplicitWrapper | null | undefined>): T | undefined; } interface LoDashExplicitWrapper { /** * @see _.max */ max(this: LoDashExplicitWrapper | null | undefined>): LoDashExplicitWrapper; } // maxBy interface LoDashStatic { /** * This method is like `_.max` except that it accepts `iteratee` which is * invoked for each element in `array` to generate the criterion by which * the value is ranked. The iteratee is invoked with one argument: (value). * * @category Math * @param array The array to iterate over. * @param iteratee The iteratee invoked per element. * @returns Returns the maximum value. * @example * * var objects = [{ 'n': 1 }, { 'n': 2 }]; * * _.maxBy(objects, function(o) { return o.a; }); * // => { 'n': 2 } * * // using the `_.property` iteratee shorthand * _.maxBy(objects, 'n'); * // => { 'n': 2 } */ maxBy( collection: List | null | undefined, iteratee?: ValueIteratee ): T | undefined; } interface LoDashImplicitWrapper { /** * @see _.maxBy */ maxBy( this: LoDashImplicitWrapper | null | undefined>, iteratee?: ValueIteratee ): T | undefined; } interface LoDashExplicitWrapper { /** * @see _.maxBy */ maxBy( this: LoDashExplicitWrapper | null | undefined>, iteratee?: ValueIteratee ): LoDashExplicitWrapper; } // mean interface LoDashStatic { /** * Computes the mean of the values in `array`. * * @category Math * @param array The array to iterate over. * @returns Returns the mean. * @example * * _.mean([4, 2, 8, 6]); * // => 5 */ mean( collection: List | null | undefined ): number; } interface LoDashImplicitWrapper { /** * @see _.mean */ mean(): number; } interface LoDashExplicitWrapper { /** * @see _.mean */ mean(): LoDashExplicitWrapper; } // meanBy interface LoDashStatic { /** * Computes the mean of the provided propties of the objects in the `array` * * @category Math * @param array The array to iterate over. * @param iteratee The iteratee invoked per element. * @returns Returns the mean. * @example * * _.mean([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], 'n'); * // => 5 */ meanBy( collection: List | null | undefined, iteratee?: ValueIteratee ): number; } interface LoDashImplicitWrapper { /** * @see _.meanBy */ meanBy( this: LoDashImplicitWrapper | null | undefined>, iteratee?: ValueIteratee ): number; } interface LoDashExplicitWrapper { /** * @see _.meanBy */ meanBy( this: LoDashExplicitWrapper | null | undefined>, iteratee?: ValueIteratee ): LoDashExplicitWrapper; } // min interface LoDashStatic { /** * Computes the minimum value of `array`. If `array` is empty or falsey * `undefined` is returned. * * @category Math * @param array The array to iterate over. * @returns Returns the minimum value. */ min( collection: List | null | undefined ): T | undefined; } interface LoDashImplicitWrapper { /** * @see _.min */ min(this: LoDashImplicitWrapper | null | undefined>): T | undefined; } interface LoDashExplicitWrapper { /** * @see _.min */ min(this: LoDashExplicitWrapper | null | undefined>): LoDashExplicitWrapper; } // minBy interface LoDashStatic { /** * This method is like `_.min` except that it accepts `iteratee` which is * invoked for each element in `array` to generate the criterion by which * the value is ranked. The iteratee is invoked with one argument: (value). * * @category Math * @param array The array to iterate over. * @param iteratee The iteratee invoked per element. * @returns Returns the minimum value. * @example * * var objects = [{ 'n': 1 }, { 'n': 2 }]; * * _.minBy(objects, function(o) { return o.a; }); * // => { 'n': 1 } * * // using the `_.property` iteratee shorthand * _.minBy(objects, 'n'); * // => { 'n': 1 } */ minBy( collection: List | null | undefined, iteratee?: ValueIteratee ): T | undefined; } interface LoDashImplicitWrapper { /** * @see _.minBy */ minBy( this: LoDashImplicitWrapper | null | undefined>, iteratee?: ValueIteratee ): T | undefined; } interface LoDashExplicitWrapper { /** * @see _.minBy */ minBy( this: LoDashExplicitWrapper | null | undefined>, iteratee?: ValueIteratee ): LoDashExplicitWrapper; } // multiply interface LoDashStatic { /** * Multiply two numbers. * @param multiplier The first number in a multiplication. * @param multiplicand The second number in a multiplication. * @returns Returns the product. */ multiply( multiplier: number, multiplicand: number ): number; } interface LoDashImplicitWrapper { /** * @see _.multiply */ multiply(multiplicand: number): number; } interface LoDashExplicitWrapper { /** * @see _.multiply */ multiply(multiplicand: number): LoDashExplicitWrapper; } // round interface LoDashStatic { /** * Calculates n rounded to precision. * * @param n The number to round. * @param precision The precision to round to. * @return Returns the rounded number. */ round( n: number, precision?: number ): number; } interface LoDashImplicitWrapper { /** * @see _.round */ round(precision?: number): number; } interface LoDashExplicitWrapper { /** * @see _.round */ round(precision?: number): LoDashExplicitWrapper; } // subtract interface LoDashStatic { /** * Subtract two numbers. * * @category Math * @param minuend The first number in a subtraction. * @param subtrahend The second number in a subtraction. * @returns Returns the difference. * @example * * _.subtract(6, 4); * // => 2 */ subtract( minuend: number, subtrahend: number ): number; } interface LoDashImplicitWrapper { /** * @see _.subtract */ subtract( subtrahend: number ): number; } interface LoDashExplicitWrapper { /** * @see _.subtract */ subtract( subtrahend: number ): LoDashExplicitWrapper; } // sum interface LoDashStatic { /** * Computes the sum of the values in `array`. * * @category Math * @param array The array to iterate over. * @returns Returns the sum. * @example * * _.sum([4, 2, 8, 6]); * // => 20 */ sum(collection: List | null | undefined): number; } interface LoDashImplicitWrapper { /** * @see _.sum */ sum(): number; } interface LoDashExplicitWrapper { /** * @see _.sum */ sum(): LoDashExplicitWrapper; } // sumBy interface LoDashStatic { /** * This method is like `_.sum` except that it accepts `iteratee` which is * invoked for each element in `array` to generate the value to be summed. * The iteratee is invoked with one argument: (value). * * @category Math * @param array The array to iterate over. * @param [iteratee=_.identity] The iteratee invoked per element. * @returns Returns the sum. * @example * * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }]; * * _.sumBy(objects, function(o) { return o.n; }); * // => 20 * * // using the `_.property` iteratee shorthand * _.sumBy(objects, 'n'); * // => 20 */ sumBy( collection: List | null | undefined, iteratee?: ((value: T) => number) | string ): number; } interface LoDashImplicitWrapper { /** * @see _.sumBy */ sumBy( this: LoDashImplicitWrapper | null | undefined>, iteratee?: ((value: T) => number) | string ): number; } interface LoDashExplicitWrapper { /** * @see _.sumBy */ sumBy( this: LoDashExplicitWrapper | null | undefined>, iteratee?: ((value: T) => number) | string ): LoDashExplicitWrapper; } }