import BigNumber from 'bignumber.js';
import * as NumberUtils from '../NumberUtils/NumberUtils';
export declare const isNumber: (n: any) => boolean;
interface Format {
    /** the decimal separator */
    decimalSeparator?: string;
    /** the grouping separator of the integer part */
    groupSeparator?: string;
    /** the primary grouping size of the integer part */
    groupSize?: number;
    /** the secondary grouping size of the integer part */
    secondaryGroupSize?: number;
    /** the grouping separator of the fraction part */
    fractionGroupSeparator?: string;
    /** the grouping size of the fraction part */
    fractionGroupSize?: number;
}
export interface INumberFormat extends Format {
    precision: number;
}
export declare const MachineBigNumber: typeof BigNumber;
/**
 * Format given number to a string. If formatting fails, empty string.
 *
 * @param   {any}
 * @returns {String} Empty string if formatting fails.
 */
export declare const formatNumber: (number: any, pattern?: string | undefined) => string;
export declare const formatNumberToDecimals: (number: NumberUtils.Numeric, decimals: number) => string;
/**
 * Convert given value to a number type. If conversion fails, NaN
 *
 * @param   {any}
 * @returns {Number} NaN if conversion fails.
 */
export declare const parseNumber: (numberString: number | string, pattern: string) => number | string;
export declare const fromMachineFormat: (numberString: number | string, pattern: string) => string;
/**
 * Convert given value to a number type. If conversion fails, NaN
 * Will parse machine formatted numbers even if they are sent with decimals included
 */
export declare const parseNumberIncludingMachineFormat: (numberString: number | string, pattern: string) => number | string;
export declare const validatePattern: (pattern: string) => void;
export declare const constructFormat: (pattern: string) => INumberFormat | null;
export declare const isOnlyNumbers: (str: string) => boolean;
export {};
