@atomic-ehr/ucum
Version:
TypeScript implementation of UCUM (Unified Code for Units of Measure)
46 lines • 1.74 kB
TypeScript
import { parseUnit } from './parser';
import { toCanonicalForm } from './canonical-form';
import type { DimensionObject } from './dimension';
import type { CanonicalForm } from './canonical-form';
import type { ValidationResult } from './validation';
import type { Quantity } from './quantity';
import type { ParseResult } from './parser/types';
export interface UnitInfo {
type: 'base' | 'derived' | 'special' | 'arbitrary' | 'dimensionless';
code: string;
name: string;
printSymbol?: string;
isMetric: boolean;
isSpecial: boolean;
isArbitrary: boolean;
isBase: boolean;
class?: string;
property?: string;
dimension: DimensionObject;
canonical: CanonicalForm;
definition?: string;
}
export interface DisplayOptions {
locale?: string;
format?: 'symbol' | 'name' | 'long';
}
export interface UCUM {
validate(unit: string): ValidationResult;
convert(value: number, from: string, to: string): number;
isConvertible(from: string, to: string): boolean;
quantity(value: number, unit: string): Quantity;
add(q1: Quantity, q2: Quantity): Quantity;
subtract(q1: Quantity, q2: Quantity): Quantity;
multiply(q1: Quantity, q2: Quantity | number): Quantity;
divide(q1: Quantity, q2: Quantity | number): Quantity;
pow(q: Quantity, exponent: number): Quantity;
info(unit: string): UnitInfo;
display(unit: string, options?: DisplayOptions): string;
isSpecialUnit(unit: string): boolean;
isArbitraryUnit(unit: string): boolean;
}
export declare const ucum: UCUM;
export default ucum;
export type { Quantity, ValidationResult, CanonicalForm, DimensionObject, ParseResult };
export { parseUnit, toCanonicalForm };
//# sourceMappingURL=index.d.ts.map