| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831 | // Type definitions for bignumber.js >=8.1.0// Project: https://github.com/MikeMcl/bignumber.js// Definitions by: Michael Mclaughlin <https://github.com/MikeMcl>// Definitions: https://github.com/MikeMcl/bignumber.js// Documentation: http://mikemcl.github.io/bignumber.js///// Exports:////   class     BigNumber (default export)//   type      BigNumber.Constructor//   type      BigNumber.ModuloMode//   type      BigNumber.RoundingMode//   type      BigNumber.Value//   interface BigNumber.Config//   interface BigNumber.Format//   interface BigNumber.Instance//// Example:////   import {BigNumber} from "bignumber.js"//   //import BigNumber from "bignumber.js"////   let rm: BigNumber.RoundingMode = BigNumber.ROUND_UP;//   let f: BigNumber.Format = { decimalSeparator: ',' };//   let c: BigNumber.Config = { DECIMAL_PLACES: 4, ROUNDING_MODE: rm, FORMAT: f };//   BigNumber.config(c);////   let v: BigNumber.Value = '12345.6789';//   let b: BigNumber = new BigNumber(v);//// The use of compiler option `--strictNullChecks` is recommended.export default BigNumber;export namespace BigNumber {  /** See `BigNumber.config` (alias `BigNumber.set`) and `BigNumber.clone`. */  interface Config {    /**     * An integer, 0 to 1e+9. Default value: 20.     *     * The maximum number of decimal places of the result of operations involving division, i.e.     * division, square root and base conversion operations, and exponentiation when the exponent is     * negative.     *     * ```ts     * BigNumber.config({ DECIMAL_PLACES: 5 })     * BigNumber.set({ DECIMAL_PLACES: 5 })     * ```     */    DECIMAL_PLACES?: number;    /**     * An integer, 0 to 8. Default value: `BigNumber.ROUND_HALF_UP` (4).     *     * The rounding mode used in operations that involve division (see `DECIMAL_PLACES`) and the     * default rounding mode of the `decimalPlaces`, `precision`, `toExponential`, `toFixed`,     * `toFormat` and `toPrecision` methods.     *     * The modes are available as enumerated properties of the BigNumber constructor.     *     * ```ts     * BigNumber.config({ ROUNDING_MODE: 0 })     * BigNumber.set({ ROUNDING_MODE: BigNumber.ROUND_UP })     * ```     */    ROUNDING_MODE?: BigNumber.RoundingMode;    /**     * An integer, 0 to 1e+9, or an array, [-1e+9 to 0, 0 to 1e+9].     * Default value: `[-7, 20]`.     *     * The exponent value(s) at which `toString` returns exponential notation.     *     * If a single number is assigned, the value is the exponent magnitude.     *     * If an array of two numbers is assigned then the first number is the negative exponent value at     * and beneath which exponential notation is used, and the second number is the positive exponent     * value at and above which exponential notation is used.     *     * For example, to emulate JavaScript numbers in terms of the exponent values at which they begin     * to use exponential notation, use `[-7, 20]`.     *     * ```ts     * BigNumber.config({ EXPONENTIAL_AT: 2 })     * new BigNumber(12.3)         // '12.3'        e is only 1     * new BigNumber(123)          // '1.23e+2'     * new BigNumber(0.123)        // '0.123'       e is only -1     * new BigNumber(0.0123)       // '1.23e-2'     *     * BigNumber.config({ EXPONENTIAL_AT: [-7, 20] })     * new BigNumber(123456789)    // '123456789'   e is only 8     * new BigNumber(0.000000123)  // '1.23e-7'     *     * // Almost never return exponential notation:     * BigNumber.config({ EXPONENTIAL_AT: 1e+9 })     *     * // Always return exponential notation:     * BigNumber.config({ EXPONENTIAL_AT: 0 })     * ```     *     * Regardless of the value of `EXPONENTIAL_AT`, the `toFixed` method will always return a value in     * normal notation and the `toExponential` method will always return a value in exponential form.     * Calling `toString` with a base argument, e.g. `toString(10)`, will also always return normal     * notation.     */    EXPONENTIAL_AT?: number | [number, number];    /**     * An integer, magnitude 1 to 1e+9, or an array, [-1e+9 to -1, 1 to 1e+9].     * Default value: `[-1e+9, 1e+9]`.     *     * The exponent value(s) beyond which overflow to Infinity and underflow to zero occurs.     *     * If a single number is assigned, it is the maximum exponent magnitude: values wth a positive     * exponent of greater magnitude become Infinity and those with a negative exponent of greater     * magnitude become zero.     *     * If an array of two numbers is assigned then the first number is the negative exponent limit and     * the second number is the positive exponent limit.     *     * For example, to emulate JavaScript numbers in terms of the exponent values at which they     * become zero and Infinity, use [-324, 308].     *     * ```ts     * BigNumber.config({ RANGE: 500 })     * BigNumber.config().RANGE     // [ -500, 500 ]     * new BigNumber('9.999e499')   // '9.999e+499'     * new BigNumber('1e500')       // 'Infinity'     * new BigNumber('1e-499')      // '1e-499'     * new BigNumber('1e-500')      // '0'     *     * BigNumber.config({ RANGE: [-3, 4] })     * new BigNumber(99999)         // '99999'      e is only 4     * new BigNumber(100000)        // 'Infinity'   e is 5     * new BigNumber(0.001)         // '0.01'       e is only -3     * new BigNumber(0.0001)        // '0'          e is -4     * ```     * The largest possible magnitude of a finite BigNumber is 9.999...e+1000000000.     * The smallest possible magnitude of a non-zero BigNumber is 1e-1000000000.     */    RANGE?: number | [number, number];    /**     * A boolean: `true` or `false`. Default value: `false`.     *     * The value that determines whether cryptographically-secure pseudo-random number generation is     * used. If `CRYPTO` is set to true then the random method will generate random digits using     * `crypto.getRandomValues` in browsers that support it, or `crypto.randomBytes` if using a     * version of Node.js that supports it.     *     * If neither function is supported by the host environment then attempting to set `CRYPTO` to     * `true` will fail and an exception will be thrown.     *     * If `CRYPTO` is `false` then the source of randomness used will be `Math.random` (which is     * assumed to generate at least 30 bits of randomness).     *     * See `BigNumber.random`.     *     * ```ts     * // Node.js     * global.crypto = require('crypto')     *     * BigNumber.config({ CRYPTO: true })     * BigNumber.config().CRYPTO       // true     * BigNumber.random()              // 0.54340758610486147524     * ```     */    CRYPTO?: boolean;    /**     * An integer, 0, 1, 3, 6 or 9. Default value: `BigNumber.ROUND_DOWN` (1).     *     * The modulo mode used when calculating the modulus: `a mod n`.     * The quotient, `q = a / n`, is calculated according to the `ROUNDING_MODE` that corresponds to     * the chosen `MODULO_MODE`.     * The remainder, `r`, is calculated as: `r = a - n * q`.     *     * The modes that are most commonly used for the modulus/remainder operation are shown in the     * following table. Although the other rounding modes can be used, they may not give useful     * results.     *     * Property           | Value | Description     * :------------------|:------|:------------------------------------------------------------------     *  `ROUND_UP`        |   0   | The remainder is positive if the dividend is negative.     *  `ROUND_DOWN`      |   1   | The remainder has the same sign as the dividend.     *                    |       | Uses 'truncating division' and matches JavaScript's `%` operator .     *  `ROUND_FLOOR`     |   3   | The remainder has the same sign as the divisor.     *                    |       | This matches Python's `%` operator.     *  `ROUND_HALF_EVEN` |   6   | The IEEE 754 remainder function.     *  `EUCLID`          |   9   | The remainder is always positive.     *                    |       | Euclidian division: `q = sign(n) * floor(a / abs(n))`     *     * The rounding/modulo modes are available as enumerated properties of the BigNumber constructor.     *     * See `modulo`.     *     * ```ts     * BigNumber.config({ MODULO_MODE: BigNumber.EUCLID })     * BigNumber.set({ MODULO_MODE: 9 })          // equivalent     * ```     */    MODULO_MODE?: BigNumber.ModuloMode;    /**     * An integer, 0 to 1e+9. Default value: 0.     *     * The maximum precision, i.e. number of significant digits, of the result of the power operation     * - unless a modulus is specified.     *     * If set to 0, the number of significant digits will not be limited.     *     * See `exponentiatedBy`.     *     * ```ts     * BigNumber.config({ POW_PRECISION: 100 })     * ```     */    POW_PRECISION?: number;    /**     * An object including any number of the properties shown below.     *     * The object configures the format of the string returned by the `toFormat` method.     * The example below shows the properties of the object that are recognised, and     * their default values.     *     * Unlike the other configuration properties, the values of the properties of the `FORMAT` object     * will not be checked for validity - the existing object will simply be replaced by the object     * that is passed in.     *     * See `toFormat`.     *     * ```ts     * BigNumber.config({     *   FORMAT: {     *     // string to prepend     *     prefix: '',     *     // the decimal separator     *     decimalSeparator: '.',     *     // the grouping separator of the integer part     *     groupSeparator: ',',     *     // the primary grouping size of the integer part     *     groupSize: 3,     *     // the secondary grouping size of the integer part     *     secondaryGroupSize: 0,     *     // the grouping separator of the fraction part     *     fractionGroupSeparator: ' ',     *     // the grouping size of the fraction part     *     fractionGroupSize: 0,     *     // string to append     *     suffix: ''     *   }     * })     * ```     */    FORMAT?: BigNumber.Format;    /**     * The alphabet used for base conversion. The length of the alphabet corresponds to the maximum     * value of the base argument that can be passed to the BigNumber constructor or `toString`.     *     * Default value: `'0123456789abcdefghijklmnopqrstuvwxyz'`.     *     * There is no maximum length for the alphabet, but it must be at least 2 characters long,     * and it must not contain whitespace or a repeated character, or the sign indicators '+' and     * '-', or the decimal separator '.'.     *     * ```ts     * // duodecimal (base 12)     * BigNumber.config({ ALPHABET: '0123456789TE' })     * x = new BigNumber('T', 12)     * x.toString()                // '10'     * x.toString(12)              // 'T'     * ```     */    ALPHABET?: string;  }  /** See `FORMAT` and `toFormat`. */  interface Format {    /** The string to prepend. */    prefix?: string;    /** 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;    /** The string to append. */    suffix?: string;  }  interface Instance {    /** The coefficient of the value of this BigNumber, an array of base 1e14 integer numbers, or null. */    readonly c: number[] | null;    /** The exponent of the value of this BigNumber, an integer number, -1000000000 to 1000000000, or null. */    readonly e: number | null;    /** The sign of the value of this BigNumber, -1, 1, or null. */    readonly s: number | null;    [key: string]: any;  }  type Constructor = typeof BigNumber;  type ModuloMode = 0 | 1 | 3 | 6 | 9;  type RoundingMode = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;  type Value = string | number | Instance;}export declare class BigNumber implements BigNumber.Instance {  /** Used internally to identify a BigNumber instance. */  private readonly _isBigNumber: true;  /** The coefficient of the value of this BigNumber, an array of base 1e14 integer numbers, or null. */  readonly c: number[] | null;  /** The exponent of the value of this BigNumber, an integer number, -1000000000 to 1000000000, or null. */  readonly e: number | null;  /** The sign of the value of this BigNumber, -1, 1, or null. */  readonly s: number | null;  /**   * Returns a new instance of a BigNumber object with value `n`, where `n` is a numeric value in   * the specified `base`, or base 10 if `base` is omitted or is `null` or `undefined`.   *   * ```ts   * x = new BigNumber(123.4567)              // '123.4567'   * // 'new' is optional   * y = BigNumber(x)                         // '123.4567'   * ```   *   * If `n` is a base 10 value it can be in normal (fixed-point) or exponential notation.   * Values in other bases must be in normal notation. Values in any base can have fraction digits,   * i.e. digits after the decimal point.   *   * ```ts   * new BigNumber(43210)                     // '43210'   * new BigNumber('4.321e+4')                // '43210'   * new BigNumber('-735.0918e-430')          // '-7.350918e-428'   * new BigNumber('123412421.234324', 5)     // '607236.557696'   * ```   *   * Signed `0`, signed `Infinity` and `NaN` are supported.   *   * ```ts   * new BigNumber('-Infinity')               // '-Infinity'   * new BigNumber(NaN)                       // 'NaN'   * new BigNumber(-0)                        // '0'   * new BigNumber('.5')                      // '0.5'   * new BigNumber('+2')                      // '2'   * ```   *   * String values in hexadecimal literal form, e.g. `'0xff'`, are valid, as are string values with   * the octal and binary prefixs `'0o'` and `'0b'`. String values in octal literal form without the   * prefix will be interpreted as decimals, e.g. `'011'` is interpreted as 11, not 9.   *   * ```ts   * new BigNumber(-10110100.1, 2)            // '-180.5'   * new BigNumber('-0b10110100.1')           // '-180.5'   * new BigNumber('ff.8', 16)                // '255.5'   * new BigNumber('0xff.8')                  // '255.5'   * ```   *   * If a base is specified, `n` is rounded according to the current `DECIMAL_PLACES` and   * `ROUNDING_MODE` settings. This includes base 10, so don't include a `base` parameter for decimal   * values unless this behaviour is desired.   *   * ```ts   * BigNumber.config({ DECIMAL_PLACES: 5 })   * new BigNumber(1.23456789)                // '1.23456789'   * new BigNumber(1.23456789, 10)            // '1.23457'   * ```   *   * An error is thrown if `base` is invalid.   *   * There is no limit to the number of digits of a value of type string (other than that of   * JavaScript's maximum array size). See `RANGE` to set the maximum and minimum possible exponent   * value of a BigNumber.   *   * ```ts   * new BigNumber('5032485723458348569331745.33434346346912144534543')   * new BigNumber('4.321e10000000')   * ```   *   * BigNumber `NaN` is returned if `n` is invalid (unless `BigNumber.DEBUG` is `true`, see below).   *   * ```ts   * new BigNumber('.1*')                    // 'NaN'   * new BigNumber('blurgh')                 // 'NaN'   * new BigNumber(9, 2)                     // 'NaN'   * ```   *   * To aid in debugging, if `BigNumber.DEBUG` is `true` then an error will be thrown on an   * invalid `n`. An error will also be thrown if `n` is of type number with more than 15   * significant digits, as calling `toString` or `valueOf` on these numbers may not result in the   * intended value.   *   * ```ts   * console.log(823456789123456.3)          //  823456789123456.2   * new BigNumber(823456789123456.3)        // '823456789123456.2'   * BigNumber.DEBUG = true   * // 'Error: Number has more than 15 significant digits'   * new BigNumber(823456789123456.3)   * // 'Error: Not a base 2 number'   * new BigNumber(9, 2)   * ```   *   * A BigNumber can also be created from an object literal.   * Use `isBigNumber` to check that it is well-formed.   *   * ```ts   * new BigNumber({ s: 1, e: 2, c: [ 777, 12300000000000 ], _isBigNumber: true })    // '777.123'   * ```   *   * @param n A numeric value.   * @param base The base of `n`, integer, 2 to 36 (or `ALPHABET.length`, see `ALPHABET`).   */  constructor(n: BigNumber.Value, base?: number);  /**   * Returns a BigNumber whose value is the absolute value, i.e. the magnitude, of the value of this   * BigNumber.   *   * The return value is always exact and unrounded.   *   * ```ts   * x = new BigNumber(-0.8)   * x.absoluteValue()           // '0.8'   * ```   */  absoluteValue(): BigNumber;  /**   * Returns a BigNumber whose value is the absolute value, i.e. the magnitude, of the value of this   * BigNumber.   *   * The return value is always exact and unrounded.   *   * ```ts   * x = new BigNumber(-0.8)   * x.abs()                     // '0.8'   * ```   */  abs(): BigNumber;  /**   *  Returns |                                                               |   * :-------:|:--------------------------------------------------------------|   *     1    | If the value of this BigNumber is greater than the value of `n`   *    -1    | If the value of this BigNumber is less than the value of `n`   *     0    | If this BigNumber and `n` have the same value   *  `null`  | If the value of either this BigNumber or `n` is `NaN`   *   * ```ts   *   * x = new BigNumber(Infinity)   * y = new BigNumber(5)   * x.comparedTo(y)                 // 1   * x.comparedTo(x.minus(1))        // 0   * y.comparedTo(NaN)               // null   * y.comparedTo('110', 2)          // -1   * ```   * @param n A numeric value.   * @param [base] The base of n.   */  comparedTo(n: BigNumber.Value, base?: number): number;  /**   * Returns a BigNumber whose value is the value of this BigNumber rounded by rounding mode   * `roundingMode` to a maximum of `decimalPlaces` decimal places.   *   * If `decimalPlaces` is omitted, or is `null` or `undefined`, the return value is the number of   * decimal places of the value of this BigNumber, or `null` if the value of this BigNumber is   * ±`Infinity` or `NaN`.   *   * If `roundingMode` is omitted, or is `null` or `undefined`, `ROUNDING_MODE` is used.   *   * Throws if `decimalPlaces` or `roundingMode` is invalid.   *   * ```ts   * x = new BigNumber(1234.56)   * x.decimalPlaces()                      // 2   * x.decimalPlaces(1)                     // '1234.6'   * x.decimalPlaces(2)                     // '1234.56'   * x.decimalPlaces(10)                    // '1234.56'   * x.decimalPlaces(0, 1)                  // '1234'   * x.decimalPlaces(0, 6)                  // '1235'   * x.decimalPlaces(1, 1)                  // '1234.5'   * x.decimalPlaces(1, BigNumber.ROUND_HALF_EVEN)     // '1234.6'   * x                                      // '1234.56'   * y = new BigNumber('9.9e-101')   * y.decimalPlaces()                      // 102   * ```   *   * @param [decimalPlaces] Decimal places, integer, 0 to 1e+9.   * @param [roundingMode] Rounding mode, integer, 0 to 8.   */  decimalPlaces(): number | null;  decimalPlaces(decimalPlaces: number, roundingMode?: BigNumber.RoundingMode): BigNumber;  /**   * Returns a BigNumber whose value is the value of this BigNumber rounded by rounding mode   * `roundingMode` to a maximum of `decimalPlaces` decimal places.   *   * If `decimalPlaces` is omitted, or is `null` or `undefined`, the return value is the number of   * decimal places of the value of this BigNumber, or `null` if the value of this BigNumber is   * ±`Infinity` or `NaN`.   *   * If `roundingMode` is omitted, or is `null` or `undefined`, `ROUNDING_MODE` is used.   *   * Throws if `decimalPlaces` or `roundingMode` is invalid.   *   * ```ts   * x = new BigNumber(1234.56)   * x.dp()                                 // 2   * x.dp(1)                                // '1234.6'   * x.dp(2)                                // '1234.56'   * x.dp(10)                               // '1234.56'   * x.dp(0, 1)                             // '1234'   * x.dp(0, 6)                             // '1235'   * x.dp(1, 1)                             // '1234.5'   * x.dp(1, BigNumber.ROUND_HALF_EVEN)     // '1234.6'   * x                                      // '1234.56'   * y = new BigNumber('9.9e-101')   * y.dp()                                 // 102   * ```   *   * @param [decimalPlaces] Decimal places, integer, 0 to 1e+9.   * @param [roundingMode] Rounding mode, integer, 0 to 8.   */  dp(): number | null;  dp(decimalPlaces: number, roundingMode?: BigNumber.RoundingMode): BigNumber;  /**   * Returns a BigNumber whose value is the value of this BigNumber divided by `n`, rounded   * according to the current `DECIMAL_PLACES` and `ROUNDING_MODE` settings.   *   * ```ts   * x = new BigNumber(355)   * y = new BigNumber(113)   * x.dividedBy(y)                  // '3.14159292035398230088'   * x.dividedBy(5)                  // '71'   * x.dividedBy(47, 16)             // '5'   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  dividedBy(n: BigNumber.Value, base?: number): BigNumber;  /**   * Returns a BigNumber whose value is the value of this BigNumber divided by `n`, rounded   * according to the current `DECIMAL_PLACES` and `ROUNDING_MODE` settings.   *   * ```ts   * x = new BigNumber(355)   * y = new BigNumber(113)   * x.div(y)                    // '3.14159292035398230088'   * x.div(5)                    // '71'   * x.div(47, 16)               // '5'   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  div(n: BigNumber.Value, base?: number): BigNumber;  /**   * Returns a BigNumber whose value is the integer part of dividing the value of this BigNumber by   * `n`.   *   * ```ts   * x = new BigNumber(5)   * y = new BigNumber(3)   * x.dividedToIntegerBy(y)              // '1'   * x.dividedToIntegerBy(0.7)            // '7'   * x.dividedToIntegerBy('0.f', 16)      // '5'   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  dividedToIntegerBy(n: BigNumber.Value, base?: number): BigNumber;  /**   * Returns a BigNumber whose value is the integer part of dividing the value of this BigNumber by   * `n`.   *   * ```ts   * x = new BigNumber(5)   * y = new BigNumber(3)   * x.idiv(y)                       // '1'   * x.idiv(0.7)                     // '7'   * x.idiv('0.f', 16)               // '5'   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  idiv(n: BigNumber.Value, base?: number): BigNumber;  /**   * Returns a BigNumber whose value is the value of this BigNumber exponentiated by `n`, i.e.   * raised to the power `n`, and optionally modulo a modulus `m`.   *   * If `n` is negative the result is rounded according to the current `DECIMAL_PLACES` and   * `ROUNDING_MODE` settings.   *   * As the number of digits of the result of the power operation can grow so large so quickly,   * e.g. 123.456**10000 has over 50000 digits, the number of significant digits calculated is   * limited to the value of the `POW_PRECISION` setting (unless a modulus `m` is specified).   *   * By default `POW_PRECISION` is set to 0. This means that an unlimited number of significant   * digits will be calculated, and that the method's performance will decrease dramatically for   * larger exponents.   *   * If `m` is specified and the value of `m`, `n` and this BigNumber are integers and `n` is   * positive, then a fast modular exponentiation algorithm is used, otherwise the operation will   * be performed as `x.exponentiatedBy(n).modulo(m)` with a `POW_PRECISION` of 0.   *   * Throws if `n` is not an integer.   *   * ```ts   * Math.pow(0.7, 2)                    // 0.48999999999999994   * x = new BigNumber(0.7)   * x.exponentiatedBy(2)                // '0.49'   * BigNumber(3).exponentiatedBy(-2)    // '0.11111111111111111111'   * ```   *   * @param n The exponent, an integer.   * @param [m] The modulus.   */  exponentiatedBy(n: BigNumber.Value, m?: BigNumber.Value): BigNumber;  exponentiatedBy(n: number, m?: BigNumber.Value): BigNumber;  /**   * Returns a BigNumber whose value is the value of this BigNumber exponentiated by `n`, i.e.   * raised to the power `n`, and optionally modulo a modulus `m`.   *   * If `n` is negative the result is rounded according to the current `DECIMAL_PLACES` and   * `ROUNDING_MODE` settings.   *   * As the number of digits of the result of the power operation can grow so large so quickly,   * e.g. 123.456**10000 has over 50000 digits, the number of significant digits calculated is   * limited to the value of the `POW_PRECISION` setting (unless a modulus `m` is specified).   *   * By default `POW_PRECISION` is set to 0. This means that an unlimited number of significant   * digits will be calculated, and that the method's performance will decrease dramatically for   * larger exponents.   *   * If `m` is specified and the value of `m`, `n` and this BigNumber are integers and `n` is   * positive, then a fast modular exponentiation algorithm is used, otherwise the operation will   * be performed as `x.pow(n).modulo(m)` with a `POW_PRECISION` of 0.   *   * Throws if `n` is not an integer.   *   * ```ts   * Math.pow(0.7, 2)                   // 0.48999999999999994   * x = new BigNumber(0.7)   * x.pow(2)                           // '0.49'   * BigNumber(3).pow(-2)               // '0.11111111111111111111'   * ```   *   * @param n The exponent, an integer.   * @param [m] The modulus.   */  pow(n: BigNumber.Value, m?: BigNumber.Value): BigNumber;  pow(n: number, m?: BigNumber.Value): BigNumber;  /**   * Returns a BigNumber whose value is the value of this BigNumber rounded to an integer using   * rounding mode `rm`.   *   * If `rm` is omitted, or is `null` or `undefined`, `ROUNDING_MODE` is used.   *   * Throws if `rm` is invalid.   *   * ```ts   * x = new BigNumber(123.456)   * x.integerValue()                        // '123'   * x.integerValue(BigNumber.ROUND_CEIL)    // '124'   * y = new BigNumber(-12.7)   * y.integerValue()                        // '-13'   * x.integerValue(BigNumber.ROUND_DOWN)    // '-12'   * ```   *   * @param {BigNumber.RoundingMode} [rm] The roundng mode, an integer, 0 to 8.   */  integerValue(rm?: BigNumber.RoundingMode): BigNumber;  /**   * Returns `true` if the value of this BigNumber is equal to the value of `n`, otherwise returns   * `false`.   *   * As with JavaScript, `NaN` does not equal `NaN`.   *   * ```ts   * 0 === 1e-324                           // true   * x = new BigNumber(0)   * x.isEqualTo('1e-324')                  // false   * BigNumber(-0).isEqualTo(x)             // true  ( -0 === 0 )   * BigNumber(255).isEqualTo('ff', 16)     // true   *   * y = new BigNumber(NaN)   * y.isEqualTo(NaN)                // false   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  isEqualTo(n: BigNumber.Value, base?: number): boolean;  /**   * Returns `true` if the value of this BigNumber is equal to the value of `n`, otherwise returns   * `false`.   *   * As with JavaScript, `NaN` does not equal `NaN`.   *   * ```ts   * 0 === 1e-324                    // true   * x = new BigNumber(0)   * x.eq('1e-324')                  // false   * BigNumber(-0).eq(x)             // true  ( -0 === 0 )   * BigNumber(255).eq('ff', 16)     // true   *   * y = new BigNumber(NaN)   * y.eq(NaN)                       // false   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  eq(n: BigNumber.Value, base?: number): boolean;  /**   * Returns `true` if the value of this BigNumber is a finite number, otherwise returns `false`.   *   * The only possible non-finite values of a BigNumber are `NaN`, `Infinity` and `-Infinity`.   *   * ```ts   * x = new BigNumber(1)   * x.isFinite()                    // true   * y = new BigNumber(Infinity)   * y.isFinite()                    // false   * ```   */  isFinite(): boolean;  /**   * Returns `true` if the value of this BigNumber is greater than the value of `n`, otherwise   * returns `false`.   *   * ```ts   * 0.1 > (0.3 - 0.2)                             // true   * x = new BigNumber(0.1)   * x.isGreaterThan(BigNumber(0.3).minus(0.2))    // false   * BigNumber(0).isGreaterThan(x)                 // false   * BigNumber(11, 3).isGreaterThan(11.1, 2)       // true   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  isGreaterThan(n: BigNumber.Value, base?: number): boolean;  /**   * Returns `true` if the value of this BigNumber is greater than the value of `n`, otherwise   * returns `false`.   *   * ```ts   * 0.1 > (0.3 - 0                     // true   * x = new BigNumber(0.1)   * x.gt(BigNumber(0.3).minus(0.2))    // false   * BigNumber(0).gt(x)                 // false   * BigNumber(11, 3).gt(11.1, 2)       // true   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  gt(n: BigNumber.Value, base?: number): boolean;  /**   * Returns `true` if the value of this BigNumber is greater than or equal to the value of `n`,   * otherwise returns `false`.   *   * ```ts   * (0.3 - 0.2) >= 0.1                                  // false   * x = new BigNumber(0.3).minus(0.2)   * x.isGreaterThanOrEqualTo(0.1)                       // true   * BigNumber(1).isGreaterThanOrEqualTo(x)              // true   * BigNumber(10, 18).isGreaterThanOrEqualTo('i', 36)   // true   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  isGreaterThanOrEqualTo(n: BigNumber.Value, base?: number): boolean;  /**   * Returns `true` if the value of this BigNumber is greater than or equal to the value of `n`,   * otherwise returns `false`.   *   * ```ts   * (0.3 - 0.2) >= 0.1                    // false   * x = new BigNumber(0.3).minus(0.2)   * x.gte(0.1)                            // true   * BigNumber(1).gte(x)                   // true   * BigNumber(10, 18).gte('i', 36)        // true   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  gte(n: BigNumber.Value, base?: number): boolean;  /**   * Returns `true` if the value of this BigNumber is an integer, otherwise returns `false`.   *   * ```ts   * x = new BigNumber(1)   * x.isInteger()                   // true   * y = new BigNumber(123.456)   * y.isInteger()                   // false   * ```   */  isInteger(): boolean;  /**   * Returns `true` if the value of this BigNumber is less than the value of `n`, otherwise returns   * `false`.   *   * ```ts   * (0.3 - 0.2) < 0.1                       // true   * x = new BigNumber(0.3).minus(0.2)   * x.isLessThan(0.1)                       // false   * BigNumber(0).isLessThan(x)              // true   * BigNumber(11.1, 2).isLessThan(11, 3)    // true   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  isLessThan(n: BigNumber.Value, base?: number): boolean;  /**   * Returns `true` if the value of this BigNumber is less than the value of `n`, otherwise returns   * `false`.   *   * ```ts   * (0.3 - 0.2) < 0.1                       // true   * x = new BigNumber(0.3).minus(0.2)   * x.lt(0.1)                               // false   * BigNumber(0).lt(x)                      // true   * BigNumber(11.1, 2).lt(11, 3)            // true   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  lt(n: BigNumber.Value, base?: number): boolean;  /**   * Returns `true` if the value of this BigNumber is less than or equal to the value of `n`,   * otherwise returns `false`.   *   * ```ts   * 0.1 <= (0.3 - 0.2)                                 // false   * x = new BigNumber(0.1)   * x.isLessThanOrEqualTo(BigNumber(0.3).minus(0.2))   // true   * BigNumber(-1).isLessThanOrEqualTo(x)               // true   * BigNumber(10, 18).isLessThanOrEqualTo('i', 36)     // true   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  isLessThanOrEqualTo(n: BigNumber.Value, base?: number): boolean;  /**   * Returns `true` if the value of this BigNumber is less than or equal to the value of `n`,   * otherwise returns `false`.   *   * ```ts   * 0.1 <= (0.3 - 0.2)                  // false   * x = new BigNumber(0.1)   * x.lte(BigNumber(0.3).minus(0.2))    // true   * BigNumber(-1).lte(x)                // true   * BigNumber(10, 18).lte('i', 36)      // true   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  lte(n: BigNumber.Value, base?: number): boolean;  /**   * Returns `true` if the value of this BigNumber is `NaN`, otherwise returns `false`.   *   * ```ts   * x = new BigNumber(NaN)   * x.isNaN()                       // true   * y = new BigNumber('Infinity')   * y.isNaN()                       // false   * ```   */  isNaN(): boolean;  /**   * Returns `true` if the value of this BigNumber is negative, otherwise returns `false`.   *   * ```ts   * x = new BigNumber(-0)   * x.isNegative()                  // true   * y = new BigNumber(2)   * y.isNegative()                  // false   * ```   */  isNegative(): boolean;  /**   * Returns `true` if the value of this BigNumber is positive, otherwise returns `false`.   *   * ```ts   * x = new BigNumber(-0)   * x.isPositive()                  // false   * y = new BigNumber(2)   * y.isPositive()                  // true   * ```   */  isPositive(): boolean;  /**   * Returns `true` if the value of this BigNumber is zero or minus zero, otherwise returns `false`.   *   * ```ts   * x = new BigNumber(-0)   * x.isZero()                 // true   * ```   */  isZero(): boolean;  /**   * Returns a BigNumber whose value is the value of this BigNumber minus `n`.   *   * The return value is always exact and unrounded.   *   * ```ts   * 0.3 - 0.1                       // 0.19999999999999998   * x = new BigNumber(0.3)   * x.minus(0.1)                    // '0.2'   * x.minus(0.6, 20)                // '0'   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  minus(n: BigNumber.Value, base?: number): BigNumber;  /**   * Returns a BigNumber whose value is the value of this BigNumber modulo `n`, i.e. the integer   * remainder of dividing this BigNumber by `n`.   *   * The value returned, and in particular its sign, is dependent on the value of the `MODULO_MODE`   * setting of this BigNumber constructor. If it is 1 (default value), the result will have the   * same sign as this BigNumber, and it will match that of Javascript's `%` operator (within the   * limits of double precision) and BigDecimal's `remainder` method.   *   * The return value is always exact and unrounded.   *   * See `MODULO_MODE` for a description of the other modulo modes.   *   * ```ts   * 1 % 0.9                         // 0.09999999999999998   * x = new BigNumber(1)   * x.modulo(0.9)                   // '0.1'   * y = new BigNumber(33)   * y.modulo('a', 33)               // '3'   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  modulo(n: BigNumber.Value, base?: number): BigNumber;  /**   * Returns a BigNumber whose value is the value of this BigNumber modulo `n`, i.e. the integer   * remainder of dividing this BigNumber by `n`.   *   * The value returned, and in particular its sign, is dependent on the value of the `MODULO_MODE`   * setting of this BigNumber constructor. If it is 1 (default value), the result will have the   * same sign as this BigNumber, and it will match that of Javascript's `%` operator (within the   * limits of double precision) and BigDecimal's `remainder` method.   *   * The return value is always exact and unrounded.   *   * See `MODULO_MODE` for a description of the other modulo modes.   *   * ```ts   * 1 % 0.9                      // 0.09999999999999998   * x = new BigNumber(1)   * x.mod(0.9)                   // '0.1'   * y = new BigNumber(33)   * y.mod('a', 33)               // '3'   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  mod(n: BigNumber.Value, base?: number): BigNumber;  /**   * Returns a BigNumber whose value is the value of this BigNumber multiplied by `n`.   *   * The return value is always exact and unrounded.   *   * ```ts   * 0.6 * 3                                // 1.7999999999999998   * x = new BigNumber(0.6)   * y = x.multipliedBy(3)                  // '1.8'   * BigNumber('7e+500').multipliedBy(y)    // '1.26e+501'   * x.multipliedBy('-a', 16)               // '-6'   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  multipliedBy(n: BigNumber.Value, base?: number): BigNumber;  /**   * Returns a BigNumber whose value is the value of this BigNumber multiplied by `n`.   *   * The return value is always exact and unrounded.   *   * ```ts   * 0.6 * 3                         // 1.7999999999999998   * x = new BigNumber(0.6)   * y = x.times(3)                  // '1.8'   * BigNumber('7e+500').times(y)    // '1.26e+501'   * x.times('-a', 16)               // '-6'   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  times(n: BigNumber.Value, base?: number): BigNumber;  /**   * Returns a BigNumber whose value is the value of this BigNumber negated, i.e. multiplied by -1.   *   * ```ts   * x = new BigNumber(1.8)   * x.negated()                     // '-1.8'   * y = new BigNumber(-1.3)   * y.negated()                     // '1.3'   * ```   */  negated(): BigNumber;  /**   * Returns a BigNumber whose value is the value of this BigNumber plus `n`.   *   * The return value is always exact and unrounded.   *   * ```ts   * 0.1 + 0.2                       // 0.30000000000000004   * x = new BigNumber(0.1)   * y = x.plus(0.2)                 // '0.3'   * BigNumber(0.7).plus(x).plus(y)  // '1.1'   * x.plus('0.1', 8)                // '0.225'   * ```   *   * @param n A numeric value.   * @param [base] The base of n.   */  plus(n: BigNumber.Value, base?: number): BigNumber;  /**   * Returns the number of significant digits of the value of this BigNumber, or `null` if the value   * of this BigNumber is ±`Infinity` or `NaN`.   *   * If `includeZeros` is true then any trailing zeros of the integer part of the value of this   * BigNumber are counted as significant digits, otherwise they are not.   *   * Throws if `includeZeros` is invalid.   *   * ```ts   * x = new BigNumber(9876.54321)   * x.precision()                         // 9   * y = new BigNumber(987000)   * y.precision(false)                    // 3   * y.precision(true)                     // 6   * ```   *   * @param [includeZeros] Whether to include integer trailing zeros in the significant digit count.   */  precision(includeZeros?: boolean): number;  /**   * Returns a BigNumber whose value is the value of this BigNumber rounded to a precision of   * `significantDigits` significant digits using rounding mode `roundingMode`.   *   * If `roundingMode` is omitted or is `null` or `undefined`, `ROUNDING_MODE` will be used.   *   * Throws if `significantDigits` or `roundingMode` is invalid.   *   * ```ts   * x = new BigNumber(9876.54321)   * x.precision(6)                         // '9876.54'   * x.precision(6, BigNumber.ROUND_UP)     // '9876.55'   * x.precision(2)                         // '9900'   * x.precision(2, 1)                      // '9800'   * x                                      // '9876.54321'   * ```   *   * @param significantDigits Significant digits, integer, 1 to 1e+9.   * @param [roundingMode] Rounding mode, integer, 0 to 8.   */  precision(significantDigits: number, roundingMode?: BigNumber.RoundingMode): BigNumber;  /**   * Returns the number of significant digits of the value of this BigNumber,   * or `null` if the value of this BigNumber is ±`Infinity` or `NaN`.   *   * If `includeZeros` is true then any trailing zeros of the integer part of   * the value of this BigNumber are counted as significant digits, otherwise   * they are not.   *   * Throws if `includeZeros` is invalid.   *   * ```ts   * x = new BigNumber(9876.54321)   * x.sd()                         // 9   * y = new BigNumber(987000)   * y.sd(false)                    // 3   * y.sd(true)                     // 6   * ```   *   * @param [includeZeros] Whether to include integer trailing zeros in the significant digit count.   */  sd(includeZeros?: boolean): number;  /**   * Returns a BigNumber whose value is the value of this BigNumber rounded to a precision of   * `significantDigits` significant digits using rounding mode `roundingMode`.   *   * If `roundingMode` is omitted or is `null` or `undefined`, `ROUNDING_MODE` will be used.   *   * Throws if `significantDigits` or `roundingMode` is invalid.   *   * ```ts   * x = new BigNumber(9876.54321)   * x.sd(6)                           // '9876.54'   * x.sd(6, BigNumber.ROUND_UP)       // '9876.55'   * x.sd(2)                           // '9900'   * x.sd(2, 1)                        // '9800'   * x                                 // '9876.54321'   * ```   *   * @param significantDigits Significant digits, integer, 1 to 1e+9.   * @param [roundingMode] Rounding mode, integer, 0 to 8.   */  sd(significantDigits: number, roundingMode?: BigNumber.RoundingMode): BigNumber;  /**   * Returns a BigNumber whose value is the value of this BigNumber shifted by `n` places.   *   * The shift is of the decimal point, i.e. of powers of ten, and is to the left if `n` is negative   * or to the right if `n` is positive.   *   * The return value is always exact and unrounded.   *   * Throws if `n` is invalid.   *   * ```ts   * x = new BigNumber(1.23)   * x.shiftedBy(3)                      // '1230'   * x.shiftedBy(-3)                     // '0.00123'   * ```   *   * @param n The shift value, integer, -9007199254740991 to 9007199254740991.   */  shiftedBy(n: number): BigNumber;  /**   * Returns a BigNumber whose value is the square root of the value of this BigNumber, rounded   * according to the current `DECIMAL_PLACES` and `ROUNDING_MODE` settings.   *   * The return value will be correctly rounded, i.e. rounded as if the result was first calculated   * to an infinite number of correct digits before rounding.   *   * ```ts   * x = new BigNumber(16)   * x.squareRoot()                  // '4'   * y = new BigNumber(3)   * y.squareRoot()                  // '1.73205080756887729353'   * ```   */  squareRoot(): BigNumber;  /**   * Returns a BigNumber whose value is the square root of the value of this BigNumber, rounded   * according to the current `DECIMAL_PLACES` and `ROUNDING_MODE` settings.   *   * The return value will be correctly rounded, i.e. rounded as if the result was first calculated   * to an infinite number of correct digits before rounding.   *   * ```ts   * x = new BigNumber(16)   * x.sqrt()                  // '4'   * y = new BigNumber(3)   * y.sqrt()                  // '1.73205080756887729353'   * ```   */  sqrt(): BigNumber;  /**   * Returns a string representing the value of this BigNumber in exponential notation rounded using   * rounding mode `roundingMode` to `decimalPlaces` decimal places, i.e with one digit before the   * decimal point and `decimalPlaces` digits after it.   *   * If the value of this BigNumber in exponential notation has fewer than `decimalPlaces` fraction   * digits, the return value will be appended with zeros accordingly.   *   * If `decimalPlaces` is omitted, or is `null` or `undefined`, the number of digits after the   * decimal point defaults to the minimum number of digits necessary to represent the value   * exactly.   *   * If `roundingMode` is omitted or is `null` or `undefined`, `ROUNDING_MODE` is used.   *   * Throws if `decimalPlaces` or `roundingMode` is invalid.   *   * ```ts   * x = 45.6   * y = new BigNumber(x)   * x.toExponential()               // '4.56e+1'   * y.toExponential()               // '4.56e+1'   * x.toExponential(0)              // '5e+1'   * y.toExponential(0)              // '5e+1'   * x.toExponential(1)              // '4.6e+1'   * y.toExponential(1)              // '4.6e+1'   * y.toExponential(1, 1)           // '4.5e+1'  (ROUND_DOWN)   * x.toExponential(3)              // '4.560e+1'   * y.toExponential(3)              // '4.560e+1'   * ```   *   * @param [decimalPlaces] Decimal places, integer, 0 to 1e+9.   * @param [roundingMode] Rounding mode, integer, 0 to 8.   */  toExponential(decimalPlaces: number, roundingMode?: BigNumber.RoundingMode): string;  toExponential(): string;  /**   * Returns a string representing the value of this BigNumber in normal (fixed-point) notation   * rounded to `decimalPlaces` decimal places using rounding mode `roundingMode`.   *   * If the value of this BigNumber in normal notation has fewer than `decimalPlaces` fraction   * digits, the return value will be appended with zeros accordingly.   *   * Unlike `Number.prototype.toFixed`, which returns exponential notation if a number is greater or   * equal to 10**21, this method will always return normal notation.   *   * If `decimalPlaces` is omitted or is `null` or `undefined`, the return value will be unrounded   * and in normal notation. This is also unlike `Number.prototype.toFixed`, which returns the value   * to zero decimal places. It is useful when normal notation is required and the current   * `EXPONENTIAL_AT` setting causes `toString` to return exponential notation.   *   * If `roundingMode` is omitted or is `null` or `undefined`, `ROUNDING_MODE` is used.   *   * Throws if `decimalPlaces` or `roundingMode` is invalid.   *   * ```ts   * x = 3.456   * y = new BigNumber(x)   * x.toFixed()                     // '3'   * y.toFixed()                     // '3.456'   * y.toFixed(0)                    // '3'   * x.toFixed(2)                    // '3.46'   * y.toFixed(2)                    // '3.46'   * y.toFixed(2, 1)                 // '3.45'  (ROUND_DOWN)   * x.toFixed(5)                    // '3.45600'   * y.toFixed(5)                    // '3.45600'   * ```   *   * @param [decimalPlaces] Decimal places, integer, 0 to 1e+9.   * @param [roundingMode] Rounding mode, integer, 0 to 8.   */  toFixed(decimalPlaces: number, roundingMode?: BigNumber.RoundingMode): string;  toFixed(): string;  /**   * Returns a string representing the value of this BigNumber in normal (fixed-point) notation   * rounded to `decimalPlaces` decimal places using rounding mode `roundingMode`, and formatted   * according to the properties of the `format` or `FORMAT` object.   *   * The formatting object may contain some or all of the properties shown in the examples below.   *   * If `decimalPlaces` is omitted or is `null` or `undefined`, then the return value is not   * rounded to a fixed number of decimal places.   *   * If `roundingMode` is omitted or is `null` or `undefined`, `ROUNDING_MODE` is used.   *   * If `format` is omitted or is `null` or `undefined`, `FORMAT` is used.   *   * Throws if `decimalPlaces`, `roundingMode`, or `format` is invalid.   *   * ```ts   * fmt = {   *   decimalSeparator: '.',   *   groupSeparator: ',',   *   groupSize: 3,   *   secondaryGroupSize: 0,   *   fractionGroupSeparator: ' ',   *   fractionGroupSize: 0   * }   *   * x = new BigNumber('123456789.123456789')   *   * // Set the global formatting options   * BigNumber.config({ FORMAT: fmt })   *   * x.toFormat()                              // '123,456,789.123456789'   * x.toFormat(3)                             // '123,456,789.123'   *   * // If a reference to the object assigned to FORMAT has been retained,   * // the format properties can be changed directly   * fmt.groupSeparator = ' '   * fmt.fractionGroupSize = 5   * x.toFormat()                              // '123 456 789.12345 6789'   *   * // Alternatively, pass the formatting options as an argument   * fmt = {   *   decimalSeparator: ',',   *   groupSeparator: '.',   *   groupSize: 3,   *   secondaryGroupSize: 2   * }   *   * x.toFormat()                              // '123 456 789.12345 6789'   * x.toFormat(fmt)                           // '12.34.56.789,123456789'   * x.toFormat(2, fmt)                        // '12.34.56.789,12'   * x.toFormat(3, BigNumber.ROUND_UP, fmt)    // '12.34.56.789,124'   * ```   *   * @param [decimalPlaces] Decimal places, integer, 0 to 1e+9.   * @param [roundingMode] Rounding mode, integer, 0 to 8.   * @param [format] Formatting options object. See `BigNumber.Format`.   */  toFormat(decimalPlaces: number, roundingMode: BigNumber.RoundingMode, format?: BigNumber.Format): string;  toFormat(decimalPlaces: number, roundingMode?: BigNumber.RoundingMode): string;  toFormat(decimalPlaces?: number): string;  toFormat(decimalPlaces: number, format: BigNumber.Format): string;  toFormat(format: BigNumber.Format): string;  /**   * Returns an array of two BigNumbers representing the value of this BigNumber as a simple   * fraction with an integer numerator and an integer denominator.   * The denominator will be a positive non-zero value less than or equal to `max_denominator`.   * If a maximum denominator, `max_denominator`, is not specified, or is `null` or `undefined`, the   * denominator will be the lowest value necessary to represent the number exactly.   *   * Throws if `max_denominator` is invalid.   *   * ```ts   * x = new BigNumber(1.75)   * x.toFraction()                  // '7, 4'   *   * pi = new BigNumber('3.14159265358')   * pi.toFraction()                 // '157079632679,50000000000'   * pi.toFraction(100000)           // '312689, 99532'   * pi.toFraction(10000)            // '355, 113'   * pi.toFraction(100)              // '311, 99'   * pi.toFraction(10)               // '22, 7'   * pi.toFraction(1)                // '3, 1'   * ```   *   * @param [max_denominator] The maximum denominator, integer > 0, or Infinity.   */  toFraction(max_denominator?: BigNumber.Value): [BigNumber, BigNumber];  /** As `valueOf`. */  toJSON(): string;  /**   * Returns the value of this BigNumber as a JavaScript primitive number.   *   * Using the unary plus operator gives the same result.   *   * ```ts   * x = new BigNumber(456.789)   * x.toNumber()                    // 456.789   * +x                              // 456.789   *   * y = new BigNumber('45987349857634085409857349856430985')   * y.toNumber()                    // 4.598734985763409e+34   *   * z = new BigNumber(-0)   * 1 / z.toNumber()                // -Infinity   * 1 / +z                          // -Infinity   * ```   */  toNumber(): number;  /**   * Returns a string representing the value of this BigNumber rounded to `significantDigits`   * significant digits using rounding mode `roundingMode`.   *   * If `significantDigits` is less than the number of digits necessary to represent the integer   * part of the value in normal (fixed-point) notation, then exponential notation is used.   *   * If `significantDigits` is omitted, or is `null` or `undefined`, then the return value is the   * same as `n.toString()`.   *   * If `roundingMode` is omitted or is `null` or `undefined`, `ROUNDING_MODE` is used.   *   * Throws if `significantDigits` or `roundingMode` is invalid.   *   * ```ts   * x = 45.6   * y = new BigNumber(x)   * x.toPrecision()                 // '45.6'   * y.toPrecision()                 // '45.6'   * x.toPrecision(1)                // '5e+1'   * y.toPrecision(1)                // '5e+1'   * y.toPrecision(2, 0)             // '4.6e+1'  (ROUND_UP)   * y.toPrecision(2, 1)             // '4.5e+1'  (ROUND_DOWN)   * x.toPrecision(5)                // '45.600'   * y.toPrecision(5)                // '45.600'   * ```   *   * @param [significantDigits] Significant digits, integer, 1 to 1e+9.   * @param [roundingMode] Rounding mode, integer 0 to 8.   */  toPrecision(significantDigits: number, roundingMode?: BigNumber.RoundingMode): string;  toPrecision(): string;  /**   * Returns a string representing the value of this BigNumber in base `base`, or base 10 if `base`   * is omitted or is `null` or `undefined`.   *   * For bases above 10, and using the default base conversion alphabet (see `ALPHABET`), values   * from 10 to 35 are represented by a-z (the same as `Number.prototype.toString`).   *   * If a base is specified the value is rounded according to the current `DECIMAL_PLACES` and   * `ROUNDING_MODE` settings, otherwise it is not.   *   * If a base is not specified, and this BigNumber has a positive exponent that is equal to or   * greater than the positive component of the current `EXPONENTIAL_AT` setting, or a negative   * exponent equal to or less than the negative component of the setting, then exponential notation   * is returned.   *   * If `base` is `null` or `undefined` it is ignored.   *   * Throws if `base` is invalid.   *   * ```ts   * x = new BigNumber(750000)   * x.toString()                    // '750000'   * BigNumber.config({ EXPONENTIAL_AT: 5 })   * x.toString()                    // '7.5e+5'   *   * y = new BigNumber(362.875)   * y.toString(2)                   // '101101010.111'   * y.toString(9)                   // '442.77777777777777777778'   * y.toString(32)                  // 'ba.s'   *   * BigNumber.config({ DECIMAL_PLACES: 4 });   * z = new BigNumber('1.23456789')   * z.toString()                    // '1.23456789'   * z.toString(10)                  // '1.2346'   * ```   *   * @param [base] The base, integer, 2 to 36 (or `ALPHABET.length`, see `ALPHABET`).   */  toString(base?: number): string;  /**   * As `toString`, but does not accept a base argument and includes the minus sign for negative   * zero.   *   * ``ts   * x = new BigNumber('-0')   * x.toString()                    // '0'   * x.valueOf()                     // '-0'   * y = new BigNumber('1.777e+457')   * y.valueOf()                     // '1.777e+457'   * ```   */  valueOf(): string;  /** Helps ES6 import. */  private static readonly default?: BigNumber.Constructor;  /** Helps ES6 import. */  private static readonly BigNumber?: BigNumber.Constructor;  /** Rounds away from zero. */  static readonly ROUND_UP: 0;  /** Rounds towards zero. */  static readonly ROUND_DOWN: 1;  /** Rounds towards Infinity. */  static readonly ROUND_CEIL: 2;  /** Rounds towards -Infinity. */  static readonly ROUND_FLOOR: 3;  /** Rounds towards nearest neighbour. If equidistant, rounds away from zero . */  static readonly ROUND_HALF_UP: 4;  /** Rounds towards nearest neighbour. If equidistant, rounds towards zero. */  static readonly ROUND_HALF_DOWN: 5;  /** Rounds towards nearest neighbour. If equidistant, rounds towards even neighbour. */  static readonly ROUND_HALF_EVEN: 6;  /** Rounds towards nearest neighbour. If equidistant, rounds towards Infinity. */  static readonly ROUND_HALF_CEIL: 7;  /** Rounds towards nearest neighbour. If equidistant, rounds towards -Infinity. */  static readonly ROUND_HALF_FLOOR: 8;  /** See `MODULO_MODE`. */  static readonly EUCLID: 9;  /**   * To aid in debugging, if a `BigNumber.DEBUG` property is `true` then an error will be thrown   * if the BigNumber constructor receives an invalid `BigNumber.Value`, or if `BigNumber.isBigNumber`   * receives a BigNumber instance that is malformed.   *   * ```ts   * // No error, and BigNumber NaN is returned.   * new BigNumber('blurgh')    // 'NaN'   * new BigNumber(9, 2)        // 'NaN'   * BigNumber.DEBUG = true   * new BigNumber('blurgh')    // '[BigNumber Error] Not a number'   * new BigNumber(9, 2)        // '[BigNumber Error] Not a base 2 number'   * ```   *   * An error will also be thrown if a `BigNumber.Value` is of type number with more than 15   * significant digits, as calling `toString` or `valueOf` on such numbers may not result   * in the intended value.   *   * ```ts   * console.log(823456789123456.3)       //  823456789123456.2   * // No error, and the returned BigNumber does not have the same value as the number literal.   * new BigNumber(823456789123456.3)     // '823456789123456.2'   * BigNumber.DEBUG = true   * new BigNumber(823456789123456.3)   * // '[BigNumber Error] Number primitive has more than 15 significant digits'   * ```   *   * Check that a BigNumber instance is well-formed:   *   * ```ts   * x = new BigNumber(10)   *   * BigNumber.DEBUG = false   * // Change x.c to an illegitimate value.   * x.c = NaN   * // No error, as BigNumber.DEBUG is false.   * BigNumber.isBigNumber(x)    // true   *   * BigNumber.DEBUG = true   * BigNumber.isBigNumber(x)    // '[BigNumber Error] Invalid BigNumber'   * ```   */  static DEBUG?: boolean;  /**   * Returns a new independent BigNumber constructor with configuration as described by `object`, or   * with the default configuration if object is `null` or `undefined`.   *   * Throws if `object` is not an object.   *   * ```ts   * BigNumber.config({ DECIMAL_PLACES: 5 })   * BN = BigNumber.clone({ DECIMAL_PLACES: 9 })   *   * x = new BigNumber(1)   * y = new BN(1)   *   * x.div(3)                        // 0.33333   * y.div(3)                        // 0.333333333   *   * // BN = BigNumber.clone({ DECIMAL_PLACES: 9 }) is equivalent to:   * BN = BigNumber.clone()   * BN.config({ DECIMAL_PLACES: 9 })   * ```   *   * @param [object] The configuration object.   */  static clone(object?: BigNumber.Config): BigNumber.Constructor;  /**   * Configures the settings that apply to this BigNumber constructor.   *   * The configuration object, `object`, contains any number of the properties shown in the example   * below.   *   * Returns an object with the above properties and their current values.   *   * Throws if `object` is not an object, or if an invalid value is assigned to one or more of the   * properties.   *   * ```ts   * BigNumber.config({   *     DECIMAL_PLACES: 40,   *     ROUNDING_MODE: BigNumber.ROUND_HALF_CEIL,   *     EXPONENTIAL_AT: [-10, 20],   *     RANGE: [-500, 500],   *     CRYPTO: true,   *     MODULO_MODE: BigNumber.ROUND_FLOOR,   *     POW_PRECISION: 80,   *     FORMAT: {   *         groupSize: 3,   *         groupSeparator: ' ',   *         decimalSeparator: ','   *     },   *     ALPHABET: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'   * });   *   * BigNumber.config().DECIMAL_PLACES        // 40   * ```   *   * @param object The configuration object.   */  static config(object?: BigNumber.Config): BigNumber.Config;  /**   * Returns `true` if `value` is a BigNumber instance, otherwise returns `false`.   *   * If `BigNumber.DEBUG` is `true`, throws if a BigNumber instance is not well-formed.   *   * ```ts   * x = 42   * y = new BigNumber(x)   *   * BigNumber.isBigNumber(x)             // false   * y instanceof BigNumber               // true   * BigNumber.isBigNumber(y)             // true   *   * BN = BigNumber.clone();   * z = new BN(x)   * z instanceof BigNumber               // false   * BigNumber.isBigNumber(z)             // true   * ```   *   * @param value The value to test.   */  static isBigNumber(value: any): value is BigNumber;  /**   * Returns a BigNumber whose value is the maximum of the arguments.   *   * The return value is always exact and unrounded.   *   * ```ts   * x = new BigNumber('3257869345.0378653')   * BigNumber.maximum(4e9, x, '123456789.9')      // '4000000000'   *   * arr = [12, '13', new BigNumber(14)]   * BigNumber.maximum.apply(null, arr)            // '14'   * ```   *   * @param n A numeric value.   */  static maximum(...n: BigNumber.Value[]): BigNumber;  /**   * Returns a BigNumber whose value is the maximum of the arguments.   *   * The return value is always exact and unrounded.   *   * ```ts   * x = new BigNumber('3257869345.0378653')   * BigNumber.max(4e9, x, '123456789.9')      // '4000000000'   *   * arr = [12, '13', new BigNumber(14)]   * BigNumber.max.apply(null, arr)            // '14'   * ```   *   * @param n A numeric value.   */  static max(...n: BigNumber.Value[]): BigNumber;  /**   * Returns a BigNumber whose value is the minimum of the arguments.   *   * The return value is always exact and unrounded.   *   * ```ts   * x = new BigNumber('3257869345.0378653')   * BigNumber.minimum(4e9, x, '123456789.9')          // '123456789.9'   *   * arr = [2, new BigNumber(-14), '-15.9999', -12]   * BigNumber.minimum.apply(null, arr)                // '-15.9999'   * ```   *   * @param n A numeric value.   */  static minimum(...n: BigNumber.Value[]): BigNumber;  /**   * Returns a BigNumber whose value is the minimum of the arguments.   *   * The return value is always exact and unrounded.   *   * ```ts   * x = new BigNumber('3257869345.0378653')   * BigNumber.min(4e9, x, '123456789.9')             // '123456789.9'   *   * arr = [2, new BigNumber(-14), '-15.9999', -12]   * BigNumber.min.apply(null, arr)                   // '-15.9999'   * ```   *   * @param n A numeric value.   */  static min(...n: BigNumber.Value[]): BigNumber;  /**   * Returns a new BigNumber with a pseudo-random value equal to or greater than 0 and less than 1.   *   * The return value will have `decimalPlaces` decimal places, or less if trailing zeros are   * produced. If `decimalPlaces` is omitted, the current `DECIMAL_PLACES` setting will be used.   *   * Depending on the value of this BigNumber constructor's `CRYPTO` setting and the support for the   * `crypto` object in the host environment, the random digits of the return value are generated by   * either `Math.random` (fastest), `crypto.getRandomValues` (Web Cryptography API in recent   * browsers) or `crypto.randomBytes` (Node.js).   *   * To be able to set `CRYPTO` to true when using Node.js, the `crypto` object must be available   * globally:   *   * ```ts   * global.crypto = require('crypto')   * ```   *   * If `CRYPTO` is true, i.e. one of the `crypto` methods is to be used, the value of a returned   * BigNumber should be cryptographically secure and statistically indistinguishable from a random   * value.   *   * Throws if `decimalPlaces` is invalid.   *   * ```ts   * BigNumber.config({ DECIMAL_PLACES: 10 })   * BigNumber.random()              // '0.4117936847'   * BigNumber.random(20)            // '0.78193327636914089009'   * ```   *   * @param [decimalPlaces] Decimal places, integer, 0 to 1e+9.   */  static random(decimalPlaces?: number): BigNumber;  /**   * Returns a BigNumber whose value is the sum of the arguments.   *   * The return value is always exact and unrounded.   *   * ```ts   * x = new BigNumber('3257869345.0378653')   * BigNumber.sum(4e9, x, '123456789.9')      // '7381326134.9378653'   *   * arr = [2, new BigNumber(14), '15.9999', 12]   * BigNumber.sum.apply(null, arr)            // '43.9999'   * ```   *   * @param n A numeric value.   */  static sum(...n: BigNumber.Value[]): BigNumber;  /**   * Configures the settings that apply to this BigNumber constructor.   *   * The configuration object, `object`, contains any number of the properties shown in the example   * below.   *   * Returns an object with the above properties and their current values.   *   * Throws if `object` is not an object, or if an invalid value is assigned to one or more of the   * properties.   *   * ```ts   * BigNumber.set({   *     DECIMAL_PLACES: 40,   *     ROUNDING_MODE: BigNumber.ROUND_HALF_CEIL,   *     EXPONENTIAL_AT: [-10, 20],   *     RANGE: [-500, 500],   *     CRYPTO: true,   *     MODULO_MODE: BigNumber.ROUND_FLOOR,   *     POW_PRECISION: 80,   *     FORMAT: {   *         groupSize: 3,   *         groupSeparator: ' ',   *         decimalSeparator: ','   *     },   *     ALPHABET: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'   * });   *   * BigNumber.set().DECIMAL_PLACES        // 40   * ```   *   * @param object The configuration object.   */  static set(object?: BigNumber.Config): BigNumber.Config;}export function BigNumber(n: BigNumber.Value, base?: number): BigNumber;
 |