export type Justify = "left" | "right"; export type NumberPartType = Exclude | "sign" | "prefix" | "suffix"; export type IntegerPart = { type: NumberPartType & "integer"; value: number; }; export type FractionPart = { type: NumberPartType & "fraction"; value: number; }; export type DigitPart = IntegerPart | FractionPart; export type SymbolPart = { type: Exclude; value: string; }; export type NumberPart = DigitPart | SymbolPart; export type KeyedPart = { key: string; }; export type KeyedDigitPart = DigitPart & KeyedPart; export type KeyedSymbolPart = SymbolPart & KeyedPart; export type KeyedNumberPart = KeyedDigitPart | KeyedSymbolPart; export type Em = `${number}em`; export type Trend = number | ((oldValue: number, value: number) => number); export interface Data { pre: KeyedNumberPart[]; integer: KeyedNumberPart[]; fraction: KeyedNumberPart[]; post: KeyedNumberPart[]; formatted: string; }