import { Part } from '@phensley/decimal'; import { WrapperNode } from '../parsing/wrapper'; export interface AbstractValue { 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; join(...elems: R[]): R; wrap(pattern: WrapperNode[], args: R[]): void; empty(): R; } export declare class StringValue implements AbstractValue { 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; join(...str: string[]): string; wrap(pattern: WrapperNode[], args: string[]): void; empty(): string; } export declare class PartsValue implements AbstractValue { 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; join(...parts: Part[][]): Part[]; wrap(pattern: WrapperNode[], args: Part[][]): void; empty(): Part[]; }