| 
						 | 
						- export = utility;
 - export as namespace utility;
 - 
 - 
 - // ---------------------------------
 - /**
 -  * @description Types definition by github@ddzy
 -  * @see https://github.com/node-modules/utility
 -  */
 - // ------------------------------------
 - 
 - 
 - declare namespace utility {
 - 
 -   /**
 -    * ---------------0_0----------------
 -    * @description Defines For Array
 -    * @see https://github.com/node-modules/utility
 -    * ---------------0^0----------------
 -    */
 - 
 - 
 -   /**
 -    * Static object define
 -    */
 -   type ObjStatic = { [key: string]: any };
 - 
 - 
 -   /**
 -    * Array random slice with items count.
 -    * @param {Array} arr
 -    * @param {Number} num, number of sub items.
 -    * @return {Array}
 -    */
 -   function randomSlice(
 -     arr: any[],
 -     num?: number,
 -   ): any[];
 - 
 -   /**
 -    * Remove one exists element from an array
 -    * @param {Array} arr
 -    * @param  {Number} index - remove element index
 -    * @return {Array} the array instance
 -    */
 -   function spliceOne(
 -     arr: any[],
 -     index: number,
 -   ): any[];
 - 
 - 
 -   /**
 -    * --------------------0_0----------------
 -    * @description Defines For Crypto
 -    * @see https://github.com/node-modules/utility#md5
 -    * --------------0^0------------------
 -    */
 - 
 - 
 -   /**
 -    * hash
 -    *
 -    * @param {String} method hash method, e.g.: 'md5', 'sha1'
 -    * @param {String|Buffer|Object} s
 -    * @param {String} [format] output string format, could be 'hex' or 'base64'. default is 'hex'.
 -    * @return {String} md5 hash string
 -    * @public
 -    */
 -   function hash(
 -     method: 'md5' | 'sha1',
 -     s: string | Buffer | Object,
 -     format?: 'hex' | 'base64',
 -   ): string;
 - 
 -   /**
 -    * md5 hash
 -    *
 -    * @param {String|Buffer|Object} s
 -    * @param {String} [format] output string format, could be 'hex' or 'base64'. default is 'hex'.
 -    * @return {String} md5 hash string
 -    * @public
 -    */
 -   function md5(
 -     s: string | Buffer | Object,
 -     format?: 'hex' | 'base64',
 -   ): string;
 - 
 -   /**
 -    * sha1 hash
 -    *
 -    * @param {String|Buffer|Object} s
 -    * @param {String} [format] output string format, could be 'hex' or 'base64'. default is 'hex'.
 -    * @return {String} sha1 hash string
 -    * @public
 -    */
 -   function sha1(
 -     s: string | Buffer | Object,
 -     format?: 'hex' | 'base64',
 -   ): string;
 - 
 -   /**
 -    * sha256 hash
 -    *
 -    * @param {String|Buffer|Object} s
 -    * @param {String} [format] output string format, could be 'hex' or 'base64'. default is 'hex'.
 -    * @return {String} sha256 hash string
 -    * @public
 -    */
 -   function sha256(
 -     s: string | Buffer | Object,
 -     format?: 'hex' | 'base64',
 -   ): string;
 - 
 -   /**
 -    * HMAC algorithm.
 -    *
 -    * Equal bash:
 -    *
 -    * ```bash
 -    * $ echo -n "$data" | openssl dgst -binary -$algorithm -hmac "$key" | openssl $encoding
 -    * ```
 -    *
 -    * @param {String} algorithm, dependent on the available algorithms supported by the version of OpenSSL on the platform.
 -    *   Examples are 'sha1', 'md5', 'sha256', 'sha512', etc.
 -    *   On recent releases, `openssl list-message-digest-algorithms` will display the available digest algorithms.
 -    * @param {String} key, the hmac key to be used.
 -    * @param {String|Buffer} data, content string.
 -    * @param {String} [encoding='base64']
 -    * @return {String} digest string.
 -    */
 -   function hmac(
 -     algorithm: string,
 -     key: string,
 -     data: string | Buffer,
 -     encoding?: 'base64' | string,
 -   ): string;
 - 
 -   /**
 -    * Base64 encode string.
 -    *
 -    * @param {String|Buffer} s
 -    * @param {Boolean} [urlsafe=false] Encode string s using a URL-safe alphabet,
 -    *   which substitutes - instead of + and _ instead of / in the standard Base64 alphabet.
 -    * @return {String} base64 encode format string.
 -    */
 -   function base64encode(
 -     s: string | Buffer,
 -     urlsafe?: boolean,
 -   ): string;
 - 
 -   /**
 -    * Base64 string decode.
 -    *
 -    * @param {String} encode, base64 encoding string.
 -    * @param {Boolean} [urlsafe=false] Decode string s using a URL-safe alphabet,
 -    *   which substitutes - instead of + and _ instead of / in the standard Base64 alphabet.
 -    * @param {encoding} [encoding=utf8] if encoding = buffer, will return Buffer instance
 -    * @return {String|Buffer} plain text.
 -    */
 -   function base64decode(
 -     encode: string,
 -     urlsafe?: boolean,
 -     encoding?: 'utf8' | 'buffer',
 -   ): string | Buffer;
 - 
 - 
 -   /**
 -    * ----------------0_0-----------------
 -    * @description Defines For Date
 -    * @see https://github.com/node-modules/utility#date-utils
 -    * ---------------0^0------------------
 -    */
 - 
 - 
 -   interface IYYYYMMDDHHmmssStaticOptions {
 -     dateSep?: string,
 -     timeSep?: string,
 -   }
 -   interface IDateStructStaticReturns {
 -     YYYYMMDD: number,
 -     H: number,
 -   }
 - 
 -   /**
 -    * Access log format date. format: `moment().format('DD/MMM/YYYY:HH:mm:ss ZZ')`
 -    *
 -    * @return {String}
 -    */
 -   function accessLogDate(d: Date): string;
 - 
 -   /**
 -    * Normal log format date. format: `moment().format('YYYY-MM-DD HH:mm:ss.SSS')`
 -    *
 -    * @return {String}
 -    */
 -   function logDate(
 -     d: string | Date,
 -     msSep?: string,
 -   ): string;
 - 
 -   /**
 -    * `moment().format('YYYY-MM-DD HH:mm:ss')` format date string.
 -    *
 -    * @return {String}
 -    */
 -   function YYYYMMDDHHmmss(
 -     d: Date | string,
 -     options?: IYYYYMMDDHHmmssStaticOptions,
 -   ): string;
 - 
 -   /**
 -    * `moment().format('YYYY-MM-DD')` format date string.
 -    *
 -    * @return {String}
 -    */
 -   function YYYYMMDD(
 -     d: string | Date,
 -     sep?: string,
 -   ): string;
 - 
 -   /**
 -    * return datetime struct.
 -    *
 -    * @return {Object} date
 -    *  - {Number} YYYYMMDD, 20130401
 -    *  - {Number} H, 0, 1, 9, 12, 23
 -    */
 -   function datestruct(
 -     now?: Date,
 -   ): IDateStructStaticReturns;
 - 
 -   /**
 -    * Get Unix's timestamp in seconds.
 -    * @return {Number}
 -    */
 -   function timestamp(
 -     t?: string | number,
 -   ): number | Date;
 - 
 - 
 -   /**
 -    * ---------------0_0-------------------
 -    * @description Defines For Function Method
 -    * @see https://github.com/node-modules/utility#others
 -    * ---------------0^0--------------------
 -    */
 - 
 - 
 -   /**
 -    * A empty function.
 -    *
 -    * @return {Function}
 -    * @public
 -    */
 -   function noop(): () => any;
 - 
 -   /**
 -    * Get a function parameter's names.
 -    *
 -    * @param {Function} func
 -    * @param {Boolean} [useCache], default is true
 -    * @return {Array} names
 -    */
 -   function getParamNames(
 -     func: (...args: any[]) => any,
 -     cache?: boolean,
 -   ): string[];
 - 
 - 
 -   /**
 -    * ----------------0_0-----------------------
 -    * @description Defines For JSON methods
 -    * @see https://github.com/node-modules/utility#json
 -    * -----------------0^0-----------------------
 -    */
 - 
 - 
 -   interface IJSONStaticOptions {
 -     space?: number | string,
 -     replacer?: (
 -       key: string,
 -       value: any,
 -     ) => any,
 -   }
 - 
 -   function strictJSONParse(
 -     str: string,
 -   ): ObjStatic;
 - 
 -   function readJSONSync(
 -     filepath: string,
 -   ): ObjStatic;
 - 
 -   function writeJSONSync(
 -     filepath: string,
 -     str: string | ObjStatic,
 -     options?: IJSONStaticOptions,
 -   ): void;
 - 
 -   function readJSON(
 -     filepath: string,
 -   ): Promise<any>;
 - 
 -   function writeJSON(
 -     filepath: string,
 -     str: string | ObjStatic,
 -     options?: IJSONStaticOptions,
 -   ): Promise<any>;
 - 
 -   function mkdir(
 -     dir: string,
 -   ): Promise<any>;
 - 
 - 
 -   /**
 -    * ------------------0_0------------------------
 -    * @description Defines For Number Methods
 -    * @see https://github.com/node-modules/utility#number-utils
 -    * --------------------0^0----------------------
 -    */
 - 
 - 
 -   /**
 -    * CONSTANTS STATIC
 -    */
 -   const MAX_SAFE_INTEGER: number;
 -   const MIN_SAFE_INTEGER: number;
 -   const MAX_SAFE_INTEGER_STR: string;
 -   const MAX_SAFE_INTEGER_STR_LENGTH: number;
 - 
 -   /**
 -    * Detect a number string can safe convert to Javascript Number.
 -    *
 -    * @param {String} s number format string, like `"123"`, `"-1000123123123123123123"`
 -    * @return {Boolean}
 -    */
 -   function isSafeNumberString(
 -     s: string,
 -   ): boolean;
 - 
 -   /**
 -    * Convert string to Number if string in safe Number scope.
 -    *
 -    * @param {String} s number format string.
 -    * @return {Number|String} success will return Number, otherise return the original string.
 -    */
 -   function toSafeNumber(
 -     s: string | number,
 -   ): number | string;
 - 
 -   /**
 -    * Produces a random integer between the inclusive `lower` and `upper` bounds.
 -    *
 -    * @param {Number} lower The lower bound.
 -    * @param {Number} upper The upper bound.
 -    * @return {Number} Returns the random number.
 -    */
 -   function random(
 -     lower?: number,
 -     upper?: number,
 -   ): number;
 - 
 - 
 -   /**
 -    * ------------------0_0--------------------------
 -    * @description Defines For Object Methods
 -    * @see https://github.com/node-modules/utility#objectassign
 -    * -------------------0^0------------------------
 -    */
 - 
 - 
 -   /**
 -    * High performance assign before node6
 -    * @param {Object} target - target object
 -    * @param {Object | Array} objects - object assign from
 -    * @return {Object} - return target object
 -    */
 -   function assign(
 -     target: ObjStatic,
 -     objects: ObjStatic | any[],
 -   ): ObjStatic;
 - 
 -   function has(
 -     obj: ObjStatic,
 -     prop: string,
 -   ): boolean;
 - 
 -   function getOwnEnumerables(
 -     obj: ObjStatic,
 -     ignoreNull?: boolean,
 -   ): string[];
 - 
 -   /**
 -    * generate a real map object(clean object), no constructor, no __proto__
 -    * @param {Object} [obj] - init object, optional
 -    * @return {Object}
 -    */
 -   function map(
 -     obj?: ObjStatic,
 -   ): ObjStatic;
 - 
 - 
 -   /**
 -    * -----------------0_0---------------------------
 -    * @description Defines For Optimize Methods
 -    * @see https://github.com/node-modules/utility#argumentstoarray
 -    * -----------------0^0------------------------
 -    */
 - 
 -   interface ITryStaticReturns {
 -     error: Error | undefined,
 -     value: any,
 -   }
 - 
 -   const UNSTABLE_METHOD: {
 -     /**
 -      * optimize try catch
 -      * @param {Function} fn
 -      * @return {Object}
 -      *   - {Error} error
 -      *   - {Mix} value
 -      */
 -     try: (
 -       fn: (...args: any[]) => any,
 -     ) => ITryStaticReturns,
 -   };
 - 
 -   /**
 -    * avoid if (a && a.b && a.b.c)
 -    * @param {Object} obj
 -    * @param {...String} keys
 -    * @return {Object}
 -    */
 -   function dig(
 -     obj: ObjStatic,
 -     ...args: any[],
 -   ): any;
 - 
 -   /**
 -    * optimize arguments to array
 -    * @param {Arguments} args
 -    * @return {Array}
 -    */
 -   function argumentsToArray(
 -     ...args: any[],
 -   ): any[];
 - 
 - 
 -   /**
 -    * -------------------0_0---------------------
 -    * @description Defines For Polyfill Methods
 -    * @see https://github.com/node-modules/utility#timers
 -    * -------------------0^0-------------------
 -    */
 - 
 - 
 -   function setImmediate(
 -     callback: (...args: any[]) => void,
 -     ...args: any[],
 -   ): NodeJS.Immediate;
 -   function setImmediate(
 -     fn: (...args: any[]) => any,
 -     ...args: any[],
 -   ): void;
 - 
 - 
 -   /**
 -    * ------------------0_0--------------------
 -    * @description Defines For String Methods
 -    * @see https://github.com/node-modules/utility#others
 -    * -------------------0^0---------------------
 -    */
 - 
 - 
 -   interface IReplaceInvalidHttpHeaderCharReturns {
 -     val: string,
 -     invalid: boolean,
 -   }
 - 
 -   function randomString(
 -     length?: number,
 -     charSet?: string | string[],
 -   ): string;
 - 
 -   /**
 -    * split string to array
 -    * @param  {String} str
 -    * @param  {String} [sep] default is ','
 -    * @return {Array}
 -    */
 -   function split(
 -     str: string,
 -     sep?: string,
 -   ): string[];
 - 
 -   /**
 -    * always optimized
 -    */
 -   function splitAlwaysOptimized(
 -     ...args: any[],
 -   ): string[];
 - 
 -   /**
 -    * Replace string
 -    *
 -    * @param  {String} str
 -    * @param  {String|RegExp} substr
 -    * @param  {String|Function} newSubstr
 -    * @return {String}
 -    */
 -   function replace(
 -     str: string,
 -     substr: string | RegExp,
 -     newSubstr: string | ((...args: any[]) => any),
 -   ): string;
 - 
 -   /**
 -    * Replace invalid http header characters with replacement
 -    *
 -    * @param  {String} val
 -    * @param  {String|Function} replacement - can be `function(char)`
 -    * @return {Object}
 -    */
 -   function replaceInvalidHttpHeaderChar(
 -     val: string,
 -     replacement?: string | ((...args: any[]) => any)
 -   ): IReplaceInvalidHttpHeaderCharReturns;
 - 
 -   /**
 -    * Detect invalid http header characters in a string
 -    *
 -    * @param {String} val
 -    * @return {Boolean}
 -    */
 -   function includesInvalidHttpHeaderChar(
 -     val: string,
 -   ): boolean;
 - 
 - 
 -   /**
 -    * ------------------0_0----------------------
 -    * @description Defines For Web Methods
 -    * @see https://github.com/node-modules/utility#decode-and-encode
 -    * ------------------0^0------------------------
 -    */
 - 
 - 
 -   /**
 -    * Escape the given string of `html`.
 -    *
 -    * @param {String} html
 -    * @return {String}
 -    * @public
 -    */
 -   function escape(
 -     test: string,
 -   ): string;
 - 
 -   /**
 -    * Unescape the given string from html
 -    * @param {String} html
 -    * @param {String} type
 -    * @return {String}
 -    * @public
 -    */
 -   function unescape(
 -     html: string,
 -     type?: string,
 -   ): string | ObjStatic;
 - 
 -   /**
 -    * Safe encodeURIComponent, won't throw any error.
 -    * If `encodeURIComponent` error happen, just return the original value.
 -    *
 -    * @param {String} text
 -    * @return {String} URL encode string.
 -    */
 -   function encodeURIComponent(
 -     text: string,
 -   ): string;
 - 
 -   /**
 -    * Safe decodeURIComponent, won't throw any error.
 -    * If `decodeURIComponent` error happen, just return the original value.
 -    *
 -    * @param {String} encodeText
 -    * @return {String} URL decode original string.
 -    */
 -   function decodeURIComponent(
 -     encodeText: string,
 -   ): string;
 - }
 
 
  |