/**
 * 数组相关工具函数
 */
/**
 * 数组去重
 * @param arr 要去重的数组
 */
export declare function unique<T>(arr: T[]): T[];
/**
 * 数组分组
 * @param arr 要分组的数组
 * @param key 分组的键或者获取键的函数
 */
export declare function groupBy<T>(arr: T[], key: string | ((item: T) => string)): Record<string, T[]>;
/**
 * 数组扁平化
 * @param arr 要扁平化的数组
 * @param depth 扁平化深度，默认为 Infinity
 */
export declare function flatten<T>(arr: any[], depth?: number): T[];
/**
 * 获取数组中的随机元素
 * @param arr 源数组
 * @param count 获取元素的数量，默认为 1
 */
export declare function sample<T>(arr: T[], count?: number): T | T[];
/**
 * 数组乱序（Fisher-Yates 洗牌算法）
 * @param arr 要乱序的数组
 */
export declare function shuffle<T>(arr: T[]): T[];
/**
 * 查找数组中最接近目标值的元素
 * @param arr 源数组（必须是已排序的数字数组）
 * @param target 目标值
 */
export declare function closest(arr: number[], target: number): number;
