declare namespace xutils { export type TlogTypes = "log" | "warn" | "error" | "onerror" | "attention" | "debug" | "alert" | "stack" | "errorTrace" export type TlogMode = "on" | "off" export type TloopCallback = (index: number) => any export type CB = () => any export interface WithHoc extends FunctionConstructor{ (...args:any):any } export type CallbackEval = () => boolean export interface TypeCheck { type: string value: number primitiveValue: any } export interface SimpleQ extends Promise { // [name?:string]: Promise entity?: string progress(cb: (value: "resolved" | "rejected" | "in_progress" | "timeout", time?:number) => void, every?: number, timeout?: number): SimpleQ resolve(arg: any): SimpleQ reject(arg: any): SimpleQ promise: Promise } export interface CancelPromiseProps { //{ error, defer, id } defer: Promise checkEvery: number maxWait: number id: string | number message?: string logging?: boolean cbErr(arg: { error: string, defer: { resolve: ()=>any, reject: ()=>any }, id: string | number }): void } export interface Dispatcher { subscribe(cb: (data: any, uid: string, index: number) => void): Dispatcher onComplete(cb: (uid: string) => void): Dispatcher next(data: any): Dispatcher delete(): Dispatcher isActive(): boolean } export interface Xrequire{ (id:string | URL, dir?:string, ref?: 'ERR_NO_THROW' | undefined): any } export interface XReferenceOpts{ name?:string message?:string fileName?:string lineNumber?:number columnNumber?:number } export interface TXReferenceError extends ReferenceErrorConstructor{ lineNumber?:number fileName?:string columnNumber?:number } export interface IXErrorOpts{ id?:string|number name?:string message?:string fileName?:string lineNumber?:number } export interface TXError extends ErrorConstructor{ id?:string|number name?:string message?:string fileName?:string lineNumber?:number } // logging types export function disableLogging(): boolean export function resetLogging(): boolean export function loggerSetting(logType: TlogTypes, logMode?: TlogMode): boolean export function checkLoggerSetting(logType: TlogTypes): TlogMode export function loggingON(): boolean export function log(...any:any): any export function attention(...any:any): any export function debug(...any:any): any export function alert(...any:any): any export function stack(data: any, asArray: boolean): any export function errorTrace(data: any, asArray: boolean): any export function warn(...any:any): any export function error(...any:any): any export function onerror(...any:any): any export function isFunction(el: any): boolean export function isArray(arr: any, cbEval?: CallbackEval): boolean export function isBigInt(n: any): boolean export function loop(size: number, cb: TloopCallback): Array export function validDate(dt: any, cbEval?: CallbackEval): boolean export function arraySize(arr: any): number export function typeCheck(el: any, standard?: boolean): TypeCheck export function isError(el: any): boolean export function isFalse(el: any): boolean export function isTrue(el: any): boolean export function isBoolean(el: any): boolean export function isNull(el: any): boolean export function isUndefined(el): boolean export function isEmpty(value: any): boolean export function head(arr: Array): any export function last(arr: Array): any export function timer(cb: CB, time?: number): void export function interval(cb: CB, every?: number, endTime?: number): void export function sq(): SimpleQ export function cancelPromise(options: CancelPromiseProps): Promise export function validID(id: string): string export function isNumber(n: any): boolean export function isDate(d: any): boolean export function stringSize(str: string): number export function isQPromise(defer: any): boolean export function isSQ(defer: any): boolean export function isPromise(defer: any): boolean export function isObject(obj: any, cbEval?: CallbackEval): boolean export function uniq(arr: Array): Array export function shuffle(arr: Array): Array export function selectiveArray(selectBy: Array, data: Array): Array<[]> export function isClass(obj: object, cbEval?: CallbackEval): boolean export function hasPrototype(obj: object, cbEval?: CallbackEval): boolean export function hasProto(el: object, cbEval?: CallbackEval): boolean export function isRegExp(expression: RegExp): boolean export function isInstance(obj: any, cbEval?: CallbackEval): boolean export function objectSize(obj: any): number export function isFalsy(el: any): boolean export function isString(str: any, cbEval?: CallbackEval): boolean export function copyBy(obj: object, refs: Array): object export function copy(data: any): any export function asJson(data: any): string export function copyDeep(data: any): any export function delay(time?: number): Promise export function someKeyMatch(object: object, source: object, cbEval?: CallbackEval): boolean export function exactKeyMatch(object: object, source: object, cbEval?: CallbackEval): boolean export function trueVal(arr: Array): Array export function trueValDeep(arr: Array): Array export function trueProp(obj: object): object export function resolver(fn: CB, timeout?: number, testEvery?: number): Promise export function flatten(arr: Array): Array export function flattenDeep(arr: Array): Array export function chunks(arr: Array, size: number): Array<[]> export function dupes(item: any, index: number): Array export function uniqBy(arr: Array, propName: string): Array export function arrayWith(arr: Array, prop: string): Array export function exFromArray(arr: Array, excludes: Array): Array export function pickFromArray(arr: Array, picks: Array): Array export function dispatcher(uid?: string | number, debug?: boolean): Dispatcher export function withHoc(item: WithHoc, ...args: any): WithHoc export function truthFul(obj: object): object export const xrequire:Xrequire export function inIndex(str: string, patterns: Array): number export function matched(str: string, expression: RegExp): boolean export function referenceError(opts?:XReferenceOpts):TXReferenceError export function xError(opts?:IXErrorOpts):TXError export function noop():void export function trim(str:string):string export function includes(id:any, arr:Array):boolean export function unsubscribe(subscriptions:Array, message?:string):boolean export function objectIterateWith(obj:object,props:Array):object export function spread(obj:object,props:Array):object export function spreadWith(arr:Array,props:Array):Array } export as namespace xutils export {xutils}