@epicallan/money-ts
Version:
TypeScript library for type-safe and lossless encoding and manipulation of world currencies and precious metals
33 lines (32 loc) • 1.79 kB
TypeScript
import { Integer } from './Integer';
import { Eq } from 'fp-ts/Eq';
import { Ord } from 'fp-ts/Ord';
import { Discrete, Format } from './Discrete';
import { Dimensions, Units } from './Scale';
import { NonZeroRational } from './NonZeroRational';
import { PositiveRational } from './PositiveRational';
import * as R from './Rational';
export declare class Dense<D extends string> {
readonly dimension: D;
readonly value: R.Rational;
constructor(dimension: D, value: R.Rational);
isZero(): boolean;
add(y: Dense<D>): Dense<D>;
mul(y: R.Rational): Dense<D>;
negate(): Dense<D>;
sub(y: Dense<D>): Dense<D>;
div(y: NonZeroRational): Dense<D>;
inspect(): string;
toString(): string;
}
export declare function fromInteger<D extends string>(d: D, i: Integer): Dense<D>;
export declare function getZero<D extends string>(d: D): Dense<D>;
export declare function getOne<D extends string>(d: D): Dense<D>;
export declare function getEq<D extends string>(): Eq<Dense<D>>;
export declare function getOrd<D extends string>(): Ord<Dense<D>>;
export declare function getScale<D extends Dimensions, U extends Units<D>>(format: Format<D, U>): PositiveRational;
export declare function fromDiscrete<D extends Dimensions, U extends Units<D>>(d: Discrete<D, U>): Dense<D>;
export declare function floor<D extends Dimensions, U extends Units<D>>(unit: U, d: Dense<D>): [Discrete<D, U>, Dense<D>];
export declare function round<D extends Dimensions, U extends Units<D>>(unit: U, d: Dense<D>): [Discrete<D, U>, Dense<D>];
export declare function ceil<D extends Dimensions, U extends Units<D>>(unit: U, d: Dense<D>): [Discrete<D, U>, Dense<D>];
export declare function trunc<D extends Dimensions, U extends Units<D>>(unit: U, d: Dense<D>): [Discrete<D, U>, Dense<D>];