// Auto-generated code, DO NOT EDIT DIRECTLY!
// To edit this generated file you have to edit `tasks/ast_tools/src/generators/inherit_variants.rs`.

use crate::ast::{EnumDetails, EnumVariant, InheritedEnum};

/// Details of how `#[ast]` macro should modify enums.
#[expect(clippy::unreadable_literal)]
pub static ENUMS: phf::Map<&'static str, EnumDetails> = ::phf::Map {
    key: 16287231350648472473,
    disps: &[
        (0, 17),
        (0, 3),
        (0, 0),
        (0, 9),
        (0, 12),
        (0, 2),
        (0, 4),
        (0, 1),
        (0, 2),
        (0, 64),
        (0, 30),
        (0, 5),
        (0, 20),
        (0, 3),
        (1, 32),
        (0, 0),
        (1, 81),
        (0, 0),
        (0, 55),
        (0, 9),
        (2, 34),
        (0, 0),
        (0, 2),
        (0, 60),
        (0, 14),
        (0, 45),
        (2, 19),
        (10, 57),
        (0, 0),
    ],
    entries: &[
        ("JSXAttributeValue", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("JSXAttributeName", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("ImportOrExportKind", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("JSXElementName", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("UpdateOperator", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("AssignmentTargetProperty", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("AssignmentTarget", EnumDetails { is_fieldless: false, inherits: &[3, 4] }),
        ("ErrorSeverity", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("TSEnumMemberName", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("TSModuleReference", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("Declaration", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("Term", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("ImportAttributeKey", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("FormalParameterKind", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("LanguageVariant", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("TSLiteral", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("WithClauseKeyword", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("FileExtension", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("TSType", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("CharacterClassEscapeKind", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("Language", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("ModuleExportName", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("ArrayExpressionElement", EnumDetails { is_fieldless: false, inherits: &[0] }),
        ("ChainElement", EnumDetails { is_fieldless: false, inherits: &[1] }),
        ("TSMappedTypeModifierOperator", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("MethodDefinitionType", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("TSModuleDeclarationKind", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("JSXExpression", EnumDetails { is_fieldless: false, inherits: &[0] }),
        ("ObjectPropertyKind", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("BindingPattern", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("Statement", EnumDetails { is_fieldless: false, inherits: &[5, 6] }),
        ("AccessorPropertyType", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("CommentKind", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("TSTupleElement", EnumDetails { is_fieldless: false, inherits: &[7] }),
        ("ForStatementInit", EnumDetails { is_fieldless: false, inherits: &[0] }),
        ("FunctionType", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("Argument", EnumDetails { is_fieldless: false, inherits: &[0] }),
        ("Expression", EnumDetails { is_fieldless: false, inherits: &[1] }),
        ("ImportDeclarationSpecifier", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("CharacterClassContents", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("LogicalOperator", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("CommentPosition", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("PropertyKey", EnumDetails { is_fieldless: false, inherits: &[0] }),
        ("ModuleDeclaration", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("TSMethodSignatureKind", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("ExportLocalName", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("PropertyKind", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("LookAroundAssertionKind", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("TSTypeQueryExprName", EnumDetails { is_fieldless: false, inherits: &[8] }),
        ("ImportPhase", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("ClassType", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("CharacterKind", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("BinaryOperator", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("TSImportTypeQualifier", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("JSXAttributeItem", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("PropertyDefinitionType", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("MethodDefinitionKind", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("JSXMemberExpressionObject", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("TSModuleDeclarationName", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("ExportExportName", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("VariableDeclarationKind", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("UnaryOperator", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("JSXChild", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("TSSignature", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("TSTypePredicateName", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("ExportDefaultDeclarationKind", EnumDetails { is_fieldless: false, inherits: &[0] }),
        ("ExportImportName", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("ForStatementLeft", EnumDetails { is_fieldless: false, inherits: &[2] }),
        ("BigintBase", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("BoundaryAssertionKind", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("CommentContent", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("TSTypeOperatorOperator", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("AssignmentOperator", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("TSModuleDeclarationBody", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("ClassElement", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("AssignmentTargetPattern", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("TSTypeName", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("SimpleAssignmentTarget", EnumDetails { is_fieldless: false, inherits: &[1] }),
        ("ModuleKind", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("AssignmentTargetMaybeDefault", EnumDetails { is_fieldless: false, inherits: &[2] }),
        ("TSAccessibility", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("MemberExpression", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("NumberBase", EnumDetails { is_fieldless: true, inherits: &[] }),
        ("ImportImportName", EnumDetails { is_fieldless: false, inherits: &[] }),
        ("CharacterClassContentsKind", EnumDetails { is_fieldless: true, inherits: &[] }),
    ],
};

/// Each enum which is inherited by another enum, indexed by [`EnumDetails::inherits`].
/// `#[ast]` macro inserts these enums' variants into enums which inherit them
/// (via `oxc_ast_macros::make_inherited_variant`).
///
/// [`EnumDetails::inherits`]: crate::ast::EnumDetails::inherits
pub static INHERITED_ENUMS: [InheritedEnum; 9] = [
    // `Expression`
    InheritedEnum {
        doc: " Inherited from [`Expression`]",
        variants: &[
            EnumVariant {
                name: "BooleanLiteral",
                inner_name: "BooleanLiteral",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 0,
            },
            EnumVariant {
                name: "NullLiteral",
                inner_name: "NullLiteral",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 1,
            },
            EnumVariant {
                name: "NumericLiteral",
                inner_name: "NumericLiteral",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 2,
            },
            EnumVariant {
                name: "BigIntLiteral",
                inner_name: "BigIntLiteral",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 3,
            },
            EnumVariant {
                name: "RegExpLiteral",
                inner_name: "RegExpLiteral",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 4,
            },
            EnumVariant {
                name: "StringLiteral",
                inner_name: "StringLiteral",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 5,
            },
            EnumVariant {
                name: "TemplateLiteral",
                inner_name: "TemplateLiteral",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 6,
            },
            EnumVariant {
                name: "Identifier",
                inner_name: "IdentifierReference",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 7,
            },
            EnumVariant {
                name: "MetaProperty",
                inner_name: "MetaProperty",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 8,
            },
            EnumVariant {
                name: "Super",
                inner_name: "Super",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 9,
            },
            EnumVariant {
                name: "ArrayExpression",
                inner_name: "ArrayExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 10,
            },
            EnumVariant {
                name: "ArrowFunctionExpression",
                inner_name: "ArrowFunctionExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 11,
            },
            EnumVariant {
                name: "AssignmentExpression",
                inner_name: "AssignmentExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 12,
            },
            EnumVariant {
                name: "AwaitExpression",
                inner_name: "AwaitExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 13,
            },
            EnumVariant {
                name: "BinaryExpression",
                inner_name: "BinaryExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 14,
            },
            EnumVariant {
                name: "CallExpression",
                inner_name: "CallExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 15,
            },
            EnumVariant {
                name: "ChainExpression",
                inner_name: "ChainExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 16,
            },
            EnumVariant {
                name: "ClassExpression",
                inner_name: "Class",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 17,
            },
            EnumVariant {
                name: "ConditionalExpression",
                inner_name: "ConditionalExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 18,
            },
            EnumVariant {
                name: "FunctionExpression",
                inner_name: "Function",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 19,
            },
            EnumVariant {
                name: "ImportExpression",
                inner_name: "ImportExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 20,
            },
            EnumVariant {
                name: "LogicalExpression",
                inner_name: "LogicalExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 21,
            },
            EnumVariant {
                name: "NewExpression",
                inner_name: "NewExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 22,
            },
            EnumVariant {
                name: "ObjectExpression",
                inner_name: "ObjectExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 23,
            },
            EnumVariant {
                name: "ParenthesizedExpression",
                inner_name: "ParenthesizedExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 24,
            },
            EnumVariant {
                name: "SequenceExpression",
                inner_name: "SequenceExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 25,
            },
            EnumVariant {
                name: "TaggedTemplateExpression",
                inner_name: "TaggedTemplateExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 26,
            },
            EnumVariant {
                name: "ThisExpression",
                inner_name: "ThisExpression",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 27,
            },
            EnumVariant {
                name: "UnaryExpression",
                inner_name: "UnaryExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 28,
            },
            EnumVariant {
                name: "UpdateExpression",
                inner_name: "UpdateExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 29,
            },
            EnumVariant {
                name: "YieldExpression",
                inner_name: "YieldExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 30,
            },
            EnumVariant {
                name: "PrivateInExpression",
                inner_name: "PrivateInExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 31,
            },
            EnumVariant {
                name: "JSXElement",
                inner_name: "JSXElement",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 32,
            },
            EnumVariant {
                name: "JSXFragment",
                inner_name: "JSXFragment",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 33,
            },
            EnumVariant {
                name: "TSAsExpression",
                inner_name: "TSAsExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 34,
            },
            EnumVariant {
                name: "TSSatisfiesExpression",
                inner_name: "TSSatisfiesExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 35,
            },
            EnumVariant {
                name: "TSTypeAssertion",
                inner_name: "TSTypeAssertion",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 36,
            },
            EnumVariant {
                name: "TSNonNullExpression",
                inner_name: "TSNonNullExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 37,
            },
            EnumVariant {
                name: "TSInstantiationExpression",
                inner_name: "TSInstantiationExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 38,
            },
            EnumVariant {
                name: "V8IntrinsicExpression",
                inner_name: "V8IntrinsicExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 39,
            },
            EnumVariant {
                name: "ComputedMemberExpression",
                inner_name: "ComputedMemberExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 48,
            },
            EnumVariant {
                name: "StaticMemberExpression",
                inner_name: "StaticMemberExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 49,
            },
            EnumVariant {
                name: "PrivateFieldExpression",
                inner_name: "PrivateFieldExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 50,
            },
        ],
    },
    // `MemberExpression`
    InheritedEnum {
        doc: " Inherited from [`MemberExpression`]",
        variants: &[
            EnumVariant {
                name: "ComputedMemberExpression",
                inner_name: "ComputedMemberExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 48,
            },
            EnumVariant {
                name: "StaticMemberExpression",
                inner_name: "StaticMemberExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 49,
            },
            EnumVariant {
                name: "PrivateFieldExpression",
                inner_name: "PrivateFieldExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 50,
            },
        ],
    },
    // `AssignmentTarget`
    InheritedEnum {
        doc: " Inherited from [`AssignmentTarget`]",
        variants: &[
            EnumVariant {
                name: "AssignmentTargetIdentifier",
                inner_name: "IdentifierReference",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 0,
            },
            EnumVariant {
                name: "TSAsExpression",
                inner_name: "TSAsExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 1,
            },
            EnumVariant {
                name: "TSSatisfiesExpression",
                inner_name: "TSSatisfiesExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 2,
            },
            EnumVariant {
                name: "TSNonNullExpression",
                inner_name: "TSNonNullExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 3,
            },
            EnumVariant {
                name: "TSTypeAssertion",
                inner_name: "TSTypeAssertion",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 4,
            },
            EnumVariant {
                name: "ComputedMemberExpression",
                inner_name: "ComputedMemberExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 48,
            },
            EnumVariant {
                name: "StaticMemberExpression",
                inner_name: "StaticMemberExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 49,
            },
            EnumVariant {
                name: "PrivateFieldExpression",
                inner_name: "PrivateFieldExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 50,
            },
            EnumVariant {
                name: "ArrayAssignmentTarget",
                inner_name: "ArrayAssignmentTarget",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 8,
            },
            EnumVariant {
                name: "ObjectAssignmentTarget",
                inner_name: "ObjectAssignmentTarget",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 9,
            },
        ],
    },
    // `SimpleAssignmentTarget`
    InheritedEnum {
        doc: " Inherited from [`SimpleAssignmentTarget`]",
        variants: &[
            EnumVariant {
                name: "AssignmentTargetIdentifier",
                inner_name: "IdentifierReference",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 0,
            },
            EnumVariant {
                name: "TSAsExpression",
                inner_name: "TSAsExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 1,
            },
            EnumVariant {
                name: "TSSatisfiesExpression",
                inner_name: "TSSatisfiesExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 2,
            },
            EnumVariant {
                name: "TSNonNullExpression",
                inner_name: "TSNonNullExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 3,
            },
            EnumVariant {
                name: "TSTypeAssertion",
                inner_name: "TSTypeAssertion",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 4,
            },
            EnumVariant {
                name: "ComputedMemberExpression",
                inner_name: "ComputedMemberExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 48,
            },
            EnumVariant {
                name: "StaticMemberExpression",
                inner_name: "StaticMemberExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 49,
            },
            EnumVariant {
                name: "PrivateFieldExpression",
                inner_name: "PrivateFieldExpression",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 50,
            },
        ],
    },
    // `AssignmentTargetPattern`
    InheritedEnum {
        doc: " Inherited from [`AssignmentTargetPattern`]",
        variants: &[
            EnumVariant {
                name: "ArrayAssignmentTarget",
                inner_name: "ArrayAssignmentTarget",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 8,
            },
            EnumVariant {
                name: "ObjectAssignmentTarget",
                inner_name: "ObjectAssignmentTarget",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 9,
            },
        ],
    },
    // `Declaration`
    InheritedEnum {
        doc: " Inherited from [`Declaration`]",
        variants: &[
            EnumVariant {
                name: "VariableDeclaration",
                inner_name: "VariableDeclaration",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 32,
            },
            EnumVariant {
                name: "FunctionDeclaration",
                inner_name: "Function",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 33,
            },
            EnumVariant {
                name: "ClassDeclaration",
                inner_name: "Class",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 34,
            },
            EnumVariant {
                name: "TSTypeAliasDeclaration",
                inner_name: "TSTypeAliasDeclaration",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 35,
            },
            EnumVariant {
                name: "TSInterfaceDeclaration",
                inner_name: "TSInterfaceDeclaration",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 36,
            },
            EnumVariant {
                name: "TSEnumDeclaration",
                inner_name: "TSEnumDeclaration",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 37,
            },
            EnumVariant {
                name: "TSModuleDeclaration",
                inner_name: "TSModuleDeclaration",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 38,
            },
            EnumVariant {
                name: "TSGlobalDeclaration",
                inner_name: "TSGlobalDeclaration",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 39,
            },
            EnumVariant {
                name: "TSImportEqualsDeclaration",
                inner_name: "TSImportEqualsDeclaration",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 40,
            },
        ],
    },
    // `ModuleDeclaration`
    InheritedEnum {
        doc: " Inherited from [`ModuleDeclaration`]",
        variants: &[
            EnumVariant {
                name: "ImportDeclaration",
                inner_name: "ImportDeclaration",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 64,
            },
            EnumVariant {
                name: "ExportAllDeclaration",
                inner_name: "ExportAllDeclaration",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 65,
            },
            EnumVariant {
                name: "ExportDefaultDeclaration",
                inner_name: "ExportDefaultDeclaration",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 66,
            },
            EnumVariant {
                name: "ExportNamedDeclaration",
                inner_name: "ExportNamedDeclaration",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 67,
            },
            EnumVariant {
                name: "TSExportAssignment",
                inner_name: "TSExportAssignment",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 68,
            },
            EnumVariant {
                name: "TSNamespaceExportDeclaration",
                inner_name: "TSNamespaceExportDeclaration",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 69,
            },
        ],
    },
    // `TSType`
    InheritedEnum {
        doc: " Inherited from [`TSType`]",
        variants: &[
            EnumVariant {
                name: "TSAnyKeyword",
                inner_name: "TSAnyKeyword",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 0,
            },
            EnumVariant {
                name: "TSBigIntKeyword",
                inner_name: "TSBigIntKeyword",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 1,
            },
            EnumVariant {
                name: "TSBooleanKeyword",
                inner_name: "TSBooleanKeyword",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 2,
            },
            EnumVariant {
                name: "TSIntrinsicKeyword",
                inner_name: "TSIntrinsicKeyword",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 3,
            },
            EnumVariant {
                name: "TSNeverKeyword",
                inner_name: "TSNeverKeyword",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 4,
            },
            EnumVariant {
                name: "TSNullKeyword",
                inner_name: "TSNullKeyword",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 5,
            },
            EnumVariant {
                name: "TSNumberKeyword",
                inner_name: "TSNumberKeyword",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 6,
            },
            EnumVariant {
                name: "TSObjectKeyword",
                inner_name: "TSObjectKeyword",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 7,
            },
            EnumVariant {
                name: "TSStringKeyword",
                inner_name: "TSStringKeyword",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 8,
            },
            EnumVariant {
                name: "TSSymbolKeyword",
                inner_name: "TSSymbolKeyword",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 9,
            },
            EnumVariant {
                name: "TSUndefinedKeyword",
                inner_name: "TSUndefinedKeyword",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 11,
            },
            EnumVariant {
                name: "TSUnknownKeyword",
                inner_name: "TSUnknownKeyword",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 12,
            },
            EnumVariant {
                name: "TSVoidKeyword",
                inner_name: "TSVoidKeyword",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 13,
            },
            EnumVariant {
                name: "TSArrayType",
                inner_name: "TSArrayType",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 14,
            },
            EnumVariant {
                name: "TSConditionalType",
                inner_name: "TSConditionalType",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 15,
            },
            EnumVariant {
                name: "TSConstructorType",
                inner_name: "TSConstructorType",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 16,
            },
            EnumVariant {
                name: "TSFunctionType",
                inner_name: "TSFunctionType",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 17,
            },
            EnumVariant {
                name: "TSImportType",
                inner_name: "TSImportType",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 18,
            },
            EnumVariant {
                name: "TSIndexedAccessType",
                inner_name: "TSIndexedAccessType",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 19,
            },
            EnumVariant {
                name: "TSInferType",
                inner_name: "TSInferType",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 20,
            },
            EnumVariant {
                name: "TSIntersectionType",
                inner_name: "TSIntersectionType",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 21,
            },
            EnumVariant {
                name: "TSLiteralType",
                inner_name: "TSLiteralType",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 22,
            },
            EnumVariant {
                name: "TSMappedType",
                inner_name: "TSMappedType",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 23,
            },
            EnumVariant {
                name: "TSNamedTupleMember",
                inner_name: "TSNamedTupleMember",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 24,
            },
            EnumVariant {
                name: "TSTemplateLiteralType",
                inner_name: "TSTemplateLiteralType",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 26,
            },
            EnumVariant {
                name: "TSThisType",
                inner_name: "TSThisType",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 10,
            },
            EnumVariant {
                name: "TSTupleType",
                inner_name: "TSTupleType",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 27,
            },
            EnumVariant {
                name: "TSTypeLiteral",
                inner_name: "TSTypeLiteral",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 28,
            },
            EnumVariant {
                name: "TSTypeOperatorType",
                inner_name: "TSTypeOperator",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 29,
            },
            EnumVariant {
                name: "TSTypePredicate",
                inner_name: "TSTypePredicate",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 30,
            },
            EnumVariant {
                name: "TSTypeQuery",
                inner_name: "TSTypeQuery",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 31,
            },
            EnumVariant {
                name: "TSTypeReference",
                inner_name: "TSTypeReference",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 32,
            },
            EnumVariant {
                name: "TSUnionType",
                inner_name: "TSUnionType",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 33,
            },
            EnumVariant {
                name: "TSParenthesizedType",
                inner_name: "TSParenthesizedType",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 34,
            },
            EnumVariant {
                name: "JSDocNullableType",
                inner_name: "JSDocNullableType",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 35,
            },
            EnumVariant {
                name: "JSDocNonNullableType",
                inner_name: "JSDocNonNullableType",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 36,
            },
            EnumVariant {
                name: "JSDocUnknownType",
                inner_name: "JSDocUnknownType",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 37,
            },
        ],
    },
    // `TSTypeName`
    InheritedEnum {
        doc: " Inherited from [`TSTypeName`]",
        variants: &[
            EnumVariant {
                name: "IdentifierReference",
                inner_name: "IdentifierReference",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 0,
            },
            EnumVariant {
                name: "QualifiedName",
                inner_name: "TSQualifiedName",
                inner_has_lifetime: true,
                is_boxed: true,
                discriminant: 1,
            },
            EnumVariant {
                name: "ThisExpression",
                inner_name: "ThisExpression",
                inner_has_lifetime: false,
                is_boxed: true,
                discriminant: 2,
            },
        ],
    },
];
