export type WriterResult = Array; export declare class Writer { base: string; indent: string; result: WriterResult; constructor(); static block(cb: (writer: Writer) => void): string; static mergeConsecutiveStrings(arr: WriterResult): WriterResult; static join(left: WriterResult, right: WriterResult): WriterResult; newline(): void; write(str: string | Array | WriterResult): void; withIndent(cb: () => void, condition?: { test: () => boolean; wrap?: (cb: () => void) => void; }): void; withTemp(cb: () => void): WriterResult; line(cb: () => void): void; toString(): string; }