declare type FlatOne = <T>(arr: T[]) => T[];
declare type _Flat = <T>(depth: number, arr: T[]) => unknown[];
declare type _Flat2 = <T>(depth: number) => (arr: T[]) => unknown[];
/**
 * Functional wrapper for Array.prototype.flat with custom depth
 *
 * Creates a new array with all sub-array elements
 * concatenated into it recursively up to the specified depth.
 *
 * @param depth Maximum recursion depth
 * @param arr Initial array
 * @returns New array
 *
 * @method one Version with default depth (1)
 */
declare const flat: _Flat & _Flat2 & {
    /**
     * Version with default depth (1).
     *
     * @param arr Initial array
     * @returns New array
     */
    one: FlatOne;
};
export { flat };
export default flat;
