UNPKG

@phensley/cldr-core

Version:
56 lines (55 loc) 2.17 kB
import { NumberParams } from '../../common/private'; import { NumberPattern } from '../../parsing/patterns/number'; import { Decimal, DecimalFormatter } from '../../types/numbers'; import { Part } from '../../types'; import { NumberRenderer, WrapperInternals } from '../internals'; export interface AbstractValue<R> { length(): number; add(type: string, value: string): void; get(i: number): string; append(value: R): void; insert(i: number, type: string, value: string): void; render(): R; reset(): void; } export declare class StringValue implements AbstractValue<string> { private str; length(): number; get(i: number): string; add(type: string, value: string): void; append(value: string): void; insert(i: number, type: string, value: string): void; render(): string; reset(): void; } export declare class PartsValue implements AbstractValue<Part[]> { private parts; length(): number; get(i: number): string; add(type: string, value: string): void; append(value: Part[]): void; insert(i: number, type: string, value: string): void; render(): Part[]; reset(): void; } export declare abstract class NumberFormatter<R> implements NumberRenderer<R> { readonly params: NumberParams; constructor(params: NumberParams); render(n: Decimal, pattern: NumberPattern, currencySymbol: string, percentSymbol: string, minInt: number, grouping?: boolean): R; empty(): R; make(type: string, value: string): R; wrap(internal: WrapperInternals, raw: string, ...args: R[]): R; abstract value(): AbstractValue<R>; abstract formatter(decimal: string, group: string): DecimalFormatter<R>; } export declare class StringNumberFormatter extends NumberFormatter<string> { value(): AbstractValue<string>; formatter(decimal: string, group: string): DecimalFormatter<string>; } export declare class PartsNumberFormatter extends NumberFormatter<Part[]> { value(): AbstractValue<Part[]>; formatter(decimal: string, group: string): DecimalFormatter<Part[]>; } export declare const CURRENCY_SPACING_MATCHERS: { [x: string]: (s: string) => boolean; };