/** * A place where strings are piled up sequentially to eventually make one big string. Or maybe straight to a * stream or whatever. */ export interface IBuffer { /** * Add zero or more strings to the buffer. */ Add(...values: string[]): IBuffer; /** * Add the requested number of spaces. */ Spaces(count: number): IBuffer; /** * Used to indicate the end of a line. Triggers special processing like trimming whitespace. */ EndLine(eolString: string): IBuffer; /** * Call this to let the buffer finish up any work in progress. */ Flush(): IBuffer; }