declare global { interface Number { clamp(min: number, max: number): number; toM: Function; toMM: Function; similar: Function; round(fn: number): number; roundX(fn: number, n: number): number; toHex(): string; toArr(call?: (i: number) => any): any[]; toZw(): string; bite2Size(): string; toCn(): string; toHk(): string; toCn_f(): string; toHk_f(): string; } interface Array { treeFind(callValue: (t: T, l: number) => boolean, ckey?: string): T; treeFinds(callValue: (t: T, l: number) => boolean, ckey?: string): Array; /** 查询包含父对象的集合 */ treeFindPs(callValue: (t: T) => boolean, ckey?: string): Array; /** unChild 是否不考虑子对象 */ treeFilter(callValue: (t: T) => boolean, unChild?: boolean, ckey?: string): Array; treeForEach(callValue: (t: T, index: number, lv: number) => void, ckey?: string): Array; treeForEach_async(callValue: (t: T, index: number, lv: number) => void, ckey?: string): Promise>; /** 逐级 next返回 */ treeForEach_async_next(callValue: (t: T, index: number, lv: number) => void, ckey?: string): Promise>; /** 从最深的子对象开始返回 */ treeForEach_after(callValue: (t: T, index: number, lv: number) => void, ckey?: string): Array; /** 从最深的子对象开始返回 */ treeForEach_after_async(callValue: (t: T, index: number, lv: number) => void, ckey?: string): Promise>; treeToRecord(key?: string | number, callUnAble?: (t: T) => boolean, ckey?: string): Record; forof(callValue: (t: T) => boolean): T; fordo(callValue: (v: T, t: T) => void): T; fornum(callValue: (v: T) => number): number; formax(callValue: (v: T) => number): number; toFloat32Array(): Float32Array; toFloat32Array2(): Float32Array; vClone(): number[]; vIsEqual(v: number[]): boolean; vNormalize(): number[]; vDistance(v: number[]): number; vDistanceSq(v: number[]): number; vDot(v: number[]): number; vLength(): number; vLengthSq(): number; vAdd(v: number[]): number[]; vAddNew(v: number[]): number[]; vSub(v: number[]): number[]; vSubNew(v: number[]): number[]; vNegate(): number[]; vScale(n: number): number[]; vScaleNew(n: number): number[]; vEqualTo(v: number[]): boolean; vMultiply(v: number[]): number[]; vMultiplyNew(v: number[]): number[]; vDivide(v: number[]): number[]; vDivideNew(v: number[]): number[]; vMin(v: number[]): number[]; vMinNew(v: number[]): number[]; vMax(v: number[]): number[]; vMaxNew(v: number[]): number[]; vRound(v: number): number[]; vRoundNew(v: number): number[]; vAbs(): number[]; vAbsNew(): number[]; v2Angle(): number; v2Cross(v: number[]): number; v2ClosestPtTo(v: number[]): number; v2Rotate(v: number): number[]; v3Cross(v: number[], vNew?: number[]): number[]; v3Angle(v: number[]): number; v3ApplyQua(q: number[]): number[]; qNormalize(): number[]; qConjugate(): number[]; qMultiplyNew(q: number[]): number[]; qFromV3Tov3(v: number[]): number[]; qFromAxisAngle(axis: number[], angle: number): number[]; mSet(i: number, j: number, value: number): number[][]; indexElements(): any; toV2_yi(): Array; toV2a_yi(): Array; vec3ToArr(closed?: boolean): number[] | number[][]; vecToArr(closed?: boolean): number[] | number[][]; vecToArr2(closed?: boolean, precision?: number): number[][] | number[][][]; vecToArr3Y(closed?: boolean): number[] | number[][]; vecToArr3Z(closed?: boolean): number[] | number[][]; } } declare function toA3Arr(data: Float32Array): number[][]; declare function vClone(v: number[]): number[]; declare function vIsEqual(v0: number[], v1: number[]): boolean; declare function vLength(v: number[]): number; declare function vLengthSq(v: number[]): number; declare function vNormalize(v: number[]): number[]; declare function vDistance(v0: number[], v1: number[]): number; declare function vDistanceSq(v0: number[], v1: number[]): number; declare function vDot(v0: number[], v1: number[]): number; declare function vAdd(v0: number[], v1: number[]): number[]; declare function vAddNew(v0: number[], v1: number[]): number[]; declare function vSub(v0: number[], v1: number[]): number[]; declare function vSubNew(v0: number[], v1: number[]): number[]; declare function vNegate(v: number[]): number[]; declare function vScale(v: number[], n: number): number[]; declare function vScaleNew(v: number[], n: number): number[]; declare function vEqualTo(v0: number[], v1: number[]): boolean; declare function v2Angle(v: number[]): number; declare function v2ClosestPtTo(v0: number[], v1: number[]): number; declare function v2Cross(v0: number[], v1: number[]): number; declare function vMultiply(v0: number[], v1: number[]): number[]; declare function vMultiplyNew(v0: number[], v1: number[]): number[]; declare function v2Rotate(v: number[], a: number): number[]; declare function v3Cross(v0: number[], v1: number[], v2?: number[]): number[]; declare function v3Angle(v0: number[], v1: number[]): number; declare function v3ApplyQua(v: number[], q: number[]): number[]; declare function qFromV3Tov3(v0: number[], v1: number[]): number[]; declare function qNormalize(q: number[]): number[]; declare function qConjugate(q: number[]): number[]; declare function qMultiplyNew(a: number[], b: number[]): number[]; declare function qFromAxisAngle(axis: number[], angle: number): number[]; declare function mSet(m: number[][], i: number, j: number, value: number): number[][]; declare function indexElements(elementList: any[]): any; declare function toV2a_yi(v2s: any[]): void; declare function toV2_yi(v2s: any[]): void; declare function vecToArr2(v2s: any[], closed?: boolean, _precision?: number): number[][] | number[][][]; declare function vec3ToArr(arr: any[], closed?: boolean): number[] | number[][]; declare function vecToArr(arr: any[], closed?: boolean): number[] | number[][]; declare function vecToArr3Y(arr: any[], closed?: boolean): number[] | number[][]; declare function vecToArr3Z(arr: any[], closed?: boolean): number[] | number[][]; export { toV2_yi, toV2a_yi, toA3Arr, indexElements, vec3ToArr, vecToArr, vecToArr2, vecToArr3Y, vecToArr3Z }; export { vClone, vIsEqual, vLength, vLengthSq, vNormalize, vDistance, vDistanceSq, vDot, vAdd, vAddNew, vSubNew, vSub, vNegate, vScaleNew, vEqualTo, vScale, v2Angle, v2ClosestPtTo, v2Cross, vMultiply, vMultiplyNew, v2Rotate, v3Cross, v3Angle, qFromV3Tov3, qNormalize, qConjugate, v3ApplyQua, qMultiplyNew, qFromAxisAngle, mSet };