@phensley/cldr-core
Version:
Core library for @phensley/cldr
32 lines (31 loc) • 1.03 kB
TypeScript
import { Part } from '../types';
import { WrapperNode } from '../parsing/patterns/wrapper';
export interface Renderer<R> {
add(type: string, value: string): void;
append(rendered: R): void;
literal(value: string): void;
get(): R;
join(...elems: R[]): R;
wrap(format: WrapperNode[], args: R[]): void;
empty(): R;
}
export declare class StringRenderer implements Renderer<string> {
protected str: string;
literal(value: string): void;
add(type: string, value: string): void;
append(rendered: string): void;
get(): string;
join(...str: string[]): string;
empty(): string;
wrap(pattern: WrapperNode[], args: string[]): void;
}
export declare class PartsRenderer implements Renderer<Part[]> {
protected parts: Part[];
literal(value: string): void;
add(type: string, value: string): void;
append(rendered: Part[]): void;
get(): Part[];
join(...parts: Part[][]): Part[];
empty(): Part[];
wrap(pattern: WrapperNode[], args: Part[][]): void;
}