///
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import * as t from '@babel/types';
import { AstFactory, BinaryOperator, LeadingComment, ObjectLiteralProperty, SourceMapRange, TemplateLiteral, VariableDeclarationType } from '../../../../src/ngtsc/translator';
/**
* A Babel flavored implementation of the AstFactory.
*/
export declare class BabelAstFactory implements AstFactory {
/** The absolute path to the source file being compiled. */
private sourceUrl;
constructor(
/** The absolute path to the source file being compiled. */
sourceUrl: string);
attachComments(statement: t.Statement, leadingComments: LeadingComment[]): void;
createArrayLiteral: typeof t.arrayExpression;
createAssignment(target: t.Expression, value: t.Expression): t.Expression;
createBinaryExpression(leftOperand: t.Expression, operator: BinaryOperator, rightOperand: t.Expression): t.Expression;
createBlock: typeof t.blockStatement;
createCallExpression(callee: t.Expression, args: t.Expression[], pure: boolean): t.Expression;
createConditional: typeof t.conditionalExpression;
createElementAccess(expression: t.Expression, element: t.Expression): t.Expression;
createExpressionStatement: typeof t.expressionStatement;
createFunctionDeclaration(functionName: string, parameters: string[], body: t.Statement): t.Statement;
createFunctionExpression(functionName: string | null, parameters: string[], body: t.Statement): t.Expression;
createIdentifier: typeof t.identifier;
createIfStatement: typeof t.ifStatement;
createLiteral(value: string | number | boolean | null | undefined): t.Expression;
createNewExpression: typeof t.newExpression;
createObjectLiteral(properties: ObjectLiteralProperty[]): t.Expression;
createParenthesizedExpression: typeof t.parenthesizedExpression;
createPropertyAccess(expression: t.Expression, propertyName: string): t.Expression;
createReturnStatement: typeof t.returnStatement;
createTaggedTemplate(tag: t.Expression, template: TemplateLiteral): t.Expression;
createThrowStatement: typeof t.throwStatement;
createTypeOfExpression(expression: t.Expression): t.Expression;
createUnaryExpression: typeof t.unaryExpression;
createVariableDeclaration(variableName: string, initializer: t.Expression | null, type: VariableDeclarationType): t.Statement;
setSourceMapRange(node: T, sourceMapRange: SourceMapRange | null): T;
}