@phensley/cldr-core
Version:
Core library for @phensley/cldr
56 lines (55 loc) • 2.17 kB
TypeScript
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;
};