import { Program } from './types';
export declare class CodeGenerator {
    private indentLevel;
    private readonly indentSize;
    private importCounter;
    private readonly builtinMappings;
    private readonly operatorPrecedence;
    generate(ast: Program): string;
    private generateProgram;
    private generateStatement;
    private generateVariableDeclaration;
    private generateFunctionDeclaration;
    private generateBlockStatement;
    private generateReturnStatement;
    private generateIfStatement;
    private generateWhileStatement;
    private generateForStatement;
    private generateForInStatement;
    private generateForOfStatement;
    private generateExpressionStatement;
    private generateExpression;
    private generateSimpleExpression;
    private generateOperatorExpression;
    private generateCallAssignmentExpression;
    private generateStructuralExpression;
    private generateSpecialExpression;
    private generateFunctionExpression;
    private generateArrowFunctionExpression;
    private generateImportExpression;
    private handleUnknownExpression;
    private generateImportDeclaration;
    private generateExportDeclaration;
    private generateExportWithDeclaration;
    private extractExportName;
    private generateExportWithSpecifiers;
    private generateReExportWithSpecifiers;
    private generateDirectExportSpecifiers;
    private generateWildcardExport;
    private convertSourcePath;
    private generateIdentifier;
    private generateLiteral;
    private generateTemplateLiteral;
    private generateBinaryExpression;
    private generateUnaryExpression;
    private generateUpdateExpression;
    private generateCallExpression;
    private generateAssignmentExpression;
    /**
     * Try to map object name if it's a built-in object
     */
    private mapBuiltinObject;
    /**
     * Check if object looks like a user class instance
     */
    private looksLikeClassInstance;
    /**
     * Try to map property name based on context
     */
    private mapPropertyName;
    private generateMemberExpression;
    private generateArrayExpression;
    private generateObjectExpression;
    private generateTryStatement;
    private generateThrowStatement;
    private generateAwaitExpression;
    private generateNewExpression;
    private generateInterfaceDeclaration;
    private generateTypeAlias;
    private generateNamespaceDeclaration;
    private generateExportedNamespaceMember;
    private generateNestedNamespaceExport;
    private getMemberName;
    private generateClassDeclaration;
    private generateMethodDefinition;
    private generatePropertyDefinition;
    private needsParentheses;
    private generateSwitchStatement;
    private generatePattern;
    private generateArrayPattern;
    private generateObjectPattern;
    private generatePropertyPattern;
    private generateSpreadElement;
    private indent;
    private getIndent;
}
//# sourceMappingURL=codegen.d.ts.map