/** This file was generated by Nexus Schema Do not make changes to this file directly */

import ts from 'typescript'
import { ContextType } from './types/context'

declare global {
  interface NexusGen extends NexusGenTypes {}
}

export interface NexusGenInputs {}

export interface NexusGenEnums {
  NodeFlags: ts.NodeFlags
  SyntaxKind: ts.SyntaxKind
}

export interface NexusGenScalars {
  String: string
  Int: number
  Float: number
  Boolean: boolean
  ID: string
}

export interface NexusGenObjects {
  ArrayTypeNode: ts.ArrayTypeNode
  BindingPattern: ts.BindingPattern
  CallSignatureDeclaration: ts.CallSignatureDeclaration
  ClassDeclaration: ts.ClassDeclaration
  ComputedPropertyName: ts.ComputedPropertyName
  ConditionalTypeNode: ts.ConditionalTypeNode
  ConstructSignatureDeclaration: ts.ConstructSignatureDeclaration
  ConstructorDeclaration: ts.ConstructorDeclaration
  ConstructorTypeNode: ts.ConstructorTypeNode
  EnumDeclaration: ts.EnumDeclaration
  ExportAssignment: ts.ExportAssignment
  ExportDeclaration: ts.ExportDeclaration
  FunctionDeclaration: ts.FunctionDeclaration
  FunctionTypeNode: ts.FunctionTypeNode
  GetAccessorDeclaration: ts.GetAccessorDeclaration
  Identifier: ts.Identifier
  ImportDeclaration: ts.ImportDeclaration
  ImportEqualsDeclaration: ts.ImportEqualsDeclaration
  ImportTypeNode: ts.ImportTypeNode
  IndexSignatureDeclaration: ts.IndexSignatureDeclaration
  IndexedAccessTypeNode: ts.IndexedAccessTypeNode
  InferTypeNode: ts.InferTypeNode
  InterfaceDeclaration: ts.InterfaceDeclaration
  IntersectionTypeNode: ts.IntersectionTypeNode
  JSDoc: ts.JSDoc
  JSDocAugmentsTag: ts.JSDocAugmentsTag
  JSDocClassTag: ts.JSDocClassTag
  JSDocEnumTag: ts.JSDocEnumTag
  JSDocNamespaceDeclaration: ts.JSDocNamespaceDeclaration
  JSDocReturnTag: ts.JSDocReturnTag
  JSDocTemplateTag: ts.JSDocTemplateTag
  JSDocThisTag: ts.JSDocThisTag
  JSDocTypeTag: ts.JSDocTypeTag
  JSDocUnknownTag: ts.JSDocUnknownTag
  KeywordTypeNode: ts.KeywordTypeNode
  LiteralType: ts.LiteralTypeNode
  MappedTypeNode: ts.MappedTypeNode
  MethodDeclaration: ts.MethodDeclaration
  MissingDeclaration: ts.MissingDeclaration
  ModuleDeclaration: ts.ModuleDeclaration
  NamespaceDeclaration: ts.NamespaceDeclaration
  NamespaceExportDeclaration: ts.NamespaceExportDeclaration
  NumericLiteral: ts.NumericLiteral
  OptionalTypeNode: ts.OptionalTypeNode
  ParameterDeclaration: ts.ParameterDeclaration
  ParenthesizedType: ts.ParenthesizedTypeNode
  PropertyDeclaration: ts.PropertyDeclaration
  PropertyLikeDeclaration: ts.PropertyLikeDeclaration
  PropertySignature: ts.PropertySignature
  QualifiedName: ts.QualifiedName
  Query: {}
  RestTypeNode: ts.RestTypeNode
  SetAccessorDeclaration: ts.SetAccessorDeclaration
  SourceFile: ts.SourceFile
  StringLiteral: ts.StringLiteral
  StringLiteralLike: ts.StringLiteralLike
  ThisTypeNode: ts.ThisTypeNode
  Token: ts.Token<any>
  TupleTypeNode: ts.TupleTypeNode
  TypeAliasDeclaration: ts.TypeAliasDeclaration
  TypeLiteral: ts.TypeLiteralNode
  TypeParameterDeclaration: ts.TypeParameterDeclaration
  TypeReference: ts.TypeReferenceNode
  UNKNOWN_NODE: {
    // root type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    name?: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    typeName?: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  UnionType: ts.UnionTypeNode
  UnnamedNode: {
    // root type
    text?: string | null // String
  }
  VariableDeclaration: ts.VariableDeclaration
}

export interface NexusGenInterfaces {
  HasJSDoc: ts.HasJSDoc
  JSDocTag: ts.JSDocTag
  MaybeOptional:
    | NexusGenRootTypes['ConstructorDeclaration']
    | NexusGenRootTypes['FunctionDeclaration']
    | NexusGenRootTypes['GetAccessorDeclaration']
    | NexusGenRootTypes['MethodDeclaration']
    | NexusGenRootTypes['PropertyDeclaration']
    | NexusGenRootTypes['PropertySignature']
    | NexusGenRootTypes['SetAccessorDeclaration']
  Node: ts.Node
}

export interface NexusGenUnions {
  DeclarationName: ts.DeclarationName
}

export type NexusGenRootTypes = NexusGenInterfaces & NexusGenObjects & NexusGenUnions

export type NexusGenAllTypes = NexusGenRootTypes & NexusGenScalars & NexusGenEnums

export interface NexusGenFieldTypes {
  ArrayTypeNode: {
    // field return type
    elementType: NexusGenRootTypes['Node'] // Node!
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  BindingPattern: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  CallSignatureDeclaration: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  ClassDeclaration: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    jsDoc: NexusGenRootTypes['JSDoc'][] | null // [JSDoc!]
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    members: NexusGenRootTypes['Node'][] // [Node!]!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  ComputedPropertyName: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  ConditionalTypeNode: {
    // field return type
    checkType: NexusGenRootTypes['Node'] // Node!
    end: number // Int!
    extendsType: NexusGenRootTypes['Node'] // Node!
    falseType: NexusGenRootTypes['Node'] // Node!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    trueType: NexusGenRootTypes['Node'] // Node!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  ConstructSignatureDeclaration: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  ConstructorDeclaration: {
    // field return type
    asteriskToken: NexusGenRootTypes['Token'] | null // Token
    end: number // Int!
    exclamationToken: NexusGenRootTypes['Token'] | null // Token
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    jsDoc: NexusGenRootTypes['JSDoc'][] | null // [JSDoc!]
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parameters: NexusGenRootTypes['ParameterDeclaration'][] // [ParameterDeclaration!]!
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    questionToken: NexusGenRootTypes['Token'] | null // Token
    rawText: string // String!
    type: NexusGenRootTypes['Node'] | null // Node
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    typeParameters: NexusGenRootTypes['TypeParameterDeclaration'][] | null // [TypeParameterDeclaration!]
  }
  ConstructorTypeNode: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    type: NexusGenRootTypes['Node'] // Node!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  EnumDeclaration: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    jsDoc: NexusGenRootTypes['JSDoc'][] | null // [JSDoc!]
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    members: NexusGenRootTypes['Node'][] // [Node!]!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  ExportAssignment: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  ExportDeclaration: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  FunctionDeclaration: {
    // field return type
    asteriskToken: NexusGenRootTypes['Token'] | null // Token
    end: number // Int!
    exclamationToken: NexusGenRootTypes['Token'] | null // Token
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    jsDoc: NexusGenRootTypes['JSDoc'][] | null // [JSDoc!]
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parameters: NexusGenRootTypes['ParameterDeclaration'][] // [ParameterDeclaration!]!
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    questionToken: NexusGenRootTypes['Token'] | null // Token
    rawText: string // String!
    type: NexusGenRootTypes['Node'] | null // Node
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    typeParameters: NexusGenRootTypes['TypeParameterDeclaration'][] | null // [TypeParameterDeclaration!]
  }
  FunctionTypeNode: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    type: NexusGenRootTypes['Node'] // Node!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  GetAccessorDeclaration: {
    // field return type
    asteriskToken: NexusGenRootTypes['Token'] | null // Token
    end: number // Int!
    exclamationToken: NexusGenRootTypes['Token'] | null // Token
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    jsDoc: NexusGenRootTypes['JSDoc'][] | null // [JSDoc!]
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parameters: NexusGenRootTypes['ParameterDeclaration'][] // [ParameterDeclaration!]!
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    questionToken: NexusGenRootTypes['Token'] | null // Token
    rawText: string // String!
    type: NexusGenRootTypes['Node'] | null // Node
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    typeParameters: NexusGenRootTypes['TypeParameterDeclaration'][] | null // [TypeParameterDeclaration!]
  }
  Identifier: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    text: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  ImportDeclaration: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  ImportEqualsDeclaration: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  ImportTypeNode: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  IndexSignatureDeclaration: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    jsDoc: NexusGenRootTypes['JSDoc'][] | null // [JSDoc!]
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  IndexedAccessTypeNode: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  InferTypeNode: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    typeParameter: NexusGenRootTypes['Node'] // Node!
  }
  InterfaceDeclaration: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    jsDoc: NexusGenRootTypes['JSDoc'][] | null // [JSDoc!]
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  IntersectionTypeNode: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    types: NexusGenRootTypes['Node'][] // [Node!]!
  }
  JSDoc: {
    // field return type
    comment: string | null // String
    tags: Array<NexusGenRootTypes['JSDocTag'] | null> // [JSDocTag]!
  }
  JSDocAugmentsTag: {
    // field return type
    comment: string | null // String
    tagName: string | null // String
  }
  JSDocClassTag: {
    // field return type
    comment: string | null // String
    tagName: string | null // String
  }
  JSDocEnumTag: {
    // field return type
    comment: string | null // String
    tagName: string | null // String
  }
  JSDocNamespaceDeclaration: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  JSDocReturnTag: {
    // field return type
    comment: string | null // String
    tagName: string | null // String
  }
  JSDocTemplateTag: {
    // field return type
    comment: string | null // String
    tagName: string | null // String
  }
  JSDocThisTag: {
    // field return type
    comment: string | null // String
    tagName: string | null // String
  }
  JSDocTypeTag: {
    // field return type
    comment: string | null // String
    tagName: string | null // String
  }
  JSDocUnknownTag: {
    // field return type
    comment: string | null // String
    tagName: string | null // String
  }
  KeywordTypeNode: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  LiteralType: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  MappedTypeNode: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  MethodDeclaration: {
    // field return type
    asteriskToken: NexusGenRootTypes['Token'] | null // Token
    end: number // Int!
    exclamationToken: NexusGenRootTypes['Token'] | null // Token
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    jsDoc: NexusGenRootTypes['JSDoc'][] | null // [JSDoc!]
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parameters: NexusGenRootTypes['ParameterDeclaration'][] // [ParameterDeclaration!]!
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    questionToken: NexusGenRootTypes['Token'] | null // Token
    rawText: string // String!
    type: NexusGenRootTypes['Node'] | null // Node
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    typeParameters: NexusGenRootTypes['TypeParameterDeclaration'][] | null // [TypeParameterDeclaration!]
  }
  MissingDeclaration: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  ModuleDeclaration: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    jsDoc: NexusGenRootTypes['JSDoc'][] | null // [JSDoc!]
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  NamespaceDeclaration: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    jsDoc: NexusGenRootTypes['JSDoc'][] | null // [JSDoc!]
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  NamespaceExportDeclaration: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  NumericLiteral: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  OptionalTypeNode: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    type: NexusGenRootTypes['Node'] // Node!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  ParameterDeclaration: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    jsDoc: NexusGenRootTypes['JSDoc'][] | null // [JSDoc!]
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    type: NexusGenRootTypes['Node'] // Node!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  ParenthesizedType: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    type: NexusGenRootTypes['Node'] // Node!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  PropertyDeclaration: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    jsDoc: NexusGenRootTypes['JSDoc'][] | null // [JSDoc!]
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    questionToken: NexusGenRootTypes['Token'] | null // Token
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  PropertyLikeDeclaration: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  PropertySignature: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    jsDoc: NexusGenRootTypes['JSDoc'][] | null // [JSDoc!]
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    questionToken: NexusGenRootTypes['Token'] | null // Token
    rawText: string // String!
    type: NexusGenRootTypes['Node'] | null // Node
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  QualifiedName: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  Query: {
    // field return type
    parseFile: NexusGenRootTypes['SourceFile'] // SourceFile!
  }
  RestTypeNode: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    type: NexusGenRootTypes['Node'] // Node!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  SetAccessorDeclaration: {
    // field return type
    asteriskToken: NexusGenRootTypes['Token'] | null // Token
    end: number // Int!
    exclamationToken: NexusGenRootTypes['Token'] | null // Token
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    jsDoc: NexusGenRootTypes['JSDoc'][] | null // [JSDoc!]
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parameters: NexusGenRootTypes['ParameterDeclaration'][] // [ParameterDeclaration!]!
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    questionToken: NexusGenRootTypes['Token'] | null // Token
    rawText: string // String!
    type: NexusGenRootTypes['Node'] | null // Node
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    typeParameters: NexusGenRootTypes['TypeParameterDeclaration'][] | null // [TypeParameterDeclaration!]
  }
  SourceFile: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    statements: NexusGenRootTypes['Node'][] // [Node!]!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  StringLiteral: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  StringLiteralLike: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  ThisTypeNode: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  Token: {
    // field return type
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
  }
  TupleTypeNode: {
    // field return type
    elementTypes: NexusGenRootTypes['Node'][] // [Node!]!
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  TypeAliasDeclaration: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    jsDoc: NexusGenRootTypes['JSDoc'][] | null // [JSDoc!]
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    type: NexusGenRootTypes['Node'] | null // Node
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    typeParameters: NexusGenRootTypes['TypeParameterDeclaration'][] | null // [TypeParameterDeclaration!]
  }
  TypeLiteral: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  TypeParameterDeclaration: {
    // field return type
    constraint: NexusGenRootTypes['Node'] // Node!
    default: NexusGenRootTypes['Node'] // Node!
    end: number // Int!
    expression: NexusGenRootTypes['Node'] // Node!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  TypeReference: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    text: string | null // String
    typeArguments: NexusGenRootTypes['Node'][] | null // [Node!]
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  UNKNOWN_NODE: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  UnionType: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    types: NexusGenRootTypes['Node'][] // [Node!]!
  }
  UnnamedNode: {
    // field return type
    text: string | null // String
  }
  VariableDeclaration: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
  HasJSDoc: {
    // field return type
    jsDoc: NexusGenRootTypes['JSDoc'][] | null // [JSDoc!]
  }
  JSDocTag: {
    // field return type
    comment: string | null // String
    tagName: string | null // String
  }
  MaybeOptional: {
    // field return type
    questionToken: NexusGenRootTypes['Token'] | null // Token
  }
  Node: {
    // field return type
    end: number // Int!
    flags: NexusGenEnums['NodeFlags'] // NodeFlags!
    kind: NexusGenEnums['SyntaxKind'] // SyntaxKind!
    kindCode: number // Int!
    modifiers: NexusGenRootTypes['Token'][] | null // [Token!]
    name: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
    nameText: string | null // String
    parent: NexusGenRootTypes['Node'] // Node!
    pos: number // Int!
    rawText: string // String!
    typeName: NexusGenRootTypes['DeclarationName'] | null // DeclarationName
  }
}

