// Auto-generated from tree-sitter JavaScript v0.25.0
type JavaScriptTypes = {
  "declaration": {
    "type": "declaration",
    "named": true,
    "subtypes": [
      {
        "type": "class_declaration",
        "named": true
      },
      {
        "type": "function_declaration",
        "named": true
      },
      {
        "type": "generator_function_declaration",
        "named": true
      },
      {
        "type": "lexical_declaration",
        "named": true
      },
      {
        "type": "using_declaration",
        "named": true
      },
      {
        "type": "variable_declaration",
        "named": true
      }
    ]
  },
  "expression": {
    "type": "expression",
    "named": true,
    "subtypes": [
      {
        "type": "assignment_expression",
        "named": true
      },
      {
        "type": "augmented_assignment_expression",
        "named": true
      },
      {
        "type": "await_expression",
        "named": true
      },
      {
        "type": "binary_expression",
        "named": true
      },
      {
        "type": "jsx_element",
        "named": true
      },
      {
        "type": "jsx_self_closing_element",
        "named": true
      },
      {
        "type": "new_expression",
        "named": true
      },
      {
        "type": "primary_expression",
        "named": true
      },
      {
        "type": "ternary_expression",
        "named": true
      },
      {
        "type": "unary_expression",
        "named": true
      },
      {
        "type": "update_expression",
        "named": true
      },
      {
        "type": "yield_expression",
        "named": true
      }
    ]
  },
  "pattern": {
    "type": "pattern",
    "named": true,
    "subtypes": [
      {
        "type": "array_pattern",
        "named": true
      },
      {
        "type": "identifier",
        "named": true
      },
      {
        "type": "member_expression",
        "named": true
      },
      {
        "type": "object_pattern",
        "named": true
      },
      {
        "type": "rest_pattern",
        "named": true
      },
      {
        "type": "subscript_expression",
        "named": true
      },
      {
        "type": "undefined",
        "named": true
      }
    ]
  },
  "primary_expression": {
    "type": "primary_expression",
    "named": true,
    "subtypes": [
      {
        "type": "array",
        "named": true
      },
      {
        "type": "arrow_function",
        "named": true
      },
      {
        "type": "call_expression",
        "named": true
      },
      {
        "type": "class",
        "named": true
      },
      {
        "type": "false",
        "named": true
      },
      {
        "type": "function_expression",
        "named": true
      },
      {
        "type": "generator_function",
        "named": true
      },
      {
        "type": "identifier",
        "named": true
      },
      {
        "type": "member_expression",
        "named": true
      },
      {
        "type": "meta_property",
        "named": true
      },
      {
        "type": "null",
        "named": true
      },
      {
        "type": "number",
        "named": true
      },
      {
        "type": "object",
        "named": true
      },
      {
        "type": "parenthesized_expression",
        "named": true
      },
      {
        "type": "regex",
        "named": true
      },
      {
        "type": "string",
        "named": true
      },
      {
        "type": "subscript_expression",
        "named": true
      },
      {
        "type": "super",
        "named": true
      },
      {
        "type": "template_string",
        "named": true
      },
      {
        "type": "this",
        "named": true
      },
      {
        "type": "true",
        "named": true
      },
      {
        "type": "undefined",
        "named": true
      }
    ]
  },
  "statement": {
    "type": "statement",
    "named": true,
    "subtypes": [
      {
        "type": "break_statement",
        "named": true
      },
      {
        "type": "continue_statement",
        "named": true
      },
      {
        "type": "debugger_statement",
        "named": true
      },
      {
        "type": "declaration",
        "named": true
      },
      {
        "type": "do_statement",
        "named": true
      },
      {
        "type": "empty_statement",
        "named": true
      },
      {
        "type": "export_statement",
        "named": true
      },
      {
        "type": "expression_statement",
        "named": true
      },
      {
        "type": "for_in_statement",
        "named": true
      },
      {
        "type": "for_statement",
        "named": true
      },
      {
        "type": "if_statement",
        "named": true
      },
      {
        "type": "import_statement",
        "named": true
      },
      {
        "type": "labeled_statement",
        "named": true
      },
      {
        "type": "return_statement",
        "named": true
      },
      {
        "type": "statement_block",
        "named": true
      },
      {
        "type": "switch_statement",
        "named": true
      },
      {
        "type": "throw_statement",
        "named": true
      },
      {
        "type": "try_statement",
        "named": true
      },
      {
        "type": "while_statement",
        "named": true
      },
      {
        "type": "with_statement",
        "named": true
      }
    ]
  },
  "arguments": {
    "type": "arguments",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "spread_element",
          "named": true
        }
      ]
    }
  },
  "array": {
    "type": "array",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "spread_element",
          "named": true
        }
      ]
    }
  },
  "array_pattern": {
    "type": "array_pattern",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "assignment_pattern",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        }
      ]
    }
  },
  "arrow_function": {
    "type": "arrow_function",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "statement_block",
            "named": true
          }
        ]
      },
      "parameter": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "formal_parameters",
            "named": true
          }
        ]
      }
    }
  },
  "assignment_expression": {
    "type": "assignment_expression",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "array_pattern",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "member_expression",
            "named": true
          },
          {
            "type": "object_pattern",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "subscript_expression",
            "named": true
          },
          {
            "type": "undefined",
            "named": true
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  "assignment_pattern": {
    "type": "assignment_pattern",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "pattern",
            "named": true
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  "augmented_assignment_expression": {
    "type": "augmented_assignment_expression",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "member_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "subscript_expression",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": []
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  "await_expression": {
    "type": "await_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  "binary_expression": {
    "type": "binary_expression",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "private_property_identifier",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": []
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  "break_statement": {
    "type": "break_statement",
    "named": true,
    "fields": {
      "label": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "statement_identifier",
            "named": true
          }
        ]
      }
    }
  },
  "call_expression": {
    "type": "call_expression",
    "named": true,
    "fields": {
      "arguments": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "arguments",
            "named": true
          },
          {
            "type": "template_string",
            "named": true
          }
        ]
      },
      "function": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "import",
            "named": true
          }
        ]
      },
      "optional_chain": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "optional_chain",
            "named": true
          }
        ]
      }
    }
  },
  "catch_clause": {
    "type": "catch_clause",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement_block",
            "named": true
          }
        ]
      },
      "parameter": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "array_pattern",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "object_pattern",
            "named": true
          }
        ]
      }
    }
  },
  "class": {
    "type": "class",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "class_body",
            "named": true
          }
        ]
      },
      "decorator": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "decorator",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "class_heritage",
          "named": true
        }
      ]
    }
  },
  "class_body": {
    "type": "class_body",
    "named": true,
    "fields": {
      "member": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "class_static_block",
            "named": true
          },
          {
            "type": "field_definition",
            "named": true
          },
          {
            "type": "method_definition",
            "named": true
          }
        ]
      }
    }
  },
  "class_declaration": {
    "type": "class_declaration",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "class_body",
            "named": true
          }
        ]
      },
      "decorator": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "decorator",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "class_heritage",
          "named": true
        }
      ]
    }
  },
  "class_heritage": {
    "type": "class_heritage",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  "class_static_block": {
    "type": "class_static_block",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement_block",
            "named": true
          }
        ]
      }
    }
  },
  "computed_property_name": {
    "type": "computed_property_name",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  "continue_statement": {
    "type": "continue_statement",
    "named": true,
    "fields": {
      "label": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "statement_identifier",
            "named": true
          }
        ]
      }
    }
  },
  "debugger_statement": {
    "type": "debugger_statement",
    "named": true,
    "fields": {}
  },
  "decorator": {
    "type": "decorator",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "member_expression",
          "named": true
        }
      ]
    }
  },
  "do_statement": {
    "type": "do_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parenthesized_expression",
            "named": true
          }
        ]
      }
    }
  },
  "else_clause": {
    "type": "else_clause",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "statement",
          "named": true
        }
      ]
    }
  },
  "empty_statement": {
    "type": "empty_statement",
    "named": true,
    "fields": {}
  },
  "export_clause": {
    "type": "export_clause",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "export_specifier",
          "named": true
        }
      ]
    }
  },
  "export_specifier": {
    "type": "export_specifier",
    "named": true,
    "fields": {
      "alias": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "string",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "string",
            "named": true
          }
        ]
      }
    }
  },
  "export_statement": {
    "type": "export_statement",
    "named": true,
    "fields": {
      "declaration": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "declaration",
            "named": true
          }
        ]
      },
      "decorator": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "decorator",
            "named": true
          }
        ]
      },
      "source": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "string",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "export_clause",
          "named": true
        },
        {
          "type": "namespace_export",
          "named": true
        }
      ]
    }
  },
  "expression_statement": {
    "type": "expression_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "sequence_expression",
          "named": true
        }
      ]
    }
  },
  "field_definition": {
    "type": "field_definition",
    "named": true,
    "fields": {
      "decorator": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "decorator",
            "named": true
          }
        ]
      },
      "property": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "computed_property_name",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "private_property_identifier",
            "named": true
          },
          {
            "type": "property_identifier",
            "named": true
          },
          {
            "type": "string",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  "finally_clause": {
    "type": "finally_clause",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement_block",
            "named": true
          }
        ]
      }
    }
  },
  "for_in_statement": {
    "type": "for_in_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement",
            "named": true
          }
        ]
      },
      "kind": {
        "multiple": true,
        "required": false,
        "types": []
      },
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "array_pattern",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "member_expression",
            "named": true
          },
          {
            "type": "object_pattern",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "subscript_expression",
            "named": true
          },
          {
            "type": "undefined",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": []
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "sequence_expression",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  "for_statement": {
    "type": "for_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "empty_statement",
            "named": true
          },
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "sequence_expression",
            "named": true
          }
        ]
      },
      "increment": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "sequence_expression",
            "named": true
          }
        ]
      },
      "initializer": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "empty_statement",
            "named": true
          },
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "lexical_declaration",
            "named": true
          },
          {
            "type": "sequence_expression",
            "named": true
          },
          {
            "type": "variable_declaration",
            "named": true
          }
        ]
      }
    }
  },
  "formal_parameters": {
    "type": "formal_parameters",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "assignment_pattern",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        }
      ]
    }
  },
  "function_declaration": {
    "type": "function_declaration",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement_block",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "formal_parameters",
            "named": true
          }
        ]
      }
    }
  },
  "function_expression": {
    "type": "function_expression",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement_block",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "formal_parameters",
            "named": true
          }
        ]
      }
    }
  },
  "generator_function": {
    "type": "generator_function",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement_block",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "formal_parameters",
            "named": true
          }
        ]
      }
    }
  },
  "generator_function_declaration": {
    "type": "generator_function_declaration",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement_block",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "formal_parameters",
            "named": true
          }
        ]
      }
    }
  },
  "if_statement": {
    "type": "if_statement",
    "named": true,
    "fields": {
      "alternative": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "else_clause",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parenthesized_expression",
            "named": true
          }
        ]
      },
      "consequence": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement",
            "named": true
          }
        ]
      }
    }
  },
  "import": {
    "type": "import",
    "named": true,
    "fields": {}
  },
  "import_attribute": {
    "type": "import_attribute",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "object",
          "named": true
        }
      ]
    }
  },
  "import_clause": {
    "type": "import_clause",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "named_imports",
          "named": true
        },
        {
          "type": "namespace_import",
          "named": true
        }
      ]
    }
  },
  "import_specifier": {
    "type": "import_specifier",
    "named": true,
    "fields": {
      "alias": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "string",
            "named": true
          }
        ]
      }
    }
  },
  "import_statement": {
    "type": "import_statement",
    "named": true,
    "fields": {
      "source": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "string",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "import_attribute",
          "named": true
        },
        {
          "type": "import_clause",
          "named": true
        }
      ]
    }
  },
  "jsx_attribute": {
    "type": "jsx_attribute",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "jsx_element",
          "named": true
        },
        {
          "type": "jsx_expression",
          "named": true
        },
        {
          "type": "jsx_namespace_name",
          "named": true
        },
        {
          "type": "jsx_self_closing_element",
          "named": true
        },
        {
          "type": "property_identifier",
          "named": true
        },
        {
          "type": "string",
          "named": true
        }
      ]
    }
  },
  "jsx_closing_element": {
    "type": "jsx_closing_element",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "jsx_namespace_name",
            "named": true
          },
          {
            "type": "member_expression",
            "named": true
          }
        ]
      }
    }
  },
  "jsx_element": {
    "type": "jsx_element",
    "named": true,
    "fields": {
      "close_tag": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "jsx_closing_element",
            "named": true
          }
        ]
      },
      "open_tag": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "jsx_opening_element",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "html_character_reference",
          "named": true
        },
        {
          "type": "jsx_element",
          "named": true
        },
        {
          "type": "jsx_expression",
          "named": true
        },
        {
          "type": "jsx_self_closing_element",
          "named": true
        },
        {
          "type": "jsx_text",
          "named": true
        }
      ]
    }
  },
  "jsx_expression": {
    "type": "jsx_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "sequence_expression",
          "named": true
        },
        {
          "type": "spread_element",
          "named": true
        }
      ]
    }
  },
  "jsx_namespace_name": {
    "type": "jsx_namespace_name",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  "jsx_opening_element": {
    "type": "jsx_opening_element",
    "named": true,
    "fields": {
      "attribute": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "jsx_attribute",
            "named": true
          },
          {
            "type": "jsx_expression",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "jsx_namespace_name",
            "named": true
          },
          {
            "type": "member_expression",
            "named": true
          }
        ]
      }
    }
  },
  "jsx_self_closing_element": {
    "type": "jsx_self_closing_element",
    "named": true,
    "fields": {
      "attribute": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "jsx_attribute",
            "named": true
          },
          {
            "type": "jsx_expression",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "jsx_namespace_name",
            "named": true
          },
          {
            "type": "member_expression",
            "named": true
          }
        ]
      }
    }
  },
  "labeled_statement": {
    "type": "labeled_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement",
            "named": true
          }
        ]
      },
      "label": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement_identifier",
            "named": true
          }
        ]
      }
    }
  },
  "lexical_declaration": {
    "type": "lexical_declaration",
    "named": true,
    "fields": {
      "kind": {
        "multiple": false,
        "required": true,
        "types": []
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "variable_declarator",
          "named": true
        }
      ]
    }
  },
  "member_expression": {
    "type": "member_expression",
    "named": true,
    "fields": {
      "object": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "import",
            "named": true
          }
        ]
      },
      "optional_chain": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "optional_chain",
            "named": true
          }
        ]
      },
      "property": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "private_property_identifier",
            "named": true
          },
          {
            "type": "property_identifier",
            "named": true
          }
        ]
      }
    }
  },
  "meta_property": {
    "type": "meta_property",
    "named": true,
    "fields": {}
  },
  "method_definition": {
    "type": "method_definition",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement_block",
            "named": true
          }
        ]
      },
      "decorator": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "decorator",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "computed_property_name",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "private_property_identifier",
            "named": true
          },
          {
            "type": "property_identifier",
            "named": true
          },
          {
            "type": "string",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "formal_parameters",
            "named": true
          }
        ]
      }
    }
  },
  "named_imports": {
    "type": "named_imports",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "import_specifier",
          "named": true
        }
      ]
    }
  },
  "namespace_export": {
    "type": "namespace_export",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "string",
          "named": true
        }
      ]
    }
  },
  "namespace_import": {
    "type": "namespace_import",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  "new_expression": {
    "type": "new_expression",
    "named": true,
    "fields": {
      "arguments": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "arguments",
            "named": true
          }
        ]
      },
      "constructor": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "new_expression",
            "named": true
          },
          {
            "type": "primary_expression",
            "named": true
          }
        ]
      }
    }
  },
  "object": {
    "type": "object",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "method_definition",
          "named": true
        },
        {
          "type": "pair",
          "named": true
        },
        {
          "type": "shorthand_property_identifier",
          "named": true
        },
        {
          "type": "spread_element",
          "named": true
        }
      ]
    }
  },
  "object_assignment_pattern": {
    "type": "object_assignment_pattern",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "array_pattern",
            "named": true
          },
          {
            "type": "object_pattern",
            "named": true
          },
          {
            "type": "shorthand_property_identifier_pattern",
            "named": true
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  "object_pattern": {
    "type": "object_pattern",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "object_assignment_pattern",
          "named": true
        },
        {
          "type": "pair_pattern",
          "named": true
        },
        {
          "type": "rest_pattern",
          "named": true
        },
        {
          "type": "shorthand_property_identifier_pattern",
          "named": true
        }
      ]
    }
  },
  "pair": {
    "type": "pair",
    "named": true,
    "fields": {
      "key": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "computed_property_name",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "private_property_identifier",
            "named": true
          },
          {
            "type": "property_identifier",
            "named": true
          },
          {
            "type": "string",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  "pair_pattern": {
    "type": "pair_pattern",
    "named": true,
    "fields": {
      "key": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "computed_property_name",
            "named": true
          },
          {
            "type": "number",
            "named": true
          },
          {
            "type": "private_property_identifier",
            "named": true
          },
          {
            "type": "property_identifier",
            "named": true
          },
          {
            "type": "string",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "assignment_pattern",
            "named": true
          },
          {
            "type": "pattern",
            "named": true
          }
        ]
      }
    }
  },
  "parenthesized_expression": {
    "type": "parenthesized_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "sequence_expression",
          "named": true
        }
      ]
    }
  },
  "program": {
    "type": "program",
    "named": true,
    "root": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "hash_bang_line",
          "named": true
        },
        {
          "type": "statement",
          "named": true
        }
      ]
    }
  },
  "regex": {
    "type": "regex",
    "named": true,
    "fields": {
      "flags": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "regex_flags",
            "named": true
          }
        ]
      },
      "pattern": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "regex_pattern",
            "named": true
          }
        ]
      }
    }
  },
  "rest_pattern": {
    "type": "rest_pattern",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "array_pattern",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "member_expression",
          "named": true
        },
        {
          "type": "object_pattern",
          "named": true
        },
        {
          "type": "subscript_expression",
          "named": true
        },
        {
          "type": "undefined",
          "named": true
        }
      ]
    }
  },
  "return_statement": {
    "type": "return_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "sequence_expression",
          "named": true
        }
      ]
    }
  },
  "sequence_expression": {
    "type": "sequence_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  "spread_element": {
    "type": "spread_element",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  "statement_block": {
    "type": "statement_block",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "statement",
          "named": true
        }
      ]
    }
  },
  "string": {
    "type": "string",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "escape_sequence",
          "named": true
        },
        {
          "type": "html_character_reference",
          "named": true
        },
        {
          "type": "string_fragment",
          "named": true
        }
      ]
    }
  },
  "subscript_expression": {
    "type": "subscript_expression",
    "named": true,
    "fields": {
      "index": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "sequence_expression",
            "named": true
          }
        ]
      },
      "object": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "optional_chain": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "optional_chain",
            "named": true
          }
        ]
      }
    }
  },
  "switch_body": {
    "type": "switch_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "switch_case",
          "named": true
        },
        {
          "type": "switch_default",
          "named": true
        }
      ]
    }
  },
  "switch_case": {
    "type": "switch_case",
    "named": true,
    "fields": {
      "body": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "statement",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "sequence_expression",
            "named": true
          }
        ]
      }
    }
  },
  "switch_default": {
    "type": "switch_default",
    "named": true,
    "fields": {
      "body": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "statement",
            "named": true
          }
        ]
      }
    }
  },
  "switch_statement": {
    "type": "switch_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "switch_body",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parenthesized_expression",
            "named": true
          }
        ]
      }
    }
  },
  "template_string": {
    "type": "template_string",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "escape_sequence",
          "named": true
        },
        {
          "type": "string_fragment",
          "named": true
        },
        {
          "type": "template_substitution",
          "named": true
        }
      ]
    }
  },
  "template_substitution": {
    "type": "template_substitution",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "sequence_expression",
          "named": true
        }
      ]
    }
  },
  "ternary_expression": {
    "type": "ternary_expression",
    "named": true,
    "fields": {
      "alternative": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "consequence": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  "throw_statement": {
    "type": "throw_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "sequence_expression",
          "named": true
        }
      ]
    }
  },
  "try_statement": {
    "type": "try_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement_block",
            "named": true
          }
        ]
      },
      "finalizer": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "finally_clause",
            "named": true
          }
        ]
      },
      "handler": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "catch_clause",
            "named": true
          }
        ]
      }
    }
  },
  "unary_expression": {
    "type": "unary_expression",
    "named": true,
    "fields": {
      "argument": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": []
      }
    }
  },
  "update_expression": {
    "type": "update_expression",
    "named": true,
    "fields": {
      "argument": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": []
      }
    }
  },
  "using_declaration": {
    "type": "using_declaration",
    "named": true,
    "fields": {
      "kind": {
        "multiple": true,
        "required": true,
        "types": []
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "variable_declarator",
          "named": true
        }
      ]
    }
  },
  "variable_declaration": {
    "type": "variable_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "variable_declarator",
          "named": true
        }
      ]
    }
  },
  "variable_declarator": {
    "type": "variable_declarator",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "array_pattern",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "object_pattern",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  "while_statement": {
    "type": "while_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parenthesized_expression",
            "named": true
          }
        ]
      }
    }
  },
  "with_statement": {
    "type": "with_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement",
            "named": true
          }
        ]
      },
      "object": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parenthesized_expression",
            "named": true
          }
        ]
      }
    }
  },
  "yield_expression": {
    "type": "yield_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  "comment": {
    "type": "comment",
    "named": true,
    "extra": true
  },
  "escape_sequence": {
    "type": "escape_sequence",
    "named": true
  },
  "false": {
    "type": "false",
    "named": true
  },
  "hash_bang_line": {
    "type": "hash_bang_line",
    "named": true
  },
  "html_character_reference": {
    "type": "html_character_reference",
    "named": true
  },
  "html_comment": {
    "type": "html_comment",
    "named": true,
    "extra": true
  },
  "identifier": {
    "type": "identifier",
    "named": true
  },
  "jsx_text": {
    "type": "jsx_text",
    "named": true
  },
  "null": {
    "type": "null",
    "named": true
  },
  "number": {
    "type": "number",
    "named": true
  },
  "optional_chain": {
    "type": "optional_chain",
    "named": true
  },
  "private_property_identifier": {
    "type": "private_property_identifier",
    "named": true
  },
  "property_identifier": {
    "type": "property_identifier",
    "named": true
  },
  "regex_flags": {
    "type": "regex_flags",
    "named": true
  },
  "regex_pattern": {
    "type": "regex_pattern",
    "named": true
  },
  "shorthand_property_identifier": {
    "type": "shorthand_property_identifier",
    "named": true
  },
  "shorthand_property_identifier_pattern": {
    "type": "shorthand_property_identifier_pattern",
    "named": true
  },
  "statement_identifier": {
    "type": "statement_identifier",
    "named": true
  },
  "string_fragment": {
    "type": "string_fragment",
    "named": true
  },
  "super": {
    "type": "super",
    "named": true
  },
  "this": {
    "type": "this",
    "named": true
  },
  "true": {
    "type": "true",
    "named": true
  },
  "undefined": {
    "type": "undefined",
    "named": true
  }
};
export default JavaScriptTypes;