// Code generated by _scripts/generate-encoder.ts. DO NOT EDIT.
import { SyntaxKind } from "../../ast/index.js";
export const childProperties = {
    [SyntaxKind.QualifiedName]: ["left", "right"],
    [SyntaxKind.ComputedPropertyName]: ["expression"],
    [SyntaxKind.Decorator]: ["expression"],
    [SyntaxKind.IfStatement]: ["expression", "thenStatement", "elseStatement"],
    [SyntaxKind.DoStatement]: ["statement", "expression"],
    [SyntaxKind.WhileStatement]: ["expression", "statement"],
    [SyntaxKind.ForStatement]: ["initializer", "condition", "incrementor", "statement"],
    [SyntaxKind.ForInStatement]: ["awaitModifier", "initializer", "expression", "statement"],
    [SyntaxKind.ForOfStatement]: ["awaitModifier", "initializer", "expression", "statement"],
    [SyntaxKind.BreakStatement]: ["label"],
    [SyntaxKind.ContinueStatement]: ["label"],
    [SyntaxKind.ReturnStatement]: ["expression"],
    [SyntaxKind.WithStatement]: ["expression", "statement"],
    [SyntaxKind.SwitchStatement]: ["expression", "caseBlock"],
    [SyntaxKind.CaseBlock]: ["clauses"],
    [SyntaxKind.CaseClause]: ["expression", "statements"],
    [SyntaxKind.DefaultClause]: ["expression", "statements"],
    [SyntaxKind.ThrowStatement]: ["expression"],
    [SyntaxKind.TryStatement]: ["tryBlock", "catchClause", "finallyBlock"],
    [SyntaxKind.CatchClause]: ["variableDeclaration", "block"],
    [SyntaxKind.LabeledStatement]: ["label", "statement"],
    [SyntaxKind.ExpressionStatement]: ["expression"],
    [SyntaxKind.Block]: ["statements"],
    [SyntaxKind.VariableStatement]: ["modifiers", "declarationList"],
    [SyntaxKind.VariableDeclaration]: ["name", "exclamationToken", "type", "initializer"],
    [SyntaxKind.VariableDeclarationList]: ["declarations"],
    [SyntaxKind.ObjectBindingPattern]: ["elements"],
    [SyntaxKind.ArrayBindingPattern]: ["elements"],
    [SyntaxKind.Parameter]: ["modifiers", "dotDotDotToken", "name", "questionToken", "type", "initializer"],
    [SyntaxKind.BindingElement]: ["dotDotDotToken", "propertyName", "name", "initializer"],
    [SyntaxKind.MissingDeclaration]: ["modifiers"],
    [SyntaxKind.FunctionDeclaration]: ["modifiers", "asteriskToken", "name", "typeParameters", "parameters", "type", "body"],
    [SyntaxKind.ClassDeclaration]: ["modifiers", "name", "typeParameters", "heritageClauses", "members"],
    [SyntaxKind.ClassExpression]: ["modifiers", "name", "typeParameters", "heritageClauses", "members"],
    [SyntaxKind.HeritageClause]: ["types"],
    [SyntaxKind.InterfaceDeclaration]: ["modifiers", "name", "typeParameters", "heritageClauses", "members"],
    [SyntaxKind.TypeAliasDeclaration]: ["modifiers", "name", "typeParameters", "type"],
    [SyntaxKind.JSTypeAliasDeclaration]: ["modifiers", "name", "typeParameters", "type"],
    [SyntaxKind.EnumMember]: ["name", "initializer"],
    [SyntaxKind.EnumDeclaration]: ["modifiers", "name", "members"],
    [SyntaxKind.ModuleBlock]: ["statements"],
    [SyntaxKind.ImportDeclaration]: ["modifiers", "importClause", "moduleSpecifier", "attributes"],
    [SyntaxKind.JSImportDeclaration]: ["modifiers", "importClause", "moduleSpecifier", "attributes"],
    [SyntaxKind.ExternalModuleReference]: ["expression"],
    [SyntaxKind.NamespaceImport]: ["name"],
    [SyntaxKind.NamedImports]: ["elements"],
    [SyntaxKind.ExportAssignment]: ["modifiers", "type", "expression"],
    [SyntaxKind.NamespaceExportDeclaration]: ["modifiers", "name"],
    [SyntaxKind.NamespaceExport]: ["name"],
    [SyntaxKind.NamedExports]: ["elements"],
    [SyntaxKind.ExportSpecifier]: ["propertyName", "name"],
    [SyntaxKind.CallSignature]: ["typeParameters", "parameters", "type"],
    [SyntaxKind.ConstructSignature]: ["typeParameters", "parameters", "type"],
    [SyntaxKind.Constructor]: ["modifiers", "typeParameters", "parameters", "type", "body"],
    [SyntaxKind.GetAccessor]: ["modifiers", "name", "typeParameters", "parameters", "type", "body"],
    [SyntaxKind.SetAccessor]: ["modifiers", "name", "typeParameters", "parameters", "type", "body"],
    [SyntaxKind.IndexSignature]: ["modifiers", "parameters", "type"],
    [SyntaxKind.MethodSignature]: ["modifiers", "name", "postfixToken", "typeParameters", "parameters", "type"],
    [SyntaxKind.MethodDeclaration]: ["modifiers", "asteriskToken", "name", "postfixToken", "typeParameters", "parameters", "type", "body"],
    [SyntaxKind.PropertySignature]: ["modifiers", "name", "postfixToken", "type", "initializer"],
    [SyntaxKind.PropertyDeclaration]: ["modifiers", "name", "postfixToken", "type", "initializer"],
    [SyntaxKind.ClassStaticBlockDeclaration]: ["modifiers", "body"],
    [SyntaxKind.BinaryExpression]: ["modifiers", "left", "type", "operatorToken", "right"],
    [SyntaxKind.PrefixUnaryExpression]: ["operand"],
    [SyntaxKind.PostfixUnaryExpression]: ["operand"],
    [SyntaxKind.YieldExpression]: ["asteriskToken", "expression"],
    [SyntaxKind.ArrowFunction]: ["modifiers", "typeParameters", "parameters", "type", "equalsGreaterThanToken", "body"],
    [SyntaxKind.FunctionExpression]: ["modifiers", "asteriskToken", "name", "typeParameters", "parameters", "type", "body"],
    [SyntaxKind.AsExpression]: ["expression", "type"],
    [SyntaxKind.SatisfiesExpression]: ["expression", "type"],
    [SyntaxKind.ConditionalExpression]: ["condition", "questionToken", "whenTrue", "colonToken", "whenFalse"],
    [SyntaxKind.PropertyAccessExpression]: ["expression", "questionDotToken", "name"],
    [SyntaxKind.ElementAccessExpression]: ["expression", "questionDotToken", "argumentExpression"],
    [SyntaxKind.CallExpression]: ["expression", "questionDotToken", "typeArguments", "arguments"],
    [SyntaxKind.NewExpression]: ["expression", "typeArguments", "arguments"],
    [SyntaxKind.MetaProperty]: ["name"],
    [SyntaxKind.NonNullExpression]: ["expression"],
    [SyntaxKind.SpreadElement]: ["expression"],
    [SyntaxKind.TemplateExpression]: ["head", "templateSpans"],
    [SyntaxKind.TemplateSpan]: ["expression", "literal"],
    [SyntaxKind.TaggedTemplateExpression]: ["tag", "questionDotToken", "typeArguments", "template"],
    [SyntaxKind.ParenthesizedExpression]: ["expression"],
    [SyntaxKind.ArrayLiteralExpression]: ["elements"],
    [SyntaxKind.ObjectLiteralExpression]: ["properties"],
    [SyntaxKind.SpreadAssignment]: ["expression"],
    [SyntaxKind.PropertyAssignment]: ["modifiers", "name", "postfixToken", "type", "initializer"],
    [SyntaxKind.ShorthandPropertyAssignment]: ["modifiers", "name", "postfixToken", "type", "equalsToken", "objectAssignmentInitializer"],
    [SyntaxKind.DeleteExpression]: ["expression"],
    [SyntaxKind.TypeOfExpression]: ["expression"],
    [SyntaxKind.VoidExpression]: ["expression"],
    [SyntaxKind.AwaitExpression]: ["expression"],
    [SyntaxKind.TypeAssertionExpression]: ["type", "expression"],
    [SyntaxKind.UnionType]: ["types"],
    [SyntaxKind.IntersectionType]: ["types"],
    [SyntaxKind.ConditionalType]: ["checkType", "extendsType", "trueType", "falseType"],
    [SyntaxKind.TypeOperator]: ["type"],
    [SyntaxKind.InferType]: ["typeParameter"],
    [SyntaxKind.ArrayType]: ["elementType"],
    [SyntaxKind.IndexedAccessType]: ["objectType", "indexType"],
    [SyntaxKind.TypeReference]: ["typeName", "typeArguments"],
    [SyntaxKind.ExpressionWithTypeArguments]: ["expression", "typeArguments"],
    [SyntaxKind.LiteralType]: ["literal"],
    [SyntaxKind.TypePredicate]: ["assertsModifier", "parameterName", "type"],
    [SyntaxKind.ImportAttribute]: ["name", "value"],
    [SyntaxKind.ImportAttributes]: ["attributes"],
    [SyntaxKind.TypeQuery]: ["exprName", "typeArguments"],
    [SyntaxKind.MappedType]: ["readonlyToken", "typeParameter", "nameType", "questionToken", "type", "members"],
    [SyntaxKind.TypeLiteral]: ["members"],
    [SyntaxKind.TupleType]: ["elements"],
    [SyntaxKind.NamedTupleMember]: ["dotDotDotToken", "name", "questionToken", "type"],
    [SyntaxKind.OptionalType]: ["type"],
    [SyntaxKind.RestType]: ["type"],
    [SyntaxKind.ParenthesizedType]: ["type"],
    [SyntaxKind.FunctionType]: ["typeParameters", "parameters", "type"],
    [SyntaxKind.ConstructorType]: ["modifiers", "typeParameters", "parameters", "type"],
    [SyntaxKind.TemplateLiteralType]: ["head", "templateSpans"],
    [SyntaxKind.TemplateLiteralTypeSpan]: ["type", "literal"],
    [SyntaxKind.SyntheticExpression]: ["tupleNameSource"],
    [SyntaxKind.PartiallyEmittedExpression]: ["expression"],
    [SyntaxKind.JsxElement]: ["openingElement", "children", "closingElement"],
    [SyntaxKind.JsxAttributes]: ["properties"],
    [SyntaxKind.JsxNamespacedName]: ["namespace", "name"],
    [SyntaxKind.JsxOpeningElement]: ["tagName", "typeArguments", "attributes"],
    [SyntaxKind.JsxSelfClosingElement]: ["tagName", "typeArguments", "attributes"],
    [SyntaxKind.JsxFragment]: ["openingFragment", "children", "closingFragment"],
    [SyntaxKind.JsxAttribute]: ["name", "initializer"],
    [SyntaxKind.JsxSpreadAttribute]: ["expression"],
    [SyntaxKind.JsxClosingElement]: ["tagName"],
    [SyntaxKind.JsxExpression]: ["dotDotDotToken", "expression"],
    [SyntaxKind.SyntaxList]: ["children"],
    [SyntaxKind.JSDoc]: ["comment", "tags"],
    [SyntaxKind.JSDocTypeExpression]: ["type"],
    [SyntaxKind.JSDocNonNullableType]: ["type"],
    [SyntaxKind.JSDocNullableType]: ["type"],
    [SyntaxKind.JSDocVariadicType]: ["type"],
    [SyntaxKind.JSDocOptionalType]: ["type"],
    [SyntaxKind.JSDocTypeTag]: ["tagName", "typeExpression", "comment"],
    [SyntaxKind.JSDocUnknownTag]: ["tagName", "comment"],
    [SyntaxKind.JSDocTemplateTag]: ["tagName", "constraint", "typeParameters", "comment"],
    [SyntaxKind.JSDocReturnTag]: ["tagName", "typeExpression", "comment"],
    [SyntaxKind.JSDocPublicTag]: ["tagName", "comment"],
    [SyntaxKind.JSDocPrivateTag]: ["tagName", "comment"],
    [SyntaxKind.JSDocProtectedTag]: ["tagName", "comment"],
    [SyntaxKind.JSDocReadonlyTag]: ["tagName", "comment"],
    [SyntaxKind.JSDocOverrideTag]: ["tagName", "comment"],
    [SyntaxKind.JSDocDeprecatedTag]: ["tagName", "comment"],
    [SyntaxKind.JSDocSeeTag]: ["tagName", "nameExpression", "comment"],
    [SyntaxKind.JSDocImplementsTag]: ["tagName", "className", "comment"],
    [SyntaxKind.JSDocAugmentsTag]: ["tagName", "className", "comment"],
    [SyntaxKind.JSDocSatisfiesTag]: ["tagName", "typeExpression", "comment"],
    [SyntaxKind.JSDocThrowsTag]: ["tagName", "typeExpression", "comment"],
    [SyntaxKind.JSDocThisTag]: ["tagName", "typeExpression", "comment"],
    [SyntaxKind.JSDocImportTag]: ["tagName", "importClause", "moduleSpecifier", "attributes", "comment"],
    [SyntaxKind.JSDocCallbackTag]: ["tagName", "typeExpression", "name", "comment"],
    [SyntaxKind.JSDocOverloadTag]: ["tagName", "typeExpression", "comment"],
    [SyntaxKind.JSDocTypedefTag]: ["tagName", "typeExpression", "name", "comment"],
    [SyntaxKind.JSDocSignature]: ["typeParameters", "parameters", "type"],
    [SyntaxKind.JSDocNameReference]: ["name"],
    [SyntaxKind.SourceFile]: ["statements", "endOfFileToken"],
    [SyntaxKind.ModuleDeclaration]: ["modifiers", "name", "body"],
    [SyntaxKind.ImportEqualsDeclaration]: ["modifiers", "name", "moduleReference"],
    [SyntaxKind.ExportDeclaration]: ["modifiers", "exportClause", "moduleSpecifier", "attributes"],
    [SyntaxKind.ImportType]: ["argument", "attributes", "qualifier", "typeArguments"],
    [SyntaxKind.ImportClause]: ["name", "namedBindings"],
    [SyntaxKind.ImportSpecifier]: ["propertyName", "name"],
    [SyntaxKind.JSDocLink]: ["name"],
    [SyntaxKind.JSDocLinkPlain]: ["name"],
    [SyntaxKind.JSDocLinkCode]: ["name"],
    [SyntaxKind.TypeParameter]: ["modifiers", "name", "constraint", "expression", "defaultType"],
    [SyntaxKind.SyntheticReferenceExpression]: ["expression", "thisArg"],
    [SyntaxKind.JSDocTypeLiteral]: ["jsdocPropertyTags"],
    [SyntaxKind.JSDocParameterTag]: ["tagName", "name", "typeExpression", "comment"],
    [SyntaxKind.JSDocPropertyTag]: ["tagName", "name", "typeExpression", "comment"],
};
export const singleChildNodePropertyNames = {
    [SyntaxKind.ComputedPropertyName]: "expression",
    [SyntaxKind.Decorator]: "expression",
    [SyntaxKind.BreakStatement]: "label",
    [SyntaxKind.ContinueStatement]: "label",
    [SyntaxKind.ReturnStatement]: "expression",
    [SyntaxKind.CaseBlock]: "clauses",
    [SyntaxKind.ThrowStatement]: "expression",
    [SyntaxKind.ExpressionStatement]: "expression",
    [SyntaxKind.Block]: "statements",
    [SyntaxKind.VariableDeclarationList]: "declarations",
    [SyntaxKind.ObjectBindingPattern]: "elements",
    [SyntaxKind.ArrayBindingPattern]: "elements",
    [SyntaxKind.MissingDeclaration]: "modifiers",
    [SyntaxKind.HeritageClause]: "types",
    [SyntaxKind.ModuleBlock]: "statements",
    [SyntaxKind.ExternalModuleReference]: "expression",
    [SyntaxKind.NamespaceImport]: "name",
    [SyntaxKind.NamedImports]: "elements",
    [SyntaxKind.NamespaceExport]: "name",
    [SyntaxKind.NamedExports]: "elements",
    [SyntaxKind.PrefixUnaryExpression]: "operand",
    [SyntaxKind.PostfixUnaryExpression]: "operand",
    [SyntaxKind.MetaProperty]: "name",
    [SyntaxKind.NonNullExpression]: "expression",
    [SyntaxKind.SpreadElement]: "expression",
    [SyntaxKind.ParenthesizedExpression]: "expression",
    [SyntaxKind.ArrayLiteralExpression]: "elements",
    [SyntaxKind.ObjectLiteralExpression]: "properties",
    [SyntaxKind.SpreadAssignment]: "expression",
    [SyntaxKind.DeleteExpression]: "expression",
    [SyntaxKind.TypeOfExpression]: "expression",
    [SyntaxKind.VoidExpression]: "expression",
    [SyntaxKind.AwaitExpression]: "expression",
    [SyntaxKind.UnionType]: "types",
    [SyntaxKind.IntersectionType]: "types",
    [SyntaxKind.TypeOperator]: "type",
    [SyntaxKind.InferType]: "typeParameter",
    [SyntaxKind.ArrayType]: "elementType",
    [SyntaxKind.LiteralType]: "literal",
    [SyntaxKind.ImportAttributes]: "attributes",
    [SyntaxKind.TypeLiteral]: "members",
    [SyntaxKind.TupleType]: "elements",
    [SyntaxKind.OptionalType]: "type",
    [SyntaxKind.RestType]: "type",
    [SyntaxKind.ParenthesizedType]: "type",
    [SyntaxKind.SyntheticExpression]: "tupleNameSource",
    [SyntaxKind.PartiallyEmittedExpression]: "expression",
    [SyntaxKind.JsxAttributes]: "properties",
    [SyntaxKind.JsxSpreadAttribute]: "expression",
    [SyntaxKind.JsxClosingElement]: "tagName",
    [SyntaxKind.SyntaxList]: "children",
    [SyntaxKind.JSDocTypeExpression]: "type",
    [SyntaxKind.JSDocNonNullableType]: "type",
    [SyntaxKind.JSDocNullableType]: "type",
    [SyntaxKind.JSDocVariadicType]: "type",
    [SyntaxKind.JSDocOptionalType]: "type",
    [SyntaxKind.JSDocNameReference]: "name",
    [SyntaxKind.JSDocLink]: "name",
    [SyntaxKind.JSDocLinkPlain]: "name",
    [SyntaxKind.JSDocLinkCode]: "name",
    [SyntaxKind.JSDocTypeLiteral]: "jsdocPropertyTags",
};
//# sourceMappingURL=protocol.generated.js.map