export interface NexusGenFieldTypeNames {
  ArrayTypeNode: {
    // field return type name
    elementType: 'Node'
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  BindingPattern: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  CallSignatureDeclaration: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  ClassDeclaration: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    jsDoc: 'JSDoc'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    members: 'Node'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  ComputedPropertyName: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  ConditionalTypeNode: {
    // field return type name
    checkType: 'Node'
    end: 'Int'
    extendsType: 'Node'
    falseType: 'Node'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    trueType: 'Node'
    typeName: 'DeclarationName'
  }
  ConstructSignatureDeclaration: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  ConstructorDeclaration: {
    // field return type name
    asteriskToken: 'Token'
    end: 'Int'
    exclamationToken: 'Token'
    flags: 'NodeFlags'
    jsDoc: 'JSDoc'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parameters: 'ParameterDeclaration'
    parent: 'Node'
    pos: 'Int'
    questionToken: 'Token'
    rawText: 'String'
    type: 'Node'
    typeName: 'DeclarationName'
    typeParameters: 'TypeParameterDeclaration'
  }
  ConstructorTypeNode: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    type: 'Node'
    typeName: 'DeclarationName'
  }
  EnumDeclaration: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    jsDoc: 'JSDoc'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    members: 'Node'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  ExportAssignment: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  ExportDeclaration: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  FunctionDeclaration: {
    // field return type name
    asteriskToken: 'Token'
    end: 'Int'
    exclamationToken: 'Token'
    flags: 'NodeFlags'
    jsDoc: 'JSDoc'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parameters: 'ParameterDeclaration'
    parent: 'Node'
    pos: 'Int'
    questionToken: 'Token'
    rawText: 'String'
    type: 'Node'
    typeName: 'DeclarationName'
    typeParameters: 'TypeParameterDeclaration'
  }
  FunctionTypeNode: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    type: 'Node'
    typeName: 'DeclarationName'
  }
  GetAccessorDeclaration: {
    // field return type name
    asteriskToken: 'Token'
    end: 'Int'
    exclamationToken: 'Token'
    flags: 'NodeFlags'
    jsDoc: 'JSDoc'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parameters: 'ParameterDeclaration'
    parent: 'Node'
    pos: 'Int'
    questionToken: 'Token'
    rawText: 'String'
    type: 'Node'
    typeName: 'DeclarationName'
    typeParameters: 'TypeParameterDeclaration'
  }
  Identifier: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    text: 'String'
    typeName: 'DeclarationName'
  }
  ImportDeclaration: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  ImportEqualsDeclaration: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  ImportTypeNode: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  IndexSignatureDeclaration: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    jsDoc: 'JSDoc'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  IndexedAccessTypeNode: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  InferTypeNode: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
    typeParameter: 'Node'
  }
  InterfaceDeclaration: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    jsDoc: 'JSDoc'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  IntersectionTypeNode: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
    types: 'Node'
  }
  JSDoc: {
    // field return type name
    comment: 'String'
    tags: 'JSDocTag'
  }
  JSDocAugmentsTag: {
    // field return type name
    comment: 'String'
    tagName: 'String'
  }
  JSDocClassTag: {
    // field return type name
    comment: 'String'
    tagName: 'String'
  }
  JSDocEnumTag: {
    // field return type name
    comment: 'String'
    tagName: 'String'
  }
  JSDocNamespaceDeclaration: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  JSDocReturnTag: {
    // field return type name
    comment: 'String'
    tagName: 'String'
  }
  JSDocTemplateTag: {
    // field return type name
    comment: 'String'
    tagName: 'String'
  }
  JSDocThisTag: {
    // field return type name
    comment: 'String'
    tagName: 'String'
  }
  JSDocTypeTag: {
    // field return type name
    comment: 'String'
    tagName: 'String'
  }
  JSDocUnknownTag: {
    // field return type name
    comment: 'String'
    tagName: 'String'
  }
  KeywordTypeNode: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  LiteralType: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  MappedTypeNode: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  MethodDeclaration: {
    // field return type name
    asteriskToken: 'Token'
    end: 'Int'
    exclamationToken: 'Token'
    flags: 'NodeFlags'
    jsDoc: 'JSDoc'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parameters: 'ParameterDeclaration'
    parent: 'Node'
    pos: 'Int'
    questionToken: 'Token'
    rawText: 'String'
    type: 'Node'
    typeName: 'DeclarationName'
    typeParameters: 'TypeParameterDeclaration'
  }
  MissingDeclaration: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  ModuleDeclaration: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    jsDoc: 'JSDoc'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  NamespaceDeclaration: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    jsDoc: 'JSDoc'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  NamespaceExportDeclaration: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  NumericLiteral: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  OptionalTypeNode: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    type: 'Node'
    typeName: 'DeclarationName'
  }
  ParameterDeclaration: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    jsDoc: 'JSDoc'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    type: 'Node'
    typeName: 'DeclarationName'
  }
  ParenthesizedType: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    type: 'Node'
    typeName: 'DeclarationName'
  }
  PropertyDeclaration: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    jsDoc: 'JSDoc'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    questionToken: 'Token'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  PropertyLikeDeclaration: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  PropertySignature: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    jsDoc: 'JSDoc'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    questionToken: 'Token'
    rawText: 'String'
    type: 'Node'
    typeName: 'DeclarationName'
  }
  QualifiedName: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  Query: {
    // field return type name
    parseFile: 'SourceFile'
  }
  RestTypeNode: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    type: 'Node'
    typeName: 'DeclarationName'
  }
  SetAccessorDeclaration: {
    // field return type name
    asteriskToken: 'Token'
    end: 'Int'
    exclamationToken: 'Token'
    flags: 'NodeFlags'
    jsDoc: 'JSDoc'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parameters: 'ParameterDeclaration'
    parent: 'Node'
    pos: 'Int'
    questionToken: 'Token'
    rawText: 'String'
    type: 'Node'
    typeName: 'DeclarationName'
    typeParameters: 'TypeParameterDeclaration'
  }
  SourceFile: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    statements: 'Node'
    typeName: 'DeclarationName'
  }
  StringLiteral: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  StringLiteralLike: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  ThisTypeNode: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  Token: {
    // field return type name
    kind: 'SyntaxKind'
  }
  TupleTypeNode: {
    // field return type name
    elementTypes: 'Node'
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  TypeAliasDeclaration: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    jsDoc: 'JSDoc'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    type: 'Node'
    typeName: 'DeclarationName'
    typeParameters: 'TypeParameterDeclaration'
  }
  TypeLiteral: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  TypeParameterDeclaration: {
    // field return type name
    constraint: 'Node'
    default: 'Node'
    end: 'Int'
    expression: 'Node'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  TypeReference: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    text: 'String'
    typeArguments: 'Node'
    typeName: 'DeclarationName'
  }
  UNKNOWN_NODE: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  UnionType: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
    types: 'Node'
  }
  UnnamedNode: {
    // field return type name
    text: 'String'
  }
  VariableDeclaration: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
  HasJSDoc: {
    // field return type name
    jsDoc: 'JSDoc'
  }
  JSDocTag: {
    // field return type name
    comment: 'String'
    tagName: 'String'
  }
  MaybeOptional: {
    // field return type name
    questionToken: 'Token'
  }
  Node: {
    // field return type name
    end: 'Int'
    flags: 'NodeFlags'
    kind: 'SyntaxKind'
    kindCode: 'Int'
    modifiers: 'Token'
    name: 'DeclarationName'
    nameText: 'String'
    parent: 'Node'
    pos: 'Int'
    rawText: 'String'
    typeName: 'DeclarationName'
  }
}

