import { SourceFile } from "../tree";
import { ValidRecipeReturnType } from "../visitor";
import { Expression, J, JavaVisitor, NameTree, Statement, Type } from "../java";
import { Draft } from "mutative";
import { JS, JSX } from "./tree";
export declare class JavaScriptVisitor
extends JavaVisitor
{
isAcceptable(sourceFile: SourceFile): Promise;
protected visitExpression(expression: Expression, p: P): Promise;
protected visitStatement(statement: Statement, p: P): Promise;
visitSpace(space: J.Space, p: P): Promise;
protected visitType(javaType: Type | undefined, p: P): Promise;
protected visitTypeName(nameTree: N, p: P): Promise;
protected produceJavaScript(before: J2, p: P, recipe?: (draft: Draft) => ValidRecipeReturnType> | PromiseLike>>): Promise;
protected visitAlias(alias: JS.Alias, p: P): Promise;
protected visitArrowFunction(arrowFunction: JS.ArrowFunction, p: P): Promise;
protected visitAs(as_: JS.As, p: P): Promise;
protected visitAwait(await_: JS.Await, p: P): Promise;
protected visitJsxTag(element: JSX.Tag, p: P): Promise;
protected visitJsxAttribute(attribute: JSX.Attribute, p: P): Promise;
protected visitJsxSpreadAttribute(spread: JSX.SpreadAttribute, p: P): Promise;
protected visitJsxEmbeddedExpression(expr: JSX.EmbeddedExpression, p: P): Promise;
protected visitJsxNamespacedName(ns: JSX.NamespacedName, p: P): Promise;
protected visitJsCompilationUnit(compilationUnit: JS.CompilationUnit, p: P): Promise;
protected visitConditionalType(conditionalType: JS.ConditionalType, p: P): Promise;
protected visitDelete(delete_: JS.Delete, p: P): Promise;
protected visitExpressionStatement(expressionStatement: JS.ExpressionStatement, p: P): Promise;
protected visitExpressionWithTypeArguments(expressionWithTypeArguments: JS.ExpressionWithTypeArguments, p: P): Promise;
protected visitFunctionCall(functionCall: JS.FunctionCall, p: P): Promise;
protected visitFunctionType(functionType: JS.FunctionType, p: P): Promise;
protected visitInferType(inferType: JS.InferType, p: P): Promise;
protected visitImportType(importType: JS.ImportType, p: P): Promise;
protected visitImportDeclaration(jsImport: JS.Import, p: P): Promise;
protected visitImportClause(importClause: JS.ImportClause, p: P): Promise;
protected visitNamedImports(namedImports: JS.NamedImports, p: P): Promise;
protected visitImportSpecifier(importSpecifier: JS.ImportSpecifier, p: P): Promise;
protected visitImportAttributes(importAttributes: JS.ImportAttributes, p: P): Promise;
protected visitImportTypeAttributes(importTypeAttributes: JS.ImportTypeAttributes, p: P): Promise;
protected visitImportAttribute(importAttribute: JS.ImportAttribute, p: P): Promise;
protected visitBinaryExtensions(jsBinary: JS.Binary, p: P): Promise;
protected visitLiteralType(literalType: JS.LiteralType, p: P): Promise;
protected visitMappedType(mappedType: JS.MappedType, p: P): Promise;
protected visitMappedTypeKeysRemapping(keysRemapping: JS.MappedType.KeysRemapping, p: P): Promise;
protected visitMappedTypeParameter(mappedTypeParameter: JS.MappedType.Parameter, p: P): Promise;
protected visitObjectBindingPattern(objectBindingPattern: JS.ObjectBindingPattern, p: P): Promise;
protected visitPropertyAssignment(propertyAssignment: JS.PropertyAssignment, p: P): Promise;
protected visitSatisfiesExpression(satisfiesExpression: JS.SatisfiesExpression, p: P): Promise;
protected visitScopedVariableDeclarations(scopedVariableDeclarations: JS.ScopedVariableDeclarations, p: P): Promise;
protected visitShebang(shebang: JS.Shebang, p: P): Promise;
protected visitSpread(spread: JS.Spread, p: P): Promise;
protected visitStatementExpression(statementExpression: JS.StatementExpression, p: P): Promise;
protected visitTaggedTemplateExpression(taggedTemplateExpression: JS.TaggedTemplateExpression, p: P): Promise;
protected visitTemplateExpression(templateExpression: JS.TemplateExpression, p: P): Promise;
protected visitTemplateExpressionSpan(span: JS.TemplateExpression.Span, p: P): Promise;
protected visitTuple(tuple: JS.Tuple, p: P): Promise;
protected visitTypeDeclaration(typeDeclaration: JS.TypeDeclaration, p: P): Promise;
protected visitTypeOf(typeOf: JS.TypeOf, p: P): Promise;
protected visitTypeTreeExpression(typeTreeExpression: JS.TypeTreeExpression, p: P): Promise;
protected visitAssignmentOperationExtensions(assignmentOperation: JS.AssignmentOperation, p: P): Promise;
protected visitIndexedAccessType(indexedAccessType: JS.IndexedAccessType, p: P): Promise;
protected visitIndexedAccessTypeIndexType(indexType: JS.IndexedAccessType.IndexType, p: P): Promise;
protected visitTypeQuery(typeQuery: JS.TypeQuery, p: P): Promise;
protected visitTypeInfo(typeInfo: JS.TypeInfo, p: P): Promise;
protected visitComputedPropertyName(computedPropertyName: JS.ComputedPropertyName, p: P): Promise;
protected visitTypeOperator(typeOperator: JS.TypeOperator, p: P): Promise;
protected visitTypePredicate(typePredicate: JS.TypePredicate, p: P): Promise;
protected visitUnion(union: JS.Union, p: P): Promise;
protected visitIntersection(intersection: JS.Intersection, p: P): Promise;
protected visitVoid(void_: JS.Void, p: P): Promise;
protected visitWithStatement(withStatement: JS.WithStatement, p: P): Promise;
protected visitIndexSignatureDeclaration(indexSignatureDeclaration: JS.IndexSignatureDeclaration, p: P): Promise;
protected visitComputedPropertyMethodDeclaration(computedPropMethod: JS.ComputedPropertyMethodDeclaration, p: P): Promise;
protected visitForOfLoop(forOfLoop: JS.ForOfLoop, p: P): Promise;
protected visitForInLoop(forInLoop: JS.ForInLoop, p: P): Promise;
protected visitNamespaceDeclaration(namespaceDeclaration: JS.NamespaceDeclaration, p: P): Promise;
protected visitTypeLiteral(typeLiteral: JS.TypeLiteral, p: P): Promise;
protected visitArrayBindingPattern(arrayBindingPattern: JS.ArrayBindingPattern, p: P): Promise;
protected visitBindingElement(bindingElement: JS.BindingElement, p: P): Promise;
protected visitExportDeclaration(exportDeclaration: JS.ExportDeclaration, p: P): Promise;
protected visitExportAssignment(exportAssignment: JS.ExportAssignment, p: P): Promise;
protected visitNamedExports(namedExports: JS.NamedExports, p: P): Promise;
protected visitExportSpecifier(exportSpecifier: JS.ExportSpecifier, p: P): Promise;
accept(j: J2, p: P2): Promise;
}
//# sourceMappingURL=visitor.d.ts.map