/// interface underscore { value(): any; valueOf(): any; toJSON(): any; toString(): string; VERSION: string; iteratee(value, context): any; each(obj, iteratee, context): any; forEach(obj, iteratee, context): any; map(obj, iteratee, context); collect(obj, iteratee, context); reduce(): (obj, iteratee, memo, context) => any; foldl(): (obj, iteratee, memo, context) => any; inject(): (obj, iteratee, memo, context) => any; reduceRight(): (obj, iteratee, memo, context) => any; foldr(): (obj, iteratee, memo, context) => any; find(obj, predicate, context); detect(obj, predicate, context); filter(obj, predicate, context); select(obj, predicate, context); reject(obj, predicate, context); every(obj, predicate, context): boolean; all(obj, predicate, context): boolean; some(obj, predicate, context): boolean; any(obj, predicate, context): boolean; contains(obj, item, fromIndex, guard): boolean; includes(obj, item, fromIndex, guard): boolean; include(obj, item, fromIndex, guard): boolean; invoke(obj, method); pluck(obj, key); where(obj, attrs); findWhere(obj, attrs); max(obj, iteratee, context); min(obj, iteratee, context); shuffle(obj); sample(obj, n, guard); sortBy(obj, iteratee, context); groupBy(obj, iteratee, context); indexBy(obj, iteratee, context); countBy(obj, iteratee, context); toArray(obj); size(obj): number; partition(obj, predicate, context); first(array, n, guard); head(array, n, guard); take(array, n, guard); initial(array, n, guard); last(array, n, guard); rest(array, n, guard); tail(array, n, guard); drop(array, n, guard); compact(array); flatten(array, shallow); without(array); uniq(array, isSorted, iteratee, context); unique(array, isSorted, iteratee, context); union(); intersection(array); difference(array); zip(); unzip(array); object(list, values); findIndex(array, predicate, context); findLastIndex(array, predicate, context); sortedIndex(array, obj, iteratee, context); indexOf(array, item, idx): number; lastIndexOf(array, item, idx): number; range(start, stop, step); bind(func, context); partial(func); bindAll(obj); memoize(func, hasher); delay(func, wait); defer(); throttle(func, wait, options); debounce(func, wait, immediate); wrap(func, wrapper); negate(predicate); compose(); after(times, func); before(times, func); once(); keys(obj); allKeys(obj); values(obj); mapObject(obj, iteratee, context); pairs(obj); invert(obj); extend(obj); extendOwn(obj); assign(obj); findKey(obj, predicate, context); pick(object, oiteratee, context); omit(obj, iteratee, context); defaults(obj); create(prototype, props); clone(obj); tap(obj, interceptor); isMatch(object, attrs): boolean; isEqual(a, b): boolean; isEmpty(obj): boolean; isElement(obj): boolean; isArray(obj): boolean; isObject(obj); isFinite(obj); isNaN(obj); isBoolean(obj); isNull(obj); isUndefined(obj); has(obj, key); noConflict(); identity(value); constant(value); noop(); property(key); propertyOf(obj); matcher(attrs); matches(attrs); times(n, iteratee, context); random(min, max); escape(string: string): string; unescape(string: string): string; result(object, property, fallback); uniqueId(prefix); template(text, settings, oldSettings); chain(obj); mixin(obj); pop(obj); push(obj, item1, ...items); reverse(obj); shift(obj); sort(obj, sortfunction?); splice(obj, start, deleteCount?); splice(obj, start, deleteCount, ...items); unshift(obj, item1, ...items); concat(obj, item1, ...items); join(obj, separator?); slice(obj, start, end?); } declare var _: underscore;