export interface NexusGenArgTypes {
  ArrayTypeNode: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  BindingPattern: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  CallSignatureDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  ClassDeclaration: {
    members: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  ComputedPropertyName: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  ConditionalTypeNode: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  ConstructSignatureDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  ConstructorDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  ConstructorTypeNode: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  EnumDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  ExportAssignment: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  ExportDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  FunctionDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  FunctionTypeNode: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  GetAccessorDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  Identifier: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  ImportDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  ImportEqualsDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  ImportTypeNode: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  IndexSignatureDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  IndexedAccessTypeNode: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  InferTypeNode: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  InterfaceDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  IntersectionTypeNode: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  JSDocNamespaceDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  KeywordTypeNode: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  LiteralType: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  MappedTypeNode: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  MethodDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  MissingDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  ModuleDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  NamespaceDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  NamespaceExportDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  NumericLiteral: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  OptionalTypeNode: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  ParameterDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  ParenthesizedType: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  PropertyDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  PropertyLikeDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  PropertySignature: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  QualifiedName: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  Query: {
    parseFile: {
      // args
      file: string // String!
    }
  }
  RestTypeNode: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  SetAccessorDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  SourceFile: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    statements: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  StringLiteral: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  StringLiteralLike: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  ThisTypeNode: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  TupleTypeNode: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  TypeAliasDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  TypeLiteral: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  TypeParameterDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  TypeReference: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  UNKNOWN_NODE: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  UnionType: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  VariableDeclaration: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
  Node: {
    modifiers: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
    rawText: {
      // args
      only?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
      skip?: Array<NexusGenEnums['SyntaxKind'] | null> | null // [SyntaxKind]
    }
  }
}

export interface NexusGenAbstractTypeMembers {
  DeclarationName:
    | 'BindingPattern'
    | 'ComputedPropertyName'
    | 'Identifier'
    | 'NumericLiteral'
    | 'QualifiedName'
    | 'StringLiteralLike'
    | 'UnnamedNode'
  HasJSDoc:
    | 'ClassDeclaration'
    | 'ConstructorDeclaration'
    | 'EnumDeclaration'
    | 'FunctionDeclaration'
    | 'GetAccessorDeclaration'
    | 'IndexSignatureDeclaration'
    | 'InterfaceDeclaration'
    | 'MethodDeclaration'
    | 'ModuleDeclaration'
    | 'NamespaceDeclaration'
    | 'ParameterDeclaration'
    | 'PropertyDeclaration'
    | 'PropertySignature'
    | 'SetAccessorDeclaration'
    | 'TypeAliasDeclaration'
  JSDocTag:
    | 'JSDocAugmentsTag'
    | 'JSDocClassTag'
    | 'JSDocEnumTag'
    | 'JSDocReturnTag'
    | 'JSDocTemplateTag'
    | 'JSDocThisTag'
    | 'JSDocTypeTag'
    | 'JSDocUnknownTag'
  MaybeOptional:
    | 'ConstructorDeclaration'
    | 'FunctionDeclaration'
    | 'GetAccessorDeclaration'
    | 'MethodDeclaration'
    | 'PropertyDeclaration'
    | 'PropertySignature'
    | 'SetAccessorDeclaration'
  Node:
    | 'ArrayTypeNode'
    | 'BindingPattern'
    | 'CallSignatureDeclaration'
    | 'ClassDeclaration'
    | 'ComputedPropertyName'
    | 'ConditionalTypeNode'
    | 'ConstructorDeclaration'
    | 'ConstructorTypeNode'
    | 'ConstructSignatureDeclaration'
    | 'EnumDeclaration'
    | 'ExportAssignment'
    | 'ExportDeclaration'
    | 'FunctionDeclaration'
    | 'FunctionTypeNode'
    | 'GetAccessorDeclaration'
    | 'Identifier'
    | 'ImportDeclaration'
    | 'ImportEqualsDeclaration'
    | 'ImportTypeNode'
    | 'IndexedAccessTypeNode'
    | 'IndexSignatureDeclaration'
    | 'InferTypeNode'
    | 'InterfaceDeclaration'
    | 'IntersectionTypeNode'
    | 'JSDocNamespaceDeclaration'
    | 'KeywordTypeNode'
    | 'LiteralType'
    | 'MappedTypeNode'
    | 'MethodDeclaration'
    | 'MissingDeclaration'
    | 'ModuleDeclaration'
    | 'NamespaceDeclaration'
    | 'NamespaceExportDeclaration'
    | 'NumericLiteral'
    | 'OptionalTypeNode'
    | 'ParameterDeclaration'
    | 'ParenthesizedType'
    | 'PropertyDeclaration'
    | 'PropertyLikeDeclaration'
    | 'PropertySignature'
    | 'QualifiedName'
    | 'RestTypeNode'
    | 'SetAccessorDeclaration'
    | 'SourceFile'
    | 'StringLiteral'
    | 'StringLiteralLike'
    | 'ThisTypeNode'
    | 'TupleTypeNode'
    | 'TypeAliasDeclaration'
    | 'TypeLiteral'
    | 'TypeParameterDeclaration'
    | 'TypeReference'
    | 'UnionType'
    | 'UNKNOWN_NODE'
    | 'VariableDeclaration'
}

export interface NexusGenTypeInterfaces {
  ArrayTypeNode: 'Node'
  BindingPattern: 'Node'
  CallSignatureDeclaration: 'Node'
  ClassDeclaration: 'HasJSDoc' | 'Node'
  ComputedPropertyName: 'Node'
  ConditionalTypeNode: 'Node'
  ConstructSignatureDeclaration: 'Node'
  ConstructorDeclaration: 'HasJSDoc' | 'MaybeOptional' | 'Node'
  ConstructorTypeNode: 'Node'
  EnumDeclaration: 'HasJSDoc' | 'Node'
  ExportAssignment: 'Node'
  ExportDeclaration: 'Node'
  FunctionDeclaration: 'HasJSDoc' | 'MaybeOptional' | 'Node'
  FunctionTypeNode: 'Node'
  GetAccessorDeclaration: 'HasJSDoc' | 'MaybeOptional' | 'Node'
  Identifier: 'Node'
  ImportDeclaration: 'Node'
  ImportEqualsDeclaration: 'Node'
  ImportTypeNode: 'Node'
  IndexSignatureDeclaration: 'HasJSDoc' | 'Node'
  IndexedAccessTypeNode: 'Node'
  InferTypeNode: 'Node'
  InterfaceDeclaration: 'HasJSDoc' | 'Node'
  IntersectionTypeNode: 'Node'
  JSDocAugmentsTag: 'JSDocTag'
  JSDocClassTag: 'JSDocTag'
  JSDocEnumTag: 'JSDocTag'
  JSDocNamespaceDeclaration: 'Node'
  JSDocReturnTag: 'JSDocTag'
  JSDocTemplateTag: 'JSDocTag'
  JSDocThisTag: 'JSDocTag'
  JSDocTypeTag: 'JSDocTag'
  JSDocUnknownTag: 'JSDocTag'
  KeywordTypeNode: 'Node'
  LiteralType: 'Node'
  MappedTypeNode: 'Node'
  MethodDeclaration: 'HasJSDoc' | 'MaybeOptional' | 'Node'
  MissingDeclaration: 'Node'
  ModuleDeclaration: 'HasJSDoc' | 'Node'
  NamespaceDeclaration: 'HasJSDoc' | 'Node'
  NamespaceExportDeclaration: 'Node'
  NumericLiteral: 'Node'
  OptionalTypeNode: 'Node'
  ParameterDeclaration: 'HasJSDoc' | 'Node'
  ParenthesizedType: 'Node'
  PropertyDeclaration: 'HasJSDoc' | 'MaybeOptional' | 'Node'
  PropertyLikeDeclaration: 'Node'
  PropertySignature: 'HasJSDoc' | 'MaybeOptional' | 'Node'
  QualifiedName: 'Node'
  RestTypeNode: 'Node'
  SetAccessorDeclaration: 'HasJSDoc' | 'MaybeOptional' | 'Node'
  SourceFile: 'Node'
  StringLiteral: 'Node'
  StringLiteralLike: 'Node'
  ThisTypeNode: 'Node'
  TupleTypeNode: 'Node'
  TypeAliasDeclaration: 'HasJSDoc' | 'Node'
  TypeLiteral: 'Node'
  TypeParameterDeclaration: 'Node'
  TypeReference: 'Node'
  UNKNOWN_NODE: 'Node'
  UnionType: 'Node'
  VariableDeclaration: 'Node'
}

export type NexusGenObjectNames = keyof NexusGenObjects

export type NexusGenInputNames = never

export type NexusGenEnumNames = keyof NexusGenEnums

export type NexusGenInterfaceNames = keyof NexusGenInterfaces

export type NexusGenScalarNames = keyof NexusGenScalars

export type NexusGenUnionNames = keyof NexusGenUnions

export type NexusGenObjectsUsingAbstractStrategyIsTypeOf = never

export type NexusGenAbstractsUsingStrategyResolveType =
  | 'DeclarationName'
  | 'HasJSDoc'
  | 'JSDocTag'
  | 'MaybeOptional'
  | 'Node'

export type NexusGenFeaturesConfig = {
  abstractTypeStrategies: {
    resolveType: true
    __typename: false
    isTypeOf: false
  }
}

export interface NexusGenTypes {
  context: ContextType
  inputTypes: NexusGenInputs
  rootTypes: NexusGenRootTypes
  inputTypeShapes: NexusGenInputs & NexusGenEnums & NexusGenScalars
  argTypes: NexusGenArgTypes
  fieldTypes: NexusGenFieldTypes
  fieldTypeNames: NexusGenFieldTypeNames
  allTypes: NexusGenAllTypes
  typeInterfaces: NexusGenTypeInterfaces
  objectNames: NexusGenObjectNames
  inputNames: NexusGenInputNames
  enumNames: NexusGenEnumNames
  interfaceNames: NexusGenInterfaceNames
  scalarNames: NexusGenScalarNames
  unionNames: NexusGenUnionNames
  allInputTypes: NexusGenTypes['inputNames'] | NexusGenTypes['enumNames'] | NexusGenTypes['scalarNames']
  allOutputTypes:
    | NexusGenTypes['objectNames']
    | NexusGenTypes['enumNames']
    | NexusGenTypes['unionNames']
    | NexusGenTypes['interfaceNames']
    | NexusGenTypes['scalarNames']
  allNamedTypes: NexusGenTypes['allInputTypes'] | NexusGenTypes['allOutputTypes']
  abstractTypes: NexusGenTypes['interfaceNames'] | NexusGenTypes['unionNames']
  abstractTypeMembers: NexusGenAbstractTypeMembers
  objectsUsingAbstractStrategyIsTypeOf: NexusGenObjectsUsingAbstractStrategyIsTypeOf
  abstractsUsingStrategyResolveType: NexusGenAbstractsUsingStrategyResolveType
  features: NexusGenFeaturesConfig
}

declare global {
  interface NexusGenPluginTypeConfig<TypeName extends string> {}
  interface NexusGenPluginFieldConfig<TypeName extends string, FieldName extends string> {}
  interface NexusGenPluginInputFieldConfig<TypeName extends string, FieldName extends string> {}
  interface NexusGenPluginSchemaConfig {}
  interface NexusGenPluginArgConfig {}
}
