UNPKG

@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
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>];