import { RoundingMode } from '../index';
export declare const numbers: {
    /**
     * Converts the given decimal number to base-62 (i.e. the same value, but represented by [a-zA-Z0-9] instead of only [0-9]).
     */
    toBase62(number: number): string;
    /**
     * Returns a random sequence of characters out of the set [a-zA-Z0-9] with the given length.
     * @param length The default length is 8.
     */
    randomId(length?: number): string;
    /** @internal */
    _correlationCounter: number;
    /**
     * Generates a random ID suitable for use as correlation ID.
     *
     * Example:
     *
     *   Hq5JY2kz3n/27
     *
     * The ID is generated from two different alphabets: 1. only letter, 2. only digits. By
     * always selecting a random digit after two random characters, accidental "rude words"
     * can be prevented.
     *
     * The characters[01olOL] are not used at all because they are easily confused.
     *
     * For a length of 11 (default), this method can theoretically generate over 200 trillion
     * different IDs:
     *
     *   46^7 * 8^3 = 223'138'640'494'592
     *
     * To further reduce the risk of collisions, a monotonically increasing counter is added
     * at the end of the result string (separated by "/").
     */
    correlationId(length?: number): string;
    /**
     * Rounds a number to the given number of fraction digits.
     *
     * Numbers should not be rounded with the built-in Number.toFixed() method, since it
     * behaves differently on different browsers. However, it is safe to apply toFixed()
     * to the result of this method to ensure a fixed number of fraction digits (filled up
     * with 0's) because this operation does not involve any rounding anymore.
     * <p>
     * If fractionDigits is omitted, the number will be rounded to integer by default.
     * Rounding mode {@link RoundingMode.HALF_UP} is used as default.
     */
    round(number: number, roundingMode?: RoundingMode, fractionDigits?: number): number;
    /**
     * Shifts the decimal point in the given number by a certain distance. While the result is also
     * number, the method uses string operations to move the decimal point. This prevents rounding
     * errors as long as the number does not exceed JavaScript's Number precision.
     *
     * The argument 'move' describes the distance how far the decimal point should be moved:
     *     0 = do no move      (1.57 --> 1.57)
     *   > 0 = move to right   (1.57 --> 15.7)
     *   < 0 = move to left    (1.57 --> 0.157)
     */
    shiftDecimalPoint(number: number, move: number): number;
    /**
     * Ensures that the given number is really a number.
     * <p>
     * If it already is a number, the number will be returned.
     * Otherwise, a Number is created.
     *
     * @param number may be of type number or string.
     */
    ensure(number: number | string): number;
    /**
     * Returns true if the given number is of type number but not NaN.
     */
    isNumber(number: any): number is number;
    /**
     * Returns true if the given number is an integer.
     */
    isInteger(number: any): number is number;
    /** @internal */
    _setCorrelationCounter(val: number): void;
};
//# sourceMappingURL=numbers.d.ts.map