/**
 * Add indent to all lines of input string.
 * Empty lines are skipped.
 * @param s The string about to indent
 * @returns Intented string
 */
export declare function indent(s: string): string;
/**
 * A class to help create create blocks encapsulated with braces
 * +-----------------------------------+
 * | [prefix] {                        | Brace
 * |    [line]                         |
 * |    ...                            |
 * |    +------------+                 |
 * |    | [prefix] { | Child Brace     |
 * |    | }          |                 |
 * |    +------------+                 |
 * |    [line]                         |
 * | }                                 |
 * +-----------------------------------+
 */
export declare class Brace {
    private prefix;
    /**
     *
     * brace:       |   nobrace:   | pbrace:
     * -------------+--------------+--------------
     *              |              |
     * [prefix] {   |   [prefix]   |  [prefix]
     *    [line]    |      [line]  |  [line]
     *    [line]    |      [line]  |  [line]
     *    ...       |      ...     |  ...
     * }            |              |
     *              |              |
     */
    type: "brace" | "nobrace" | "flat";
    /**
     * The content
     */
    private list;
    /**
     *
     * @param prefix THe prefix to brance
     */
    constructor(prefix: string);
    /**
     *
     * @param item
     */
    add(item: string | Brace | ((b: BraceCaller) => void)): Brace;
    toString(): string;
}
/**
 * The argument for
 */
export declare class BraceCaller extends Function {
    brace: Brace;
    constructor(brace: Brace);
    _call(item: string | Brace | ((b: BraceCaller) => void)): void;
    bra(prefix: string): Brace;
}
/**
 * Convenient function to create Brace instance.
 * @param prefix
 * @returns Newly created Brace instance
 */
export declare function bra(prefix: string): Brace;
export declare function flatBra(prefix: string): Brace;
