import BigNumber from 'bignumber.js'; import { Codec } from '@polkadot/types/types'; /** * @constant * @type {(0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8)} * @description * | Value | Property | Description | * | 0 | ROUND_UP | Rounds away from zero | * | 1 | ROUND_DOWN | Rounds towards zero | * | 2 | ROUND_CEIL | Rounds towards Infinity | * | 3 | ROUND_FLOOR | Rounds towards -Infinity | * | 4 | ROUND_HALF_UP | Rounds towards nearest neighbour, If equidistant, rounds away form zero | * | 5 | ROUND_HALF_DOWN | Rounds towards nearest neighbour, If equidistant, rounds towards zero | * | 6 | ROUND_HALF_EVEN | Rounds towards nearest neighbour, If equidistant, rounds towards even zero | * | 7 | ROUND_HALF_CEIL | Rounds towards nearest neighbour, If equidistant, rounds towards Infinity | * | 8 | ROUND_HALF_FLOOR | Rounds towards nearest neighbour, If equidistant, rounds towards -Infinity | */ export declare type ROUND_MODE = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8; declare type NumLike = number | string; /** * @class Fixed18 * @description fixed point mathematical operation support with 18 decimals */ export declare class Fixed18 { private inner; /** * @constant * @description precision to 18 decimals */ static PRECISION: number; /** * @constant * @description zero */ static ZERO: Fixed18; /** * @description constructor of Fixed18 * @param {(number | string | BigNumber)} origin - the origin number */ constructor(origin: NumLike | BigNumber); /** * @name getInner * @description get the inner BigNumber value */ getInner(): BigNumber; /** * @name toString * @description format real number(division by precision) to string * @param {number} [dp=6] - decimal places deafult is 6 * @param {number} [rm=3] - round modle, default is ROUND_FLOOR */ toString(dp?: number, rm?: ROUND_MODE): string; /** * @name toFixed * @description format real number string(division by precision) to string * @param {number} [dp=6] - decimal places deafult is 6 * @param {number} [rm=3] - round modle, default is ROUND_FLOOR */ toFixed(dp?: number, rm?: ROUND_MODE): string; /** * @name innerToString * @description format inner BigNumber value to string * @param {number} [dp=0] - decimal places deafult is 0 * @param {number} [rm=3] - round modle, default is ROUND_FLOOR */ innerToString(dp?: number, rm?: ROUND_MODE): string; /** * @name innerToNumber * @description format inner BigNumber value to string * @param {number} [dp=0] - decimal places deafult is 0 * @param {number} [rm=3] - round modle, default is ROUND_FLOOR */ innerToNumber(dp?: number, rm?: ROUND_MODE): number; /** * @name toNumber * @description format real number(division by precision) to number * @param {number} [dp=6] - decimal places deafult is 6 * @param {number} [rm=3] - round modle, default is ROUND_FLOOR */ toNumber(dp?: number, rm?: ROUND_MODE): number; /** * @name deciminalPlaces * @description returns a Fixed18 whose value is the value of this Fixed18 rounded by rounding mode roundingMode to a maximum of decimalPlaces decimal places. * @param {number} [dp=18] - decimal places * @param {number} [rm=3] - round modle, default is ROUND_FLOOR */ decimalPlaces(dp?: number, rm?: ROUND_MODE): Fixed18; /** * @name fromNatural * @description get Fixed18 from real number, will multiply by precision * @param {(string | number)} target - target number */ static fromNatural(target: NumLike): Fixed18; /** * @name fromParts * @description get Fixed18 from real number, will not multiply by precision * @param {(string | number)} parts - parts number */ static fromParts(parts: NumLike): Fixed18; /** * @name formRational * @param {(string | number)} n - numerator * @param {(string | number)} d - denominator */ static fromRational(n: NumLike, d: NumLike): Fixed18; /** * @name add * @description fixed-point addition operator * @param {Fixed18} target - target number */ add(target: Fixed18): Fixed18; /** * @name sub * @description fixed-point subtraction operator * @param {Fixed18} target - target number */ sub(target: Fixed18): Fixed18; /** * @name mul * @description fixed-point multiplication operator * @param {Fixed18} target - target number */ mul(target: Fixed18): Fixed18; /** * @name div * @description fixed-point divided operator * @param {Fixed18} target - target number */ div(target: Fixed18): Fixed18; /** * @name isLessThan * @description return true if the value is less than the target value * @param {Fixed18} target - target number */ isLessThan(target: Fixed18): boolean; /** * @name isGreaterThan * @description return true if the value is greater than the target value * @param {Fixed18} target - target number */ isGreaterThan(target: Fixed18): boolean; /** * @name isEqualTo * @description return true if the values are equal * @param {Fixed18} target - target number */ isEqualTo(target: Fixed18): boolean; /** * @name max * @description return the max value * @param {...Fixed18} target - target numbers */ max(...targets: Fixed18[]): Fixed18; /** * @name min * @description return the min value * @param {...Fixed18} target - target numbers */ min(...targets: Fixed18[]): Fixed18; /** * @name nagated * @description return the nageted value */ negated(): Fixed18; /** * @name isZero * @description return true if the value of inner is 0 */ isZero(): boolean; /** * @name isNaN * @description return true if the value of inner is NaN */ isNaN(): boolean; /** * @name isFinity * @description return true if the value of inner is finity, only return false when the value is NaN, -Infinity or Infinity. */ isFinity(): boolean; } export declare function convertToFixed18(data: Codec | number | Fixed18): Fixed18; export {};