import { IBuffer } from "./IBuffer";
/**
 * A place where strings are piled up sequentially to eventually make one big string.
 */
export declare class StringJoinBuffer implements 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;
    /**
     * Converts the buffer's contents into a single string.
     */
    AsString(): string;
    private static readonly SPACES_CACHE;
    private _lineBuff;
    private readonly _docBuff;
    /**
     * Takes the contents of _lineBuff and merges them into a string and adds it to _docBuff.  We trim trailing
     * whitespace in the process.
     */
    private AddLineToWriter;
}
