export declare class CodeGenerator {
    private indent;
    private indentStr;
    private output;
    private sourceCode;
    private sourceLines;
    private lastCommentedLine;
    private includeSourceComments;
    constructor(options?: {
        indentStr?: string;
        sourceCode?: string;
        includeSourceComments?: boolean;
    });
    generate(ast: any): string;
    writeSourceComment(startLine: any, endLine?: any): void;
    write(str: any): void;
    writeLine(str?: string): void;
    increaseIndent(): void;
    decreaseIndent(): void;
    generateProgram(node: any): void;
    generateStatement(node: any): void;
    generateTypeDefinition(node: any): void;
    generateFunctionDeclaration(node: any): void;
    generateVariableDeclaration(node: any): void;
    generateExpressionStatement(node: any): void;
    generateIfStatement(node: any): void;
    generateIfStatementWithAssignment(condExpr: any, varName: any): void;
    generateNestedIfWithAssignments(node: any, varName: any): void;
    generateNestedIfAlternatesWithAssignments(alternate: any, varName: any): void;
    generateForStatement(node: any): void;
    generateWhileStatement(node: any): void;
    generateReturnStatement(node: any): void;
    generateBlockStatement(node: any, addIndent?: boolean): void;
    generateExpression(node: any): void;
    generateLiteral(node: any): void;
    generateBinaryExpression(node: any): void;
    generateUnaryExpression(node: any): void;
    generateAssignmentExpression(node: any): void;
    generateUpdateExpression(node: any): void;
    generateCallExpression(node: any): void;
    generateMemberExpression(node: any): void;
    generateConditionalExpression(node: any): void;
    generateIIFEConditional(node: any): void;
    generateIIFEIfBlock(node: any): void;
    generateNestedIfWithReturns(node: any): void;
    generateNestedIfAlternates(alternate: any): void;
    generateNestedIfAsExpression(node: any): void;
    generateArrayExpression(node: any): void;
    generateObjectExpression(node: any): void;
    generateSwitchExpression(node: any): void;
    generateSequenceExpression(node: any): void;
    needsParentheses(node: any): boolean;
}
