
// Utils.d.ts
export = Utils;

declare class Utils {
  constructor(hg: any);

  /** 网络/文件/日期 子模块 */
  readonly url: import('./url');
  readonly file: import('./file_');
  readonly date: import('./date_');

  /**
   * 数组分块（支持同步/异步回调）
   * @param list      原始数组
   * @param chunkSize 每块长度
   * @param callback  每块回调；如提供，则整体返回 void
   * @returns         无回调时返回分块后的二维数组
   */
  splitArray<T = any>(
    list: T[],
    chunkSize: number,
    callback?: (batch: T[]) => Promise<void> | void
  ): Promise<T[][] | void>;

  /** 计算字符串 MD5 */
  toMD5(data: string): string;

  /** 按区域与币种格式化金额 */
  formatCurrency(
    amount: number,
    locale?: string,
    currency?: string
  ): string;

  /** 将数组按固定大小分块（同步） */
  chunkAll<T = any>(arr: T[], size: number): T[][];

  /** 生成指定步长的数值范围数组 */
  range(start: number, end: number, step?: number): number[];

  /** 数组去重 */
  unique<T = any>(arr: T[]): T[];
}