interface String { capitalize(): string; uncapitalize(): string; column2field(): string; field2column(): string; random(len: number): string; } interface Func { (t: T, index: number, array: T[]): T[]; } interface Key { (val: T, index: number, array: T[]): string; } interface Value { (val: T, index: number, array: T[]): any; } interface Compare { (v1: T, v2: T): boolean; } interface Array { shuffle(): this; random(size: number): Array; randomExtract(): T; map2obj(key: keyof T | Key, value?: string | Value): Object; mapping(key: keyof T | Function, value?: Function): Map; group(key: keyof T | Function, value?: Function): Map>; sum(prop?: keyof T | Function): number; max(prop?: keyof T | Function): number; min(prop?: keyof T | Function): number; average(prop?: keyof T | Function): number; getIndex(item: T, compare?: string | Compare): Number; distinct(prop?: keyof T | Function): Array; duplication(prop?: keyof T | Function): Array; intersection(array: any[], prop?: keyof T | Function): Array; union(array: any[], prop?: keyof T | Function): Array; difference(array: any[], prop?: keyof T | Function): Array; remove(...items: T[]): T[]; } interface Math { add(a: number, b: number): number; sub(a: number, b: number): number; multiply(a: number, b: number): number; divide(a: number, b: number): number; } interface Number { toChines(): string; } interface Date { format(fmt: string): string; } interface JSON2 { parse(json: string): any; stringify(obj: any): string; } declare const convert: (prop?: string | Function) => (e: any) => any; declare const getDecimalsPlace: (num: string) => number;