/**
 * Exposes the API to build a template by writing compiled output
 * to the buffer.
 */
export declare class CompilerBuffer {
    private lines;
    private indentation;
    private wrappingBlocks;
    /**
     * Returns the indentation spaces
     */
    private getIndentationSpaces;
    /**
     * Indent code by 2 spaces
     */
    indent(): this;
    /**
     * Dedent code by 2 spaces
     */
    dedent(): this;
    /**
     * Write a statement to the buffer
     */
    writeStatement(line: string, multiline?: boolean): this;
    /**
     * Write an expression to the buffer. Colon is appended to
     * expressions.
     */
    writeExpression(line: string, multiline?: boolean): this;
    /**
     * Write a comment to the buffer
     */
    writeComment(line: string, multiline?: boolean): this;
    /**
     * Write a new empty line to the buffer
     */
    newLine(): this;
    /**
     * Define the wrapping code for the output string. To have
     * proper indentation on the output, it is recommended to defined
     * the wrapping blocks upfront.
     */
    wrappingCode(blocks: [string, string]): this;
    /**
     * Return the string representation of the buffer
     */
    toString(): string;
    /**
     * Same as `toString` but cleans up the internal stored
     * values.
     */
    flush(): string;
}
