export declare function average(arr: number[]): number;
export declare function bindUndefined<T, U>(val: T | undefined, func: (val: T) => U): U | undefined;
export declare function bug(): never;
export declare function csvFriendly(s: string): string;
export declare function escapeDoubleQuotes(s: string, replacement: string): string;
/**
 * @param num Number of calls to the given function that can be spawned
 *            (i.e. waiting to resolve) at once.
 * @param func The function to limit
 */
export declare function limitConcurrent<A extends any[], R>(num: number, func: (...args: A) => Promise<R>): (...args: A) => Promise<R>;
export declare function nonNaN<T>(num: number, fallback: T): number | T;
export declare function printable(val: string | number | undefined): string;
export type RecursivePartial<T> = {
    [K in keyof T]?: T[K] extends (infer U)[] ? RecursivePartial<U>[] : RecursivePartial<T[K]>;
};
