(arr: T[]|goog.array.ArrayLike, keyFunc: { (_0: T, _1: number, _2: any): string }, opt_obj?: any): { [key: string]: any /*missing*/ };
/**
* Creates a range of numbers in an arithmetic progression.
*
* Range takes 1, 2, or 3 arguments:
*
* range(5) is the same as range(0, 5, 1) and produces [0, 1, 2, 3, 4]
* range(2, 5) is the same as range(2, 5, 1) and produces [2, 3, 4]
* range(-2, -5, -1) produces [-2, -3, -4]
* range(-2, -5, 1) produces [], since stepping by 1 wouldn't ever reach -5.
*
*
* @param {number} startOrEnd The starting value of the range if an end argument
* is provided. Otherwise, the start value is 0, and this is the end value.
* @param {number=} opt_end The optional end value of the range.
* @param {number=} opt_step The step size between range values. Defaults to 1
* if opt_step is undefined or 0.
* @return {!Array.} An array of numbers for the requested range. May be
* an empty array if adding the step would not converge toward the end
* value.
*/
function range(startOrEnd: number, opt_end?: number, opt_step?: number): number[];
/**
* Returns an array consisting of the given value repeated N times.
*
* @param {VALUE} value The value to repeat.
* @param {number} n The repeat count.
* @return {!Array.} An array with the repeated value.
* @template VALUE
*/
function repeat(value: VALUE, n: number): VALUE[];
/**
* Returns an array consisting of every argument with all arrays
* expanded in-place recursively.
*
* @param {...*} var_args The values to flatten.
* @return {!Array} An array containing the flattened values.
*/
function flatten(...var_args: any[]): any[];
/**
* Rotates an array in-place. After calling this method, the element at
* index i will be the element previously at index (i - n) %
* array.length, for all values of i between 0 and array.length - 1,
* inclusive.
*
* For example, suppose list comprises [t, a, n, k, s]. After invoking
* rotate(array, 1) (or rotate(array, -4)), array will comprise [s, t, a, n, k].
*
* @param {!Array.} array The array to rotate.
* @param {number} n The amount to rotate.
* @return {!Array.} The array.
* @template T
*/
function rotate(array: T[], n: number): T[];
/**
* Moves one item of an array to a new position keeping the order of the rest
* of the items. Example use case: keeping a list of JavaScript objects
* synchronized with the corresponding list of DOM elements after one of the
* elements has been dragged to a new position.
* @param {!(Array|Arguments|{length:number})} arr The array to modify.
* @param {number} fromIndex Index of the item to move between 0 and
* {@code arr.length - 1}.
* @param {number} toIndex Target index between 0 and {@code arr.length - 1}.
*/
function moveItem(arr: any[]|Arguments|{ length: number }, fromIndex: number, toIndex: number): void;
/**
* Creates a new array for which the element at position i is an array of the
* ith element of the provided arrays. The returned array will only be as long
* as the shortest array provided; additional values are ignored. For example,
* the result of zipping [1, 2] and [3, 4, 5] is [[1,3], [2, 4]].
*
* This is similar to the zip() function in Python. See {@link
* http://docs.python.org/library/functions.html#zip}
*
* @param {...!goog.array.ArrayLike} var_args Arrays to be combined.
* @return {!Array.} A new array of arrays created from provided arrays.
*/
function zip(...var_args: goog.array.ArrayLike[]): any[][];
/**
* Shuffles the values in the specified array using the Fisher-Yates in-place
* shuffle (also known as the Knuth Shuffle). By default, calls Math.random()
* and so resets the state of that random number generator. Similarly, may reset
* the state of the any other specified random number generator.
*
* Runtime: O(n)
*
* @param {!Array} arr The array to be shuffled.
* @param {function():number=} opt_randFn Optional random function to use for
* shuffling.
* Takes no arguments, and returns a random number on the interval [0, 1).
* Defaults to Math.random() using JavaScript's built-in Math library.
*/
function shuffle(arr: any[], opt_randFn?: { (): number }): void;
}