2a741ffe2e6c6833d8a674c3bebcdbc5273e57c4ac317fb2b9d387233155eb2204f4f1e2bc2dce0af914bd56663a505ef79801bc5edef079ca3a940076aef9 167 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786
  1. // NOTE: This file is autogenerated. Do not modify.
  2. // See packages/babel-types/scripts/generators/typescript-legacy.js for script used.
  3. interface BaseComment {
  4. value: string;
  5. start: number;
  6. end: number;
  7. loc: SourceLocation;
  8. type: "CommentBlock" | "CommentLine";
  9. }
  10. export interface CommentBlock extends BaseComment {
  11. type: "CommentBlock";
  12. }
  13. export interface CommentLine extends BaseComment {
  14. type: "CommentLine";
  15. }
  16. export type Comment = CommentBlock | CommentLine;
  17. export interface SourceLocation {
  18. start: {
  19. line: number;
  20. column: number;
  21. };
  22. end: {
  23. line: number;
  24. column: number;
  25. };
  26. }
  27. interface BaseNode {
  28. leadingComments: ReadonlyArray<Comment> | null;
  29. innerComments: ReadonlyArray<Comment> | null;
  30. trailingComments: ReadonlyArray<Comment> | null;
  31. start: number | null;
  32. end: number | null;
  33. loc: SourceLocation | null;
  34. type: Node["type"];
  35. extra?: Record<string, unknown>;
  36. }
  37. export type Node = Accessor | AnyTypeAnnotation | ArgumentPlaceholder | ArrayExpression | ArrayPattern | ArrayTypeAnnotation | ArrowFunctionExpression | AssignmentExpression | AssignmentPattern | AwaitExpression | BigIntLiteral | Binary | BinaryExpression | BindExpression | Block | BlockParent | BlockStatement | BooleanLiteral | BooleanLiteralTypeAnnotation | BooleanTypeAnnotation | BreakStatement | CallExpression | CatchClause | Class | ClassAccessorProperty | ClassBody | ClassDeclaration | ClassExpression | ClassImplements | ClassMethod | ClassPrivateMethod | ClassPrivateProperty | ClassProperty | CompletionStatement | Conditional | ConditionalExpression | ContinueStatement | DebuggerStatement | DecimalLiteral | Declaration | DeclareClass | DeclareExportAllDeclaration | DeclareExportDeclaration | DeclareFunction | DeclareInterface | DeclareModule | DeclareModuleExports | DeclareOpaqueType | DeclareTypeAlias | DeclareVariable | DeclaredPredicate | Decorator | Directive | DirectiveLiteral | DoExpression | DoWhileStatement | EmptyStatement | EmptyTypeAnnotation | EnumBody | EnumBooleanBody | EnumBooleanMember | EnumDeclaration | EnumDefaultedMember | EnumMember | EnumNumberBody | EnumNumberMember | EnumStringBody | EnumStringMember | EnumSymbolBody | ExistsTypeAnnotation | ExportAllDeclaration | ExportDeclaration | ExportDefaultDeclaration | ExportDefaultSpecifier | ExportNamedDeclaration | ExportNamespaceSpecifier | ExportSpecifier | Expression | ExpressionStatement | ExpressionWrapper | File | Flow | FlowBaseAnnotation | FlowDeclaration | FlowPredicate | FlowType | For | ForInStatement | ForOfStatement | ForStatement | ForXStatement | Function | FunctionDeclaration | FunctionExpression | FunctionParent | FunctionTypeAnnotation | FunctionTypeParam | GenericTypeAnnotation | Identifier | IfStatement | Immutable | Import | ImportAttribute | ImportDeclaration | ImportDefaultSpecifier | ImportExpression | ImportNamespaceSpecifier | ImportOrExportDeclaration | ImportSpecifier | IndexedAccessType | InferredPredicate | InterfaceDeclaration | InterfaceExtends | InterfaceTypeAnnotation | InterpreterDirective | IntersectionTypeAnnotation | JSX | JSXAttribute | JSXClosingElement | JSXClosingFragment | JSXElement | JSXEmptyExpression | JSXExpressionContainer | JSXFragment | JSXIdentifier | JSXMemberExpression | JSXNamespacedName | JSXOpeningElement | JSXOpeningFragment | JSXSpreadAttribute | JSXSpreadChild | JSXText | LVal | LabeledStatement | Literal | LogicalExpression | Loop | MemberExpression | MetaProperty | Method | Miscellaneous | MixedTypeAnnotation | ModuleDeclaration | ModuleExpression | ModuleSpecifier | NewExpression | Noop | NullLiteral | NullLiteralTypeAnnotation | NullableTypeAnnotation | NumberLiteral | NumberLiteralTypeAnnotation | NumberTypeAnnotation | NumericLiteral | ObjectExpression | ObjectMember | ObjectMethod | ObjectPattern | ObjectProperty | ObjectTypeAnnotation | ObjectTypeCallProperty | ObjectTypeIndexer | ObjectTypeInternalSlot | ObjectTypeProperty | ObjectTypeSpreadProperty | OpaqueType | OptionalCallExpression | OptionalIndexedAccessType | OptionalMemberExpression | ParenthesizedExpression | Pattern | PatternLike | PipelineBareFunction | PipelinePrimaryTopicReference | PipelineTopicExpression | Placeholder | Private | PrivateName | Program | Property | Pureish | QualifiedTypeIdentifier | RecordExpression | RegExpLiteral | RegexLiteral | RestElement | RestProperty | ReturnStatement | Scopable | SequenceExpression | SpreadElement | SpreadProperty | Standardized | Statement | StaticBlock | StringLiteral | StringLiteralTypeAnnotation | StringTypeAnnotation | Super | SwitchCase | SwitchStatement | SymbolTypeAnnotation | TSAnyKeyword | TSArrayType | TSAsExpression | TSBaseType | TSBigIntKeyword | TSBooleanKeyword | TSCallSignatureDeclaration | TSConditionalType | TSConstructSignatureDeclaration | TSConstructorType | TSDeclareFunction | TSDeclareMethod | TSEntityName | TSEnumBody | TSEnumDeclaration | TSEnumMember | TSExportAssignment | TSExpressionWithTypeArguments | TSExternalModuleReference | TSFunctionType | TSImportEqualsDeclaration | TSImportType | TSIndexSignature | TSIndexedAccessType | TSInferType | TSInstantiationExpression | TSInterfaceBody | TSInterfaceDeclaration | TSIntersectionType | TSIntrinsicKeyword | TSLiteralType | TSMappedType | TSMethodSignature | TSModuleBlock | TSModuleDeclaration | TSNamedTupleMember | TSNamespaceExportDeclaration | TSNeverKeyword | TSNonNullExpression | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSOptionalType | TSParameterProperty | TSParenthesizedType | TSPropertySignature | TSQualifiedName | TSRestType | TSSatisfiesExpression | TSStringKeyword | TSSymbolKeyword | TSTemplateLiteralType | TSThisType | TSTupleType | TSType | TSTypeAliasDeclaration | TSTypeAnnotation | TSTypeAssertion | TSTypeElement | TSTypeLiteral | TSTypeOperator | TSTypeParameter | TSTypeParameterDeclaration | TSTypeParameterInstantiation | TSTypePredicate | TSTypeQuery | TSTypeReference | TSUndefinedKeyword | TSUnionType | TSUnknownKeyword | TSVoidKeyword | TaggedTemplateExpression | TemplateElement | TemplateLiteral | Terminatorless | ThisExpression | ThisTypeAnnotation | ThrowStatement | TopicReference | TryStatement | TupleExpression | TupleTypeAnnotation | TypeAlias | TypeAnnotation | TypeCastExpression | TypeParameter | TypeParameterDeclaration | TypeParameterInstantiation | TypeScript | TypeofTypeAnnotation | UnaryExpression | UnaryLike | UnionTypeAnnotation | UpdateExpression | UserWhitespacable | V8IntrinsicIdentifier | VariableDeclaration | VariableDeclarator | Variance | VoidTypeAnnotation | While | WhileStatement | WithStatement | YieldExpression;
  38. export interface ArrayExpression extends BaseNode {
  39. type: "ArrayExpression";
  40. elements: Array<null | Expression | SpreadElement>;
  41. }
  42. export interface AssignmentExpression extends BaseNode {
  43. type: "AssignmentExpression";
  44. operator: string;
  45. left: LVal | OptionalMemberExpression;
  46. right: Expression;
  47. }
  48. export interface BinaryExpression extends BaseNode {
  49. type: "BinaryExpression";
  50. operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<=" | "|>";
  51. left: Expression | PrivateName;
  52. right: Expression;
  53. }
  54. export interface InterpreterDirective extends BaseNode {
  55. type: "InterpreterDirective";
  56. value: string;
  57. }
  58. export interface Directive extends BaseNode {
  59. type: "Directive";
  60. value: DirectiveLiteral;
  61. }
  62. export interface DirectiveLiteral extends BaseNode {
  63. type: "DirectiveLiteral";
  64. value: string;
  65. }
  66. export interface BlockStatement extends BaseNode {
  67. type: "BlockStatement";
  68. body: Array<Statement>;
  69. directives: Array<Directive>;
  70. }
  71. export interface BreakStatement extends BaseNode {
  72. type: "BreakStatement";
  73. label: Identifier | null;
  74. }
  75. export interface CallExpression extends BaseNode {
  76. type: "CallExpression";
  77. callee: Expression | Super | V8IntrinsicIdentifier;
  78. arguments: Array<Expression | SpreadElement | ArgumentPlaceholder>;
  79. optional: boolean | null;
  80. typeArguments: TypeParameterInstantiation | null;
  81. typeParameters: TSTypeParameterInstantiation | null;
  82. }
  83. export interface CatchClause extends BaseNode {
  84. type: "CatchClause";
  85. param: Identifier | ArrayPattern | ObjectPattern | null;
  86. body: BlockStatement;
  87. }
  88. export interface ConditionalExpression extends BaseNode {
  89. type: "ConditionalExpression";
  90. test: Expression;
  91. consequent: Expression;
  92. alternate: Expression;
  93. }
  94. export interface ContinueStatement extends BaseNode {
  95. type: "ContinueStatement";
  96. label: Identifier | null;
  97. }
  98. export interface DebuggerStatement extends BaseNode {
  99. type: "DebuggerStatement";
  100. }
  101. export interface DoWhileStatement extends BaseNode {
  102. type: "DoWhileStatement";
  103. test: Expression;
  104. body: Statement;
  105. }
  106. export interface EmptyStatement extends BaseNode {
  107. type: "EmptyStatement";
  108. }
  109. export interface ExpressionStatement extends BaseNode {
  110. type: "ExpressionStatement";
  111. expression: Expression;
  112. }
  113. export interface File extends BaseNode {
  114. type: "File";
  115. program: Program;
  116. comments: Array<CommentBlock | CommentLine> | null;
  117. tokens: Array<any> | null;
  118. }
  119. export interface ForInStatement extends BaseNode {
  120. type: "ForInStatement";
  121. left: VariableDeclaration | LVal;
  122. right: Expression;
  123. body: Statement;
  124. }
  125. export interface ForStatement extends BaseNode {
  126. type: "ForStatement";
  127. init: VariableDeclaration | Expression | null;
  128. test: Expression | null;
  129. update: Expression | null;
  130. body: Statement;
  131. }
  132. export interface FunctionDeclaration extends BaseNode {
  133. type: "FunctionDeclaration";
  134. id: Identifier | null;
  135. params: Array<Identifier | Pattern | RestElement>;
  136. body: BlockStatement;
  137. generator: boolean;
  138. async: boolean;
  139. declare: boolean | null;
  140. predicate: DeclaredPredicate | InferredPredicate | null;
  141. returnType: TypeAnnotation | TSTypeAnnotation | Noop | null;
  142. typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null;
  143. }
  144. export interface FunctionExpression extends BaseNode {
  145. type: "FunctionExpression";
  146. id: Identifier | null;
  147. params: Array<Identifier | Pattern | RestElement>;
  148. body: BlockStatement;
  149. generator: boolean;
  150. async: boolean;
  151. predicate: DeclaredPredicate | InferredPredicate | null;
  152. returnType: TypeAnnotation | TSTypeAnnotation | Noop | null;
  153. typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null;
  154. }
  155. export interface Identifier extends BaseNode {
  156. type: "Identifier";
  157. name: string;
  158. decorators: Array<Decorator> | null;
  159. optional: boolean | null;
  160. typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null;
  161. }
  162. export interface IfStatement extends BaseNode {
  163. type: "IfStatement";
  164. test: Expression;
  165. consequent: Statement;
  166. alternate: Statement | null;
  167. }
  168. export interface LabeledStatement extends BaseNode {
  169. type: "LabeledStatement";
  170. label: Identifier;
  171. body: Statement;
  172. }
  173. export interface StringLiteral extends BaseNode {
  174. type: "StringLiteral";
  175. value: string;
  176. }
  177. export interface NumericLiteral extends BaseNode {
  178. type: "NumericLiteral";
  179. value: number;
  180. }
  181. export interface NullLiteral extends BaseNode {
  182. type: "NullLiteral";
  183. }
  184. export interface BooleanLiteral extends BaseNode {
  185. type: "BooleanLiteral";
  186. value: boolean;
  187. }
  188. export interface RegExpLiteral extends BaseNode {
  189. type: "RegExpLiteral";
  190. pattern: string;
  191. flags: string;
  192. }
  193. export interface LogicalExpression extends BaseNode {
  194. type: "LogicalExpression";
  195. operator: "||" | "&&" | "??";
  196. left: Expression;
  197. right: Expression;
  198. }
  199. export interface MemberExpression extends BaseNode {
  200. type: "MemberExpression";
  201. object: Expression | Super;
  202. property: Expression | Identifier | PrivateName;
  203. computed: boolean;
  204. optional: boolean | null;
  205. }
  206. export interface NewExpression extends BaseNode {
  207. type: "NewExpression";
  208. callee: Expression | Super | V8IntrinsicIdentifier;
  209. arguments: Array<Expression | SpreadElement | ArgumentPlaceholder>;
  210. optional: boolean | null;
  211. typeArguments: TypeParameterInstantiation | null;
  212. typeParameters: TSTypeParameterInstantiation | null;
  213. }
  214. export interface Program extends BaseNode {
  215. type: "Program";
  216. body: Array<Statement>;
  217. directives: Array<Directive>;
  218. sourceType: "script" | "module";
  219. interpreter: InterpreterDirective | null;
  220. }
  221. export interface ObjectExpression extends BaseNode {
  222. type: "ObjectExpression";
  223. properties: Array<ObjectMethod | ObjectProperty | SpreadElement>;
  224. }
  225. export interface ObjectMethod extends BaseNode {
  226. type: "ObjectMethod";
  227. kind: "method" | "get" | "set";
  228. key: Expression | Identifier | StringLiteral | NumericLiteral | BigIntLiteral;
  229. params: Array<Identifier | Pattern | RestElement>;
  230. body: BlockStatement;
  231. computed: boolean;
  232. generator: boolean;
  233. async: boolean;
  234. decorators: Array<Decorator> | null;
  235. returnType: TypeAnnotation | TSTypeAnnotation | Noop | null;
  236. typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null;
  237. }
  238. export interface ObjectProperty extends BaseNode {
  239. type: "ObjectProperty";
  240. key: Expression | Identifier | StringLiteral | NumericLiteral | BigIntLiteral | DecimalLiteral | PrivateName;
  241. value: Expression | PatternLike;
  242. computed: boolean;
  243. shorthand: boolean;
  244. decorators: Array<Decorator> | null;
  245. }
  246. export interface RestElement extends BaseNode {
  247. type: "RestElement";
  248. argument: LVal;
  249. decorators: Array<Decorator> | null;
  250. optional: boolean | null;
  251. typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null;
  252. }
  253. export interface ReturnStatement extends BaseNode {
  254. type: "ReturnStatement";
  255. argument: Expression | null;
  256. }
  257. export interface SequenceExpression extends BaseNode {
  258. type: "SequenceExpression";
  259. expressions: Array<Expression>;
  260. }
  261. export interface ParenthesizedExpression extends BaseNode {
  262. type: "ParenthesizedExpression";
  263. expression: Expression;
  264. }
  265. export interface SwitchCase extends BaseNode {
  266. type: "SwitchCase";
  267. test: Expression | null;
  268. consequent: Array<Statement>;
  269. }
  270. export interface SwitchStatement extends BaseNode {
  271. type: "SwitchStatement";
  272. discriminant: Expression;
  273. cases: Array<SwitchCase>;
  274. }
  275. export interface ThisExpression extends BaseNode {
  276. type: "ThisExpression";
  277. }
  278. export interface ThrowStatement extends BaseNode {
  279. type: "ThrowStatement";
  280. argument: Expression;
  281. }
  282. export interface TryStatement extends BaseNode {
  283. type: "TryStatement";
  284. block: BlockStatement;
  285. handler: CatchClause | null;
  286. finalizer: BlockStatement | null;
  287. }
  288. export interface UnaryExpression extends BaseNode {
  289. type: "UnaryExpression";
  290. operator: "void" | "throw" | "delete" | "!" | "+" | "-" | "~" | "typeof";
  291. argument: Expression;
  292. prefix: boolean;
  293. }
  294. export interface UpdateExpression extends BaseNode {
  295. type: "UpdateExpression";
  296. operator: "++" | "--";
  297. argument: Expression;
  298. prefix: boolean;
  299. }
  300. export interface VariableDeclaration extends BaseNode {
  301. type: "VariableDeclaration";
  302. kind: "var" | "let" | "const" | "using" | "await using";
  303. declarations: Array<VariableDeclarator>;
  304. declare: boolean | null;
  305. }
  306. export interface VariableDeclarator extends BaseNode {
  307. type: "VariableDeclarator";
  308. id: LVal;
  309. init: Expression | null;
  310. definite: boolean | null;
  311. }
  312. export interface WhileStatement extends BaseNode {
  313. type: "WhileStatement";
  314. test: Expression;
  315. body: Statement;
  316. }
  317. export interface WithStatement extends BaseNode {
  318. type: "WithStatement";
  319. object: Expression;
  320. body: Statement;
  321. }
  322. export interface AssignmentPattern extends BaseNode {
  323. type: "AssignmentPattern";
  324. left: Identifier | ObjectPattern | ArrayPattern | MemberExpression | TSAsExpression | TSSatisfiesExpression | TSTypeAssertion | TSNonNullExpression;
  325. right: Expression;
  326. decorators: Array<Decorator> | null;
  327. optional: boolean | null;
  328. typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null;
  329. }
  330. export interface ArrayPattern extends BaseNode {
  331. type: "ArrayPattern";
  332. elements: Array<null | PatternLike | LVal>;
  333. decorators: Array<Decorator> | null;
  334. optional: boolean | null;
  335. typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null;
  336. }
  337. export interface ArrowFunctionExpression extends BaseNode {
  338. type: "ArrowFunctionExpression";
  339. params: Array<Identifier | Pattern | RestElement>;
  340. body: BlockStatement | Expression;
  341. async: boolean;
  342. expression: boolean;
  343. generator: boolean;
  344. predicate: DeclaredPredicate | InferredPredicate | null;
  345. returnType: TypeAnnotation | TSTypeAnnotation | Noop | null;
  346. typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null;
  347. }
  348. export interface ClassBody extends BaseNode {
  349. type: "ClassBody";
  350. body: Array<ClassMethod | ClassPrivateMethod | ClassProperty | ClassPrivateProperty | ClassAccessorProperty | TSDeclareMethod | TSIndexSignature | StaticBlock>;
  351. }
  352. export interface ClassExpression extends BaseNode {
  353. type: "ClassExpression";
  354. id: Identifier | null;
  355. superClass: Expression | null;
  356. body: ClassBody;
  357. decorators: Array<Decorator> | null;
  358. implements: Array<TSExpressionWithTypeArguments | ClassImplements> | null;
  359. mixins: InterfaceExtends | null;
  360. superTypeParameters: TypeParameterInstantiation | TSTypeParameterInstantiation | null;
  361. typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null;
  362. }
  363. export interface ClassDeclaration extends BaseNode {
  364. type: "ClassDeclaration";
  365. id: Identifier | null;
  366. superClass: Expression | null;
  367. body: ClassBody;
  368. decorators: Array<Decorator> | null;
  369. abstract: boolean | null;
  370. declare: boolean | null;
  371. implements: Array<TSExpressionWithTypeArguments | ClassImplements> | null;
  372. mixins: InterfaceExtends | null;
  373. superTypeParameters: TypeParameterInstantiation | TSTypeParameterInstantiation | null;
  374. typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null;
  375. }
  376. export interface ExportAllDeclaration extends BaseNode {
  377. type: "ExportAllDeclaration";
  378. source: StringLiteral;
  379. assertions: Array<ImportAttribute> | null;
  380. attributes: Array<ImportAttribute> | null;
  381. exportKind: "type" | "value" | null;
  382. }
  383. export interface ExportDefaultDeclaration extends BaseNode {
  384. type: "ExportDefaultDeclaration";
  385. declaration: TSDeclareFunction | FunctionDeclaration | ClassDeclaration | Expression;
  386. exportKind: "value" | null;
  387. }
  388. export interface ExportNamedDeclaration extends BaseNode {
  389. type: "ExportNamedDeclaration";
  390. declaration: Declaration | null;
  391. specifiers: Array<ExportSpecifier | ExportDefaultSpecifier | ExportNamespaceSpecifier>;
  392. source: StringLiteral | null;
  393. assertions: Array<ImportAttribute> | null;
  394. attributes: Array<ImportAttribute> | null;
  395. exportKind: "type" | "value" | null;
  396. }
  397. export interface ExportSpecifier extends BaseNode {
  398. type: "ExportSpecifier";
  399. local: Identifier;
  400. exported: Identifier | StringLiteral;
  401. exportKind: "type" | "value" | null;
  402. }
  403. export interface ForOfStatement extends BaseNode {
  404. type: "ForOfStatement";
  405. left: VariableDeclaration | LVal;
  406. right: Expression;
  407. body: Statement;
  408. await: boolean;
  409. }
  410. export interface ImportDeclaration extends BaseNode {
  411. type: "ImportDeclaration";
  412. specifiers: Array<ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier>;
  413. source: StringLiteral;
  414. assertions: Array<ImportAttribute> | null;
  415. attributes: Array<ImportAttribute> | null;
  416. importKind: "type" | "typeof" | "value" | null;
  417. module: boolean | null;
  418. phase: "source" | "defer" | null;
  419. }
  420. export interface ImportDefaultSpecifier extends BaseNode {
  421. type: "ImportDefaultSpecifier";
  422. local: Identifier;
  423. }
  424. export interface ImportNamespaceSpecifier extends BaseNode {
  425. type: "ImportNamespaceSpecifier";
  426. local: Identifier;
  427. }
  428. export interface ImportSpecifier extends BaseNode {
  429. type: "ImportSpecifier";
  430. local: Identifier;
  431. imported: Identifier | StringLiteral;
  432. importKind: "type" | "typeof" | "value" | null;
  433. }
  434. export interface ImportExpression extends BaseNode {
  435. type: "ImportExpression";
  436. source: Expression;
  437. options: Expression | null;
  438. phase: "source" | "defer" | null;
  439. }
  440. export interface MetaProperty extends BaseNode {
  441. type: "MetaProperty";
  442. meta: Identifier;
  443. property: Identifier;
  444. }
  445. export interface ClassMethod extends BaseNode {
  446. type: "ClassMethod";
  447. kind: "get" | "set" | "method" | "constructor";
  448. key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression;
  449. params: Array<Identifier | Pattern | RestElement | TSParameterProperty>;
  450. body: BlockStatement;
  451. computed: boolean;
  452. static: boolean;
  453. generator: boolean;
  454. async: boolean;
  455. abstract: boolean | null;
  456. access: "public" | "private" | "protected" | null;
  457. accessibility: "public" | "private" | "protected" | null;
  458. decorators: Array<Decorator> | null;
  459. optional: boolean | null;
  460. override: boolean;
  461. returnType: TypeAnnotation | TSTypeAnnotation | Noop | null;
  462. typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null;
  463. }
  464. export interface ObjectPattern extends BaseNode {
  465. type: "ObjectPattern";
  466. properties: Array<RestElement | ObjectProperty>;
  467. decorators: Array<Decorator> | null;
  468. optional: boolean | null;
  469. typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null;
  470. }
  471. export interface SpreadElement extends BaseNode {
  472. type: "SpreadElement";
  473. argument: Expression;
  474. }
  475. export interface Super extends BaseNode {
  476. type: "Super";
  477. }
  478. export interface TaggedTemplateExpression extends BaseNode {
  479. type: "TaggedTemplateExpression";
  480. tag: Expression;
  481. quasi: TemplateLiteral;
  482. typeParameters: TypeParameterInstantiation | TSTypeParameterInstantiation | null;
  483. }
  484. export interface TemplateElement extends BaseNode {
  485. type: "TemplateElement";
  486. value: { raw: string, cooked?: string };
  487. tail: boolean;
  488. }
  489. export interface TemplateLiteral extends BaseNode {
  490. type: "TemplateLiteral";
  491. quasis: Array<TemplateElement>;
  492. expressions: Array<Expression | TSType>;
  493. }
  494. export interface YieldExpression extends BaseNode {
  495. type: "YieldExpression";
  496. argument: Expression | null;
  497. delegate: boolean;
  498. }
  499. export interface AwaitExpression extends BaseNode {
  500. type: "AwaitExpression";
  501. argument: Expression;
  502. }
  503. export interface Import extends BaseNode {
  504. type: "Import";
  505. }
  506. export interface BigIntLiteral extends BaseNode {
  507. type: "BigIntLiteral";
  508. value: string;
  509. }
  510. export interface ExportNamespaceSpecifier extends BaseNode {
  511. type: "ExportNamespaceSpecifier";
  512. exported: Identifier;
  513. }
  514. export interface OptionalMemberExpression extends BaseNode {
  515. type: "OptionalMemberExpression";
  516. object: Expression;
  517. property: Expression | Identifier;
  518. computed: boolean;
  519. optional: boolean;
  520. }
  521. export interface OptionalCallExpression extends BaseNode {
  522. type: "OptionalCallExpression";
  523. callee: Expression;
  524. arguments: Array<Expression | SpreadElement | ArgumentPlaceholder>;
  525. optional: boolean;
  526. typeArguments: TypeParameterInstantiation | null;
  527. typeParameters: TSTypeParameterInstantiation | null;
  528. }
  529. export interface ClassProperty extends BaseNode {
  530. type: "ClassProperty";
  531. key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression;
  532. value: Expression | null;
  533. typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null;
  534. decorators: Array<Decorator> | null;
  535. computed: boolean;
  536. static: boolean;
  537. abstract: boolean | null;
  538. accessibility: "public" | "private" | "protected" | null;
  539. declare: boolean | null;
  540. definite: boolean | null;
  541. optional: boolean | null;
  542. override: boolean;
  543. readonly: boolean | null;
  544. variance: Variance | null;
  545. }
  546. export interface ClassAccessorProperty extends BaseNode {
  547. type: "ClassAccessorProperty";
  548. key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression | PrivateName;
  549. value: Expression | null;
  550. typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null;
  551. decorators: Array<Decorator> | null;
  552. computed: boolean;
  553. static: boolean;
  554. abstract: boolean | null;
  555. accessibility: "public" | "private" | "protected" | null;
  556. declare: boolean | null;
  557. definite: boolean | null;
  558. optional: boolean | null;
  559. override: boolean;
  560. readonly: boolean | null;
  561. variance: Variance | null;
  562. }
  563. export interface ClassPrivateProperty extends BaseNode {
  564. type: "ClassPrivateProperty";
  565. key: PrivateName;
  566. value: Expression | null;
  567. decorators: Array<Decorator> | null;
  568. static: boolean;
  569. definite: boolean | null;
  570. optional: boolean | null;
  571. readonly: boolean | null;
  572. typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null;
  573. variance: Variance | null;
  574. }
  575. export interface ClassPrivateMethod extends BaseNode {
  576. type: "ClassPrivateMethod";
  577. kind: "get" | "set" | "method";
  578. key: PrivateName;
  579. params: Array<Identifier | Pattern | RestElement | TSParameterProperty>;
  580. body: BlockStatement;
  581. static: boolean;
  582. abstract: boolean | null;
  583. access: "public" | "private" | "protected" | null;
  584. accessibility: "public" | "private" | "protected" | null;
  585. async: boolean;
  586. computed: boolean;
  587. decorators: Array<Decorator> | null;
  588. generator: boolean;
  589. optional: boolean | null;
  590. override: boolean;
  591. returnType: TypeAnnotation | TSTypeAnnotation | Noop | null;
  592. typeParameters: TypeParameterDeclaration | TSTypeParameterDeclaration | Noop | null;
  593. }
  594. export interface PrivateName extends BaseNode {
  595. type: "PrivateName";
  596. id: Identifier;
  597. }
  598. export interface StaticBlock extends BaseNode {
  599. type: "StaticBlock";
  600. body: Array<Statement>;
  601. }
  602. export interface ImportAttribute extends BaseNode {
  603. type: "ImportAttribute";
  604. key: Identifier | StringLiteral;
  605. value: StringLiteral;
  606. }
  607. export interface AnyTypeAnnotation extends BaseNode {
  608. type: "AnyTypeAnnotation";
  609. }
  610. export interface ArrayTypeAnnotation extends BaseNode {
  611. type: "ArrayTypeAnnotation";
  612. elementType: FlowType;
  613. }
  614. export interface BooleanTypeAnnotation extends BaseNode {
  615. type: "BooleanTypeAnnotation";
  616. }
  617. export interface BooleanLiteralTypeAnnotation extends BaseNode {
  618. type: "BooleanLiteralTypeAnnotation";
  619. value: boolean;
  620. }
  621. export interface NullLiteralTypeAnnotation extends BaseNode {
  622. type: "NullLiteralTypeAnnotation";
  623. }
  624. export interface ClassImplements extends BaseNode {
  625. type: "ClassImplements";
  626. id: Identifier;
  627. typeParameters: TypeParameterInstantiation | null;
  628. }
  629. export interface DeclareClass extends BaseNode {
  630. type: "DeclareClass";
  631. id: Identifier;
  632. typeParameters: TypeParameterDeclaration | null;
  633. extends: Array<InterfaceExtends> | null;
  634. body: ObjectTypeAnnotation;
  635. implements: Array<ClassImplements> | null;
  636. mixins: Array<InterfaceExtends> | null;
  637. }
  638. export interface DeclareFunction extends BaseNode {
  639. type: "DeclareFunction";
  640. id: Identifier;
  641. predicate: DeclaredPredicate | null;
  642. }
  643. export interface DeclareInterface extends BaseNode {
  644. type: "DeclareInterface";
  645. id: Identifier;
  646. typeParameters: TypeParameterDeclaration | null;
  647. extends: Array<InterfaceExtends> | null;
  648. body: ObjectTypeAnnotation;
  649. }
  650. export interface DeclareModule extends BaseNode {
  651. type: "DeclareModule";
  652. id: Identifier | StringLiteral;
  653. body: BlockStatement;
  654. kind: "CommonJS" | "ES" | null;
  655. }
  656. export interface DeclareModuleExports extends BaseNode {
  657. type: "DeclareModuleExports";
  658. typeAnnotation: TypeAnnotation;
  659. }
  660. export interface DeclareTypeAlias extends BaseNode {
  661. type: "DeclareTypeAlias";
  662. id: Identifier;
  663. typeParameters: TypeParameterDeclaration | null;
  664. right: FlowType;
  665. }
  666. export interface DeclareOpaqueType extends BaseNode {
  667. type: "DeclareOpaqueType";
  668. id: Identifier;
  669. typeParameters: TypeParameterDeclaration | null;
  670. supertype: FlowType | null;
  671. impltype: FlowType | null;
  672. }
  673. export interface DeclareVariable extends BaseNode {
  674. type: "DeclareVariable";
  675. id: Identifier;
  676. }
  677. export interface DeclareExportDeclaration extends BaseNode {
  678. type: "DeclareExportDeclaration";
  679. declaration: Flow | null;
  680. specifiers: Array<ExportSpecifier | ExportNamespaceSpecifier> | null;
  681. source: StringLiteral | null;
  682. attributes: Array<ImportAttribute> | null;
  683. assertions: Array<ImportAttribute> | null;
  684. default: boolean | null;
  685. }
  686. export interface DeclareExportAllDeclaration extends BaseNode {
  687. type: "DeclareExportAllDeclaration";
  688. source: StringLiteral;
  689. attributes: Array<ImportAttribute> | null;
  690. assertions: Array<ImportAttribute> | null;
  691. exportKind: "type" | "value" | null;
  692. }
  693. export interface DeclaredPredicate extends BaseNode {
  694. type: "DeclaredPredicate";
  695. value: Flow;
  696. }
  697. export interface ExistsTypeAnnotation extends BaseNode {
  698. type: "ExistsTypeAnnotation";
  699. }
  700. export interface FunctionTypeAnnotation extends BaseNode {
  701. type: "FunctionTypeAnnotation";
  702. typeParameters: TypeParameterDeclaration | null;
  703. params: Array<FunctionTypeParam>;
  704. rest: FunctionTypeParam | null;
  705. returnType: FlowType;
  706. this: FunctionTypeParam | null;
  707. }
  708. export interface FunctionTypeParam extends BaseNode {
  709. type: "FunctionTypeParam";
  710. name: Identifier | null;
  711. typeAnnotation: FlowType;
  712. optional: boolean | null;
  713. }
  714. export interface GenericTypeAnnotation extends BaseNode {
  715. type: "GenericTypeAnnotation";
  716. id: Identifier | QualifiedTypeIdentifier;
  717. typeParameters: TypeParameterInstantiation | null;
  718. }
  719. export interface InferredPredicate extends BaseNode {
  720. type: "InferredPredicate";
  721. }
  722. export interface InterfaceExtends extends BaseNode {
  723. type: "InterfaceExtends";
  724. id: Identifier | QualifiedTypeIdentifier;
  725. typeParameters: TypeParameterInstantiation | null;
  726. }
  727. export interface InterfaceDeclaration extends BaseNode {
  728. type: "InterfaceDeclaration";
  729. id: Identifier;
  730. typeParameters: TypeParameterDeclaration | null;
  731. extends: Array<InterfaceExtends> | null;
  732. body: ObjectTypeAnnotation;
  733. }
  734. export interface InterfaceTypeAnnotation extends BaseNode {
  735. type: "InterfaceTypeAnnotation";
  736. extends: Array<InterfaceExtends> | null;
  737. body: ObjectTypeAnnotation;
  738. }
  739. export interface IntersectionTypeAnnotation extends BaseNode {
  740. type: "IntersectionTypeAnnotation";
  741. types: Array<FlowType>;
  742. }
  743. export interface MixedTypeAnnotation extends BaseNode {
  744. type: "MixedTypeAnnotation";
  745. }
  746. export interface EmptyTypeAnnotation extends BaseNode {
  747. type: "EmptyTypeAnnotation";
  748. }
  749. export interface NullableTypeAnnotation extends BaseNode {
  750. type: "NullableTypeAnnotation";
  751. typeAnnotation: FlowType;
  752. }
  753. export interface NumberLiteralTypeAnnotation extends BaseNode {
  754. type: "NumberLiteralTypeAnnotation";
  755. value: number;
  756. }
  757. export interface NumberTypeAnnotation extends BaseNode {
  758. type: "NumberTypeAnnotation";
  759. }
  760. export interface ObjectTypeAnnotation extends BaseNode {
  761. type: "ObjectTypeAnnotation";
  762. properties: Array<ObjectTypeProperty | ObjectTypeSpreadProperty>;
  763. indexers: Array<ObjectTypeIndexer>;
  764. callProperties: Array<ObjectTypeCallProperty>;
  765. internalSlots: Array<ObjectTypeInternalSlot>;
  766. exact: boolean;
  767. inexact: boolean | null;
  768. }
  769. export interface ObjectTypeInternalSlot extends BaseNode {
  770. type: "ObjectTypeInternalSlot";
  771. id: Identifier;
  772. value: FlowType;
  773. optional: boolean;
  774. static: boolean;
  775. method: boolean;
  776. }
  777. export interface ObjectTypeCallProperty extends BaseNode {
  778. type: "ObjectTypeCallProperty";
  779. value: FlowType;
  780. static: boolean;
  781. }
  782. export interface ObjectTypeIndexer extends BaseNode {
  783. type: "ObjectTypeIndexer";
  784. id: Identifier | null;
  785. key: FlowType;
  786. value: FlowType;
  787. variance: Variance | null;
  788. static: boolean;
  789. }
  790. export interface ObjectTypeProperty extends BaseNode {
  791. type: "ObjectTypeProperty";
  792. key: Identifier | StringLiteral;
  793. value: FlowType;
  794. variance: Variance | null;
  795. kind: "init" | "get" | "set";
  796. method: boolean;
  797. optional: boolean;
  798. proto: boolean;
  799. static: boolean;
  800. }
  801. export interface ObjectTypeSpreadProperty extends BaseNode {
  802. type: "ObjectTypeSpreadProperty";
  803. argument: FlowType;
  804. }
  805. export interface OpaqueType extends BaseNode {
  806. type: "OpaqueType";
  807. id: Identifier;
  808. typeParameters: TypeParameterDeclaration | null;
  809. supertype: FlowType | null;
  810. impltype: FlowType;
  811. }
  812. export interface QualifiedTypeIdentifier extends BaseNode {
  813. type: "QualifiedTypeIdentifier";
  814. id: Identifier;
  815. qualification: Identifier | QualifiedTypeIdentifier;
  816. }
  817. export interface StringLiteralTypeAnnotation extends BaseNode {
  818. type: "StringLiteralTypeAnnotation";
  819. value: string;
  820. }
  821. export interface StringTypeAnnotation extends BaseNode {
  822. type: "StringTypeAnnotation";
  823. }
  824. export interface SymbolTypeAnnotation extends BaseNode {
  825. type: "SymbolTypeAnnotation";
  826. }
  827. export interface ThisTypeAnnotation extends BaseNode {
  828. type: "ThisTypeAnnotation";
  829. }
  830. export interface TupleTypeAnnotation extends BaseNode {
  831. type: "TupleTypeAnnotation";
  832. types: Array<FlowType>;
  833. }
  834. export interface TypeofTypeAnnotation extends BaseNode {
  835. type: "TypeofTypeAnnotation";
  836. argument: FlowType;
  837. }
  838. export interface TypeAlias extends BaseNode {
  839. type: "TypeAlias";
  840. id: Identifier;
  841. typeParameters: TypeParameterDeclaration | null;
  842. right: FlowType;
  843. }
  844. export interface TypeAnnotation extends BaseNode {
  845. type: "TypeAnnotation";
  846. typeAnnotation: FlowType;
  847. }
  848. export interface TypeCastExpression extends BaseNode {
  849. type: "TypeCastExpression";
  850. expression: Expression;
  851. typeAnnotation: TypeAnnotation;
  852. }
  853. export interface TypeParameter extends BaseNode {
  854. type: "TypeParameter";
  855. bound: TypeAnnotation | null;
  856. default: FlowType | null;
  857. variance: Variance | null;
  858. name: string;
  859. }
  860. export interface TypeParameterDeclaration extends BaseNode {
  861. type: "TypeParameterDeclaration";
  862. params: Array<TypeParameter>;
  863. }
  864. export interface TypeParameterInstantiation extends BaseNode {
  865. type: "TypeParameterInstantiation";
  866. params: Array<FlowType>;
  867. }
  868. export interface UnionTypeAnnotation extends BaseNode {
  869. type: "UnionTypeAnnotation";
  870. types: Array<FlowType>;
  871. }
  872. export interface Variance extends BaseNode {
  873. type: "Variance";
  874. kind: "minus" | "plus";
  875. }
  876. export interface VoidTypeAnnotation extends BaseNode {
  877. type: "VoidTypeAnnotation";
  878. }
  879. export interface EnumDeclaration extends BaseNode {
  880. type: "EnumDeclaration";
  881. id: Identifier;
  882. body: EnumBooleanBody | EnumNumberBody | EnumStringBody | EnumSymbolBody;
  883. }
  884. export interface EnumBooleanBody extends BaseNode {
  885. type: "EnumBooleanBody";
  886. members: Array<EnumBooleanMember>;
  887. explicitType: boolean;
  888. hasUnknownMembers: boolean;
  889. }
  890. export interface EnumNumberBody extends BaseNode {
  891. type: "EnumNumberBody";
  892. members: Array<EnumNumberMember>;
  893. explicitType: boolean;
  894. hasUnknownMembers: boolean;
  895. }
  896. export interface EnumStringBody extends BaseNode {
  897. type: "EnumStringBody";
  898. members: Array<EnumStringMember | EnumDefaultedMember>;
  899. explicitType: boolean;
  900. hasUnknownMembers: boolean;
  901. }
  902. export interface EnumSymbolBody extends BaseNode {
  903. type: "EnumSymbolBody";
  904. members: Array<EnumDefaultedMember>;
  905. hasUnknownMembers: boolean;
  906. }
  907. export interface EnumBooleanMember extends BaseNode {
  908. type: "EnumBooleanMember";
  909. id: Identifier;
  910. init: BooleanLiteral;
  911. }
  912. export interface EnumNumberMember extends BaseNode {
  913. type: "EnumNumberMember";
  914. id: Identifier;
  915. init: NumericLiteral;
  916. }
  917. export interface EnumStringMember extends BaseNode {
  918. type: "EnumStringMember";
  919. id: Identifier;
  920. init: StringLiteral;
  921. }
  922. export interface EnumDefaultedMember extends BaseNode {
  923. type: "EnumDefaultedMember";
  924. id: Identifier;
  925. }
  926. export interface IndexedAccessType extends BaseNode {
  927. type: "IndexedAccessType";
  928. objectType: FlowType;
  929. indexType: FlowType;
  930. }
  931. export interface OptionalIndexedAccessType extends BaseNode {
  932. type: "OptionalIndexedAccessType";
  933. objectType: FlowType;
  934. indexType: FlowType;
  935. optional: boolean;
  936. }
  937. export interface JSXAttribute extends BaseNode {
  938. type: "JSXAttribute";
  939. name: JSXIdentifier | JSXNamespacedName;
  940. value: JSXElement | JSXFragment | StringLiteral | JSXExpressionContainer | null;
  941. }
  942. export interface JSXClosingElement extends BaseNode {
  943. type: "JSXClosingElement";
  944. name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName;
  945. }
  946. export interface JSXElement extends BaseNode {
  947. type: "JSXElement";
  948. openingElement: JSXOpeningElement;
  949. closingElement: JSXClosingElement | null;
  950. children: Array<JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment>;
  951. selfClosing: boolean | null;
  952. }
  953. export interface JSXEmptyExpression extends BaseNode {
  954. type: "JSXEmptyExpression";
  955. }
  956. export interface JSXExpressionContainer extends BaseNode {
  957. type: "JSXExpressionContainer";
  958. expression: Expression | JSXEmptyExpression;
  959. }
  960. export interface JSXSpreadChild extends BaseNode {
  961. type: "JSXSpreadChild";
  962. expression: Expression;
  963. }
  964. export interface JSXIdentifier extends BaseNode {
  965. type: "JSXIdentifier";
  966. name: string;
  967. }
  968. export interface JSXMemberExpression extends BaseNode {
  969. type: "JSXMemberExpression";
  970. object: JSXMemberExpression | JSXIdentifier;
  971. property: JSXIdentifier;
  972. }
  973. export interface JSXNamespacedName extends BaseNode {
  974. type: "JSXNamespacedName";
  975. namespace: JSXIdentifier;
  976. name: JSXIdentifier;
  977. }
  978. export interface JSXOpeningElement extends BaseNode {
  979. type: "JSXOpeningElement";
  980. name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName;
  981. attributes: Array<JSXAttribute | JSXSpreadAttribute>;
  982. selfClosing: boolean;
  983. typeArguments: TypeParameterInstantiation | null;
  984. typeParameters: TSTypeParameterInstantiation | null;
  985. }
  986. export interface JSXSpreadAttribute extends BaseNode {
  987. type: "JSXSpreadAttribute";
  988. argument: Expression;
  989. }
  990. export interface JSXText extends BaseNode {
  991. type: "JSXText";
  992. value: string;
  993. }
  994. export interface JSXFragment extends BaseNode {
  995. type: "JSXFragment";
  996. openingFragment: JSXOpeningFragment;
  997. closingFragment: JSXClosingFragment;
  998. children: Array<JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment>;
  999. }
  1000. export interface JSXOpeningFragment extends BaseNode {
  1001. type: "JSXOpeningFragment";
  1002. }
  1003. export interface JSXClosingFragment extends BaseNode {
  1004. type: "JSXClosingFragment";
  1005. }
  1006. export interface Noop extends BaseNode {
  1007. type: "Noop";
  1008. }
  1009. export interface Placeholder extends BaseNode {
  1010. type: "Placeholder";
  1011. expectedNode: "Identifier" | "StringLiteral" | "Expression" | "Statement" | "Declaration" | "BlockStatement" | "ClassBody" | "Pattern";
  1012. name: Identifier;
  1013. decorators: Array<Decorator> | null;
  1014. optional: boolean | null;
  1015. typeAnnotation: TypeAnnotation | TSTypeAnnotation | Noop | null;
  1016. }
  1017. export interface V8IntrinsicIdentifier extends BaseNode {
  1018. type: "V8IntrinsicIdentifier";
  1019. name: string;
  1020. }
  1021. export interface ArgumentPlaceholder extends BaseNode {
  1022. type: "ArgumentPlaceholder";
  1023. }
  1024. export interface BindExpression extends BaseNode {
  1025. type: "BindExpression";
  1026. object: Expression;
  1027. callee: Expression;
  1028. }
  1029. export interface Decorator extends BaseNode {
  1030. type: "Decorator";
  1031. expression: Expression;
  1032. }
  1033. export interface DoExpression extends BaseNode {
  1034. type: "DoExpression";
  1035. body: BlockStatement;
  1036. async: boolean;
  1037. }
  1038. export interface ExportDefaultSpecifier extends BaseNode {
  1039. type: "ExportDefaultSpecifier";
  1040. exported: Identifier;
  1041. }
  1042. export interface RecordExpression extends BaseNode {
  1043. type: "RecordExpression";
  1044. properties: Array<ObjectProperty | SpreadElement>;
  1045. }
  1046. export interface TupleExpression extends BaseNode {
  1047. type: "TupleExpression";
  1048. elements: Array<Expression | SpreadElement>;
  1049. }
  1050. export interface DecimalLiteral extends BaseNode {
  1051. type: "DecimalLiteral";
  1052. value: string;
  1053. }
  1054. export interface ModuleExpression extends BaseNode {
  1055. type: "ModuleExpression";
  1056. body: Program;
  1057. }
  1058. export interface TopicReference extends BaseNode {
  1059. type: "TopicReference";
  1060. }
  1061. export interface PipelineTopicExpression extends BaseNode {
  1062. type: "PipelineTopicExpression";
  1063. expression: Expression;
  1064. }
  1065. export interface PipelineBareFunction extends BaseNode {
  1066. type: "PipelineBareFunction";
  1067. callee: Expression;
  1068. }
  1069. export interface PipelinePrimaryTopicReference extends BaseNode {
  1070. type: "PipelinePrimaryTopicReference";
  1071. }
  1072. export interface TSParameterProperty extends BaseNode {
  1073. type: "TSParameterProperty";
  1074. parameter: Identifier | AssignmentPattern;
  1075. accessibility: "public" | "private" | "protected" | null;
  1076. decorators: Array<Decorator> | null;
  1077. override: boolean | null;
  1078. readonly: boolean | null;
  1079. }
  1080. export interface TSDeclareFunction extends BaseNode {
  1081. type: "TSDeclareFunction";
  1082. id: Identifier | null;
  1083. typeParameters: TSTypeParameterDeclaration | Noop | null;
  1084. params: Array<Identifier | Pattern | RestElement>;
  1085. returnType: TSTypeAnnotation | Noop | null;
  1086. async: boolean;
  1087. declare: boolean | null;
  1088. generator: boolean;
  1089. }
  1090. export interface TSDeclareMethod extends BaseNode {
  1091. type: "TSDeclareMethod";
  1092. decorators: Array<Decorator> | null;
  1093. key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression;
  1094. typeParameters: TSTypeParameterDeclaration | Noop | null;
  1095. params: Array<Identifier | Pattern | RestElement | TSParameterProperty>;
  1096. returnType: TSTypeAnnotation | Noop | null;
  1097. abstract: boolean | null;
  1098. access: "public" | "private" | "protected" | null;
  1099. accessibility: "public" | "private" | "protected" | null;
  1100. async: boolean;
  1101. computed: boolean;
  1102. generator: boolean;
  1103. kind: "get" | "set" | "method" | "constructor";
  1104. optional: boolean | null;
  1105. override: boolean;
  1106. static: boolean;
  1107. }
  1108. export interface TSQualifiedName extends BaseNode {
  1109. type: "TSQualifiedName";
  1110. left: TSEntityName;
  1111. right: Identifier;
  1112. }
  1113. export interface TSCallSignatureDeclaration extends BaseNode {
  1114. type: "TSCallSignatureDeclaration";
  1115. typeParameters: TSTypeParameterDeclaration | null;
  1116. parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>;
  1117. typeAnnotation: TSTypeAnnotation | null;
  1118. }
  1119. export interface TSConstructSignatureDeclaration extends BaseNode {
  1120. type: "TSConstructSignatureDeclaration";
  1121. typeParameters: TSTypeParameterDeclaration | null;
  1122. parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>;
  1123. typeAnnotation: TSTypeAnnotation | null;
  1124. }
  1125. export interface TSPropertySignature extends BaseNode {
  1126. type: "TSPropertySignature";
  1127. key: Expression;
  1128. typeAnnotation: TSTypeAnnotation | null;
  1129. computed: boolean;
  1130. kind: "get" | "set" | null;
  1131. optional: boolean | null;
  1132. readonly: boolean | null;
  1133. }
  1134. export interface TSMethodSignature extends BaseNode {
  1135. type: "TSMethodSignature";
  1136. key: Expression;
  1137. typeParameters: TSTypeParameterDeclaration | null;
  1138. parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>;
  1139. typeAnnotation: TSTypeAnnotation | null;
  1140. computed: boolean;
  1141. kind: "method" | "get" | "set";
  1142. optional: boolean | null;
  1143. }
  1144. export interface TSIndexSignature extends BaseNode {
  1145. type: "TSIndexSignature";
  1146. parameters: Array<Identifier>;
  1147. typeAnnotation: TSTypeAnnotation | null;
  1148. readonly: boolean | null;
  1149. static: boolean | null;
  1150. }
  1151. export interface TSAnyKeyword extends BaseNode {
  1152. type: "TSAnyKeyword";
  1153. }
  1154. export interface TSBooleanKeyword extends BaseNode {
  1155. type: "TSBooleanKeyword";
  1156. }
  1157. export interface TSBigIntKeyword extends BaseNode {
  1158. type: "TSBigIntKeyword";
  1159. }
  1160. export interface TSIntrinsicKeyword extends BaseNode {
  1161. type: "TSIntrinsicKeyword";
  1162. }
  1163. export interface TSNeverKeyword extends BaseNode {
  1164. type: "TSNeverKeyword";
  1165. }
  1166. export interface TSNullKeyword extends BaseNode {
  1167. type: "TSNullKeyword";
  1168. }
  1169. export interface TSNumberKeyword extends BaseNode {
  1170. type: "TSNumberKeyword";
  1171. }
  1172. export interface TSObjectKeyword extends BaseNode {
  1173. type: "TSObjectKeyword";
  1174. }
  1175. export interface TSStringKeyword extends BaseNode {
  1176. type: "TSStringKeyword";
  1177. }
  1178. export interface TSSymbolKeyword extends BaseNode {
  1179. type: "TSSymbolKeyword";
  1180. }
  1181. export interface TSUndefinedKeyword extends BaseNode {
  1182. type: "TSUndefinedKeyword";
  1183. }
  1184. export interface TSUnknownKeyword extends BaseNode {
  1185. type: "TSUnknownKeyword";
  1186. }
  1187. export interface TSVoidKeyword extends BaseNode {
  1188. type: "TSVoidKeyword";
  1189. }
  1190. export interface TSThisType extends BaseNode {
  1191. type: "TSThisType";
  1192. }
  1193. export interface TSFunctionType extends BaseNode {
  1194. type: "TSFunctionType";
  1195. typeParameters: TSTypeParameterDeclaration | null;
  1196. parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>;
  1197. typeAnnotation: TSTypeAnnotation | null;
  1198. }
  1199. export interface TSConstructorType extends BaseNode {
  1200. type: "TSConstructorType";
  1201. typeParameters: TSTypeParameterDeclaration | null;
  1202. parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>;
  1203. typeAnnotation: TSTypeAnnotation | null;
  1204. abstract: boolean | null;
  1205. }
  1206. export interface TSTypeReference extends BaseNode {
  1207. type: "TSTypeReference";
  1208. typeName: TSEntityName;
  1209. typeParameters: TSTypeParameterInstantiation | null;
  1210. }
  1211. export interface TSTypePredicate extends BaseNode {
  1212. type: "TSTypePredicate";
  1213. parameterName: Identifier | TSThisType;
  1214. typeAnnotation: TSTypeAnnotation | null;
  1215. asserts: boolean | null;
  1216. }
  1217. export interface TSTypeQuery extends BaseNode {
  1218. type: "TSTypeQuery";
  1219. exprName: TSEntityName | TSImportType;
  1220. typeParameters: TSTypeParameterInstantiation | null;
  1221. }
  1222. export interface TSTypeLiteral extends BaseNode {
  1223. type: "TSTypeLiteral";
  1224. members: Array<TSTypeElement>;
  1225. }
  1226. export interface TSArrayType extends BaseNode {
  1227. type: "TSArrayType";
  1228. elementType: TSType;
  1229. }
  1230. export interface TSTupleType extends BaseNode {
  1231. type: "TSTupleType";
  1232. elementTypes: Array<TSType | TSNamedTupleMember>;
  1233. }
  1234. export interface TSOptionalType extends BaseNode {
  1235. type: "TSOptionalType";
  1236. typeAnnotation: TSType;
  1237. }
  1238. export interface TSRestType extends BaseNode {
  1239. type: "TSRestType";
  1240. typeAnnotation: TSType;
  1241. }
  1242. export interface TSNamedTupleMember extends BaseNode {
  1243. type: "TSNamedTupleMember";
  1244. label: Identifier;
  1245. elementType: TSType;
  1246. optional: boolean;
  1247. }
  1248. export interface TSUnionType extends BaseNode {
  1249. type: "TSUnionType";
  1250. types: Array<TSType>;
  1251. }
  1252. export interface TSIntersectionType extends BaseNode {
  1253. type: "TSIntersectionType";
  1254. types: Array<TSType>;
  1255. }
  1256. export interface TSConditionalType extends BaseNode {
  1257. type: "TSConditionalType";
  1258. checkType: TSType;
  1259. extendsType: TSType;
  1260. trueType: TSType;
  1261. falseType: TSType;
  1262. }
  1263. export interface TSInferType extends BaseNode {
  1264. type: "TSInferType";
  1265. typeParameter: TSTypeParameter;
  1266. }
  1267. export interface TSParenthesizedType extends BaseNode {
  1268. type: "TSParenthesizedType";
  1269. typeAnnotation: TSType;
  1270. }
  1271. export interface TSTypeOperator extends BaseNode {
  1272. type: "TSTypeOperator";
  1273. typeAnnotation: TSType;
  1274. operator: string;
  1275. }
  1276. export interface TSIndexedAccessType extends BaseNode {
  1277. type: "TSIndexedAccessType";
  1278. objectType: TSType;
  1279. indexType: TSType;
  1280. }
  1281. export interface TSMappedType extends BaseNode {
  1282. type: "TSMappedType";
  1283. typeParameter: TSTypeParameter;
  1284. typeAnnotation: TSType | null;
  1285. nameType: TSType | null;
  1286. optional: true | false | "+" | "-" | null;
  1287. readonly: true | false | "+" | "-" | null;
  1288. }
  1289. export interface TSTemplateLiteralType extends BaseNode {
  1290. type: "TSTemplateLiteralType";
  1291. quasis: Array<TemplateElement>;
  1292. types: Array<TSType>;
  1293. }
  1294. export interface TSLiteralType extends BaseNode {
  1295. type: "TSLiteralType";
  1296. literal: NumericLiteral | StringLiteral | BooleanLiteral | BigIntLiteral | TemplateLiteral | UnaryExpression;
  1297. }
  1298. export interface TSExpressionWithTypeArguments extends BaseNode {
  1299. type: "TSExpressionWithTypeArguments";
  1300. expression: TSEntityName;
  1301. typeParameters: TSTypeParameterInstantiation | null;
  1302. }
  1303. export interface TSInterfaceDeclaration extends BaseNode {
  1304. type: "TSInterfaceDeclaration";
  1305. id: Identifier;
  1306. typeParameters: TSTypeParameterDeclaration | null;
  1307. extends: Array<TSExpressionWithTypeArguments> | null;
  1308. body: TSInterfaceBody;
  1309. declare: boolean | null;
  1310. }
  1311. export interface TSInterfaceBody extends BaseNode {
  1312. type: "TSInterfaceBody";
  1313. body: Array<TSTypeElement>;
  1314. }
  1315. export interface TSTypeAliasDeclaration extends BaseNode {
  1316. type: "TSTypeAliasDeclaration";
  1317. id: Identifier;
  1318. typeParameters: TSTypeParameterDeclaration | null;
  1319. typeAnnotation: TSType;
  1320. declare: boolean | null;
  1321. }
  1322. export interface TSInstantiationExpression extends BaseNode {
  1323. type: "TSInstantiationExpression";
  1324. expression: Expression;
  1325. typeParameters: TSTypeParameterInstantiation | null;
  1326. }
  1327. export interface TSAsExpression extends BaseNode {
  1328. type: "TSAsExpression";
  1329. expression: Expression;
  1330. typeAnnotation: TSType;
  1331. }
  1332. export interface TSSatisfiesExpression extends BaseNode {
  1333. type: "TSSatisfiesExpression";
  1334. expression: Expression;
  1335. typeAnnotation: TSType;
  1336. }
  1337. export interface TSTypeAssertion extends BaseNode {
  1338. type: "TSTypeAssertion";
  1339. typeAnnotation: TSType;
  1340. expression: Expression;
  1341. }
  1342. export interface TSEnumBody extends BaseNode {
  1343. type: "TSEnumBody";
  1344. members: Array<TSEnumMember>;
  1345. }
  1346. export interface TSEnumDeclaration extends BaseNode {
  1347. type: "TSEnumDeclaration";
  1348. id: Identifier;
  1349. members: Array<TSEnumMember>;
  1350. body: TSEnumBody | null;
  1351. const: boolean | null;
  1352. declare: boolean | null;
  1353. initializer: Expression | null;
  1354. }
  1355. export interface TSEnumMember extends BaseNode {
  1356. type: "TSEnumMember";
  1357. id: Identifier | StringLiteral;
  1358. initializer: Expression | null;
  1359. }
  1360. export interface TSModuleDeclaration extends BaseNode {
  1361. type: "TSModuleDeclaration";
  1362. id: Identifier | StringLiteral;
  1363. body: TSModuleBlock | TSModuleDeclaration;
  1364. declare: boolean | null;
  1365. global: boolean | null;
  1366. kind: "global" | "module" | "namespace";
  1367. }
  1368. export interface TSModuleBlock extends BaseNode {
  1369. type: "TSModuleBlock";
  1370. body: Array<Statement>;
  1371. }
  1372. export interface TSImportType extends BaseNode {
  1373. type: "TSImportType";
  1374. argument: StringLiteral;
  1375. qualifier: TSEntityName | null;
  1376. typeParameters: TSTypeParameterInstantiation | null;
  1377. options: ObjectExpression | null;
  1378. }
  1379. export interface TSImportEqualsDeclaration extends BaseNode {
  1380. type: "TSImportEqualsDeclaration";
  1381. id: Identifier;
  1382. moduleReference: TSEntityName | TSExternalModuleReference;
  1383. importKind: "type" | "value" | null;
  1384. isExport: boolean;
  1385. }
  1386. export interface TSExternalModuleReference extends BaseNode {
  1387. type: "TSExternalModuleReference";
  1388. expression: StringLiteral;
  1389. }
  1390. export interface TSNonNullExpression extends BaseNode {
  1391. type: "TSNonNullExpression";
  1392. expression: Expression;
  1393. }
  1394. export interface TSExportAssignment extends BaseNode {
  1395. type: "TSExportAssignment";
  1396. expression: Expression;
  1397. }
  1398. export interface TSNamespaceExportDeclaration extends BaseNode {
  1399. type: "TSNamespaceExportDeclaration";
  1400. id: Identifier;
  1401. }
  1402. export interface TSTypeAnnotation extends BaseNode {
  1403. type: "TSTypeAnnotation";
  1404. typeAnnotation: TSType;
  1405. }
  1406. export interface TSTypeParameterInstantiation extends BaseNode {
  1407. type: "TSTypeParameterInstantiation";
  1408. params: Array<TSType>;
  1409. }
  1410. export interface TSTypeParameterDeclaration extends BaseNode {
  1411. type: "TSTypeParameterDeclaration";
  1412. params: Array<TSTypeParameter>;
  1413. }
  1414. export interface TSTypeParameter extends BaseNode {
  1415. type: "TSTypeParameter";
  1416. constraint: TSType | null;
  1417. default: TSType | null;
  1418. name: string;
  1419. const: boolean | null;
  1420. in: boolean | null;
  1421. out: boolean | null;
  1422. }
  1423. /**
  1424. * @deprecated Use `NumericLiteral`
  1425. */
  1426. export type NumberLiteral = NumericLiteral;
  1427. /**
  1428. * @deprecated Use `RegExpLiteral`
  1429. */
  1430. export type RegexLiteral = RegExpLiteral;
  1431. /**
  1432. * @deprecated Use `RestElement`
  1433. */
  1434. export type RestProperty = RestElement;
  1435. /**
  1436. * @deprecated Use `SpreadElement`
  1437. */
  1438. export type SpreadProperty = SpreadElement;
  1439. export type Standardized = ArrayExpression | AssignmentExpression | BinaryExpression | InterpreterDirective | Directive | DirectiveLiteral | BlockStatement | BreakStatement | CallExpression | CatchClause | ConditionalExpression | ContinueStatement | DebuggerStatement | DoWhileStatement | EmptyStatement | ExpressionStatement | File | ForInStatement | ForStatement | FunctionDeclaration | FunctionExpression | Identifier | IfStatement | LabeledStatement | StringLiteral | NumericLiteral | NullLiteral | BooleanLiteral | RegExpLiteral | LogicalExpression | MemberExpression | NewExpression | Program | ObjectExpression | ObjectMethod | ObjectProperty | RestElement | ReturnStatement | SequenceExpression | ParenthesizedExpression | SwitchCase | SwitchStatement | ThisExpression | ThrowStatement | TryStatement | UnaryExpression | UpdateExpression | VariableDeclaration | VariableDeclarator | WhileStatement | WithStatement | AssignmentPattern | ArrayPattern | ArrowFunctionExpression | ClassBody | ClassExpression | ClassDeclaration | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ExportSpecifier | ForOfStatement | ImportDeclaration | ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier | ImportExpression | MetaProperty | ClassMethod | ObjectPattern | SpreadElement | Super | TaggedTemplateExpression | TemplateElement | TemplateLiteral | YieldExpression | AwaitExpression | Import | BigIntLiteral | ExportNamespaceSpecifier | OptionalMemberExpression | OptionalCallExpression | ClassProperty | ClassAccessorProperty | ClassPrivateProperty | ClassPrivateMethod | PrivateName | StaticBlock | ImportAttribute;
  1440. export type Expression = ArrayExpression | AssignmentExpression | BinaryExpression | CallExpression | ConditionalExpression | FunctionExpression | Identifier | StringLiteral | NumericLiteral | NullLiteral | BooleanLiteral | RegExpLiteral | LogicalExpression | MemberExpression | NewExpression | ObjectExpression | SequenceExpression | ParenthesizedExpression | ThisExpression | UnaryExpression | UpdateExpression | ArrowFunctionExpression | ClassExpression | ImportExpression | MetaProperty | Super | TaggedTemplateExpression | TemplateLiteral | YieldExpression | AwaitExpression | Import | BigIntLiteral | OptionalMemberExpression | OptionalCallExpression | TypeCastExpression | JSXElement | JSXFragment | BindExpression | DoExpression | RecordExpression | TupleExpression | DecimalLiteral | ModuleExpression | TopicReference | PipelineTopicExpression | PipelineBareFunction | PipelinePrimaryTopicReference | TSInstantiationExpression | TSAsExpression | TSSatisfiesExpression | TSTypeAssertion | TSNonNullExpression;
  1441. export type Binary = BinaryExpression | LogicalExpression;
  1442. export type Scopable = BlockStatement | CatchClause | DoWhileStatement | ForInStatement | ForStatement | FunctionDeclaration | FunctionExpression | Program | ObjectMethod | SwitchStatement | WhileStatement | ArrowFunctionExpression | ClassExpression | ClassDeclaration | ForOfStatement | ClassMethod | ClassPrivateMethod | StaticBlock | TSModuleBlock;
  1443. export type BlockParent = BlockStatement | CatchClause | DoWhileStatement | ForInStatement | ForStatement | FunctionDeclaration | FunctionExpression | Program | ObjectMethod | SwitchStatement | WhileStatement | ArrowFunctionExpression | ForOfStatement | ClassMethod | ClassPrivateMethod | StaticBlock | TSModuleBlock;
  1444. export type Block = BlockStatement | Program | TSModuleBlock;
  1445. export type Statement = BlockStatement | BreakStatement | ContinueStatement | DebuggerStatement | DoWhileStatement | EmptyStatement | ExpressionStatement | ForInStatement | ForStatement | FunctionDeclaration | IfStatement | LabeledStatement | ReturnStatement | SwitchStatement | ThrowStatement | TryStatement | VariableDeclaration | WhileStatement | WithStatement | ClassDeclaration | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ForOfStatement | ImportDeclaration | DeclareClass | DeclareFunction | DeclareInterface | DeclareModule | DeclareModuleExports | DeclareTypeAlias | DeclareOpaqueType | DeclareVariable | DeclareExportDeclaration | DeclareExportAllDeclaration | InterfaceDeclaration | OpaqueType | TypeAlias | EnumDeclaration | TSDeclareFunction | TSInterfaceDeclaration | TSTypeAliasDeclaration | TSEnumDeclaration | TSModuleDeclaration | TSImportEqualsDeclaration | TSExportAssignment | TSNamespaceExportDeclaration;
  1446. export type Terminatorless = BreakStatement | ContinueStatement | ReturnStatement | ThrowStatement | YieldExpression | AwaitExpression;
  1447. export type CompletionStatement = BreakStatement | ContinueStatement | ReturnStatement | ThrowStatement;
  1448. export type Conditional = ConditionalExpression | IfStatement;
  1449. export type Loop = DoWhileStatement | ForInStatement | ForStatement | WhileStatement | ForOfStatement;
  1450. export type While = DoWhileStatement | WhileStatement;
  1451. export type ExpressionWrapper = ExpressionStatement | ParenthesizedExpression | TypeCastExpression;
  1452. export type For = ForInStatement | ForStatement | ForOfStatement;
  1453. export type ForXStatement = ForInStatement | ForOfStatement;
  1454. export type Function = FunctionDeclaration | FunctionExpression | ObjectMethod | ArrowFunctionExpression | ClassMethod | ClassPrivateMethod;
  1455. export type FunctionParent = FunctionDeclaration | FunctionExpression | ObjectMethod | ArrowFunctionExpression | ClassMethod | ClassPrivateMethod | StaticBlock | TSModuleBlock;
  1456. export type Pureish = FunctionDeclaration | FunctionExpression | StringLiteral | NumericLiteral | NullLiteral | BooleanLiteral | RegExpLiteral | ArrowFunctionExpression | BigIntLiteral | DecimalLiteral;
  1457. export type Declaration = FunctionDeclaration | VariableDeclaration | ClassDeclaration | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ImportDeclaration | DeclareClass | DeclareFunction | DeclareInterface | DeclareModule | DeclareModuleExports | DeclareTypeAlias | DeclareOpaqueType | DeclareVariable | DeclareExportDeclaration | DeclareExportAllDeclaration | InterfaceDeclaration | OpaqueType | TypeAlias | EnumDeclaration | TSDeclareFunction | TSInterfaceDeclaration | TSTypeAliasDeclaration | TSEnumDeclaration | TSModuleDeclaration | TSImportEqualsDeclaration;
  1458. export type PatternLike = Identifier | RestElement | AssignmentPattern | ArrayPattern | ObjectPattern | TSAsExpression | TSSatisfiesExpression | TSTypeAssertion | TSNonNullExpression;
  1459. export type LVal = Identifier | MemberExpression | RestElement | AssignmentPattern | ArrayPattern | ObjectPattern | TSParameterProperty | TSAsExpression | TSSatisfiesExpression | TSTypeAssertion | TSNonNullExpression;
  1460. export type TSEntityName = Identifier | TSQualifiedName;
  1461. export type Literal = StringLiteral | NumericLiteral | NullLiteral | BooleanLiteral | RegExpLiteral | TemplateLiteral | BigIntLiteral | DecimalLiteral;
  1462. export type Immutable = StringLiteral | NumericLiteral | NullLiteral | BooleanLiteral | BigIntLiteral | JSXAttribute | JSXClosingElement | JSXElement | JSXExpressionContainer | JSXSpreadChild | JSXOpeningElement | JSXText | JSXFragment | JSXOpeningFragment | JSXClosingFragment | DecimalLiteral;
  1463. export type UserWhitespacable = ObjectMethod | ObjectProperty | ObjectTypeInternalSlot | ObjectTypeCallProperty | ObjectTypeIndexer | ObjectTypeProperty | ObjectTypeSpreadProperty;
  1464. export type Method = ObjectMethod | ClassMethod | ClassPrivateMethod;
  1465. export type ObjectMember = ObjectMethod | ObjectProperty;
  1466. export type Property = ObjectProperty | ClassProperty | ClassAccessorProperty | ClassPrivateProperty;
  1467. export type UnaryLike = UnaryExpression | SpreadElement;
  1468. export type Pattern = AssignmentPattern | ArrayPattern | ObjectPattern;
  1469. export type Class = ClassExpression | ClassDeclaration;
  1470. export type ImportOrExportDeclaration = ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ImportDeclaration;
  1471. export type ExportDeclaration = ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration;
  1472. export type ModuleSpecifier = ExportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier | ExportNamespaceSpecifier | ExportDefaultSpecifier;
  1473. export type Accessor = ClassAccessorProperty;
  1474. export type Private = ClassPrivateProperty | ClassPrivateMethod | PrivateName;
  1475. export type Flow = AnyTypeAnnotation | ArrayTypeAnnotation | BooleanTypeAnnotation | BooleanLiteralTypeAnnotation | NullLiteralTypeAnnotation | ClassImplements | DeclareClass | DeclareFunction | DeclareInterface | DeclareModule | DeclareModuleExports | DeclareTypeAlias | DeclareOpaqueType | DeclareVariable | DeclareExportDeclaration | DeclareExportAllDeclaration | DeclaredPredicate | ExistsTypeAnnotation | FunctionTypeAnnotation | FunctionTypeParam | GenericTypeAnnotation | InferredPredicate | InterfaceExtends | InterfaceDeclaration | InterfaceTypeAnnotation | IntersectionTypeAnnotation | MixedTypeAnnotation | EmptyTypeAnnotation | NullableTypeAnnotation | NumberLiteralTypeAnnotation | NumberTypeAnnotation | ObjectTypeAnnotation | ObjectTypeInternalSlot | ObjectTypeCallProperty | ObjectTypeIndexer | ObjectTypeProperty | ObjectTypeSpreadProperty | OpaqueType | QualifiedTypeIdentifier | StringLiteralTypeAnnotation | StringTypeAnnotation | SymbolTypeAnnotation | ThisTypeAnnotation | TupleTypeAnnotation | TypeofTypeAnnotation | TypeAlias | TypeAnnotation | TypeCastExpression | TypeParameter | TypeParameterDeclaration | TypeParameterInstantiation | UnionTypeAnnotation | Variance | VoidTypeAnnotation | EnumDeclaration | EnumBooleanBody | EnumNumberBody | EnumStringBody | EnumSymbolBody | EnumBooleanMember | EnumNumberMember | EnumStringMember | EnumDefaultedMember | IndexedAccessType | OptionalIndexedAccessType;
  1476. export type FlowType = AnyTypeAnnotation | ArrayTypeAnnotation | BooleanTypeAnnotation | BooleanLiteralTypeAnnotation | NullLiteralTypeAnnotation | ExistsTypeAnnotation | FunctionTypeAnnotation | GenericTypeAnnotation | InterfaceTypeAnnotation | IntersectionTypeAnnotation | MixedTypeAnnotation | EmptyTypeAnnotation | NullableTypeAnnotation | NumberLiteralTypeAnnotation | NumberTypeAnnotation | ObjectTypeAnnotation | StringLiteralTypeAnnotation | StringTypeAnnotation | SymbolTypeAnnotation | ThisTypeAnnotation | TupleTypeAnnotation | TypeofTypeAnnotation | UnionTypeAnnotation | VoidTypeAnnotation | IndexedAccessType | OptionalIndexedAccessType;
  1477. export type FlowBaseAnnotation = AnyTypeAnnotation | BooleanTypeAnnotation | NullLiteralTypeAnnotation | MixedTypeAnnotation | EmptyTypeAnnotation | NumberTypeAnnotation | StringTypeAnnotation | SymbolTypeAnnotation | ThisTypeAnnotation | VoidTypeAnnotation;
  1478. export type FlowDeclaration = DeclareClass | DeclareFunction | DeclareInterface | DeclareModule | DeclareModuleExports | DeclareTypeAlias | DeclareOpaqueType | DeclareVariable | DeclareExportDeclaration | DeclareExportAllDeclaration | InterfaceDeclaration | OpaqueType | TypeAlias;
  1479. export type FlowPredicate = DeclaredPredicate | InferredPredicate;
  1480. export type EnumBody = EnumBooleanBody | EnumNumberBody | EnumStringBody | EnumSymbolBody;
  1481. export type EnumMember = EnumBooleanMember | EnumNumberMember | EnumStringMember | EnumDefaultedMember;
  1482. export type JSX = JSXAttribute | JSXClosingElement | JSXElement | JSXEmptyExpression | JSXExpressionContainer | JSXSpreadChild | JSXIdentifier | JSXMemberExpression | JSXNamespacedName | JSXOpeningElement | JSXSpreadAttribute | JSXText | JSXFragment | JSXOpeningFragment | JSXClosingFragment;
  1483. export type Miscellaneous = Noop | Placeholder | V8IntrinsicIdentifier;
  1484. export type TypeScript = TSParameterProperty | TSDeclareFunction | TSDeclareMethod | TSQualifiedName | TSCallSignatureDeclaration | TSConstructSignatureDeclaration | TSPropertySignature | TSMethodSignature | TSIndexSignature | TSAnyKeyword | TSBooleanKeyword | TSBigIntKeyword | TSIntrinsicKeyword | TSNeverKeyword | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSStringKeyword | TSSymbolKeyword | TSUndefinedKeyword | TSUnknownKeyword | TSVoidKeyword | TSThisType | TSFunctionType | TSConstructorType | TSTypeReference | TSTypePredicate | TSTypeQuery | TSTypeLiteral | TSArrayType | TSTupleType | TSOptionalType | TSRestType | TSNamedTupleMember | TSUnionType | TSIntersectionType | TSConditionalType | TSInferType | TSParenthesizedType | TSTypeOperator | TSIndexedAccessType | TSMappedType | TSTemplateLiteralType | TSLiteralType | TSExpressionWithTypeArguments | TSInterfaceDeclaration | TSInterfaceBody | TSTypeAliasDeclaration | TSInstantiationExpression | TSAsExpression | TSSatisfiesExpression | TSTypeAssertion | TSEnumBody | TSEnumDeclaration | TSEnumMember | TSModuleDeclaration | TSModuleBlock | TSImportType | TSImportEqualsDeclaration | TSExternalModuleReference | TSNonNullExpression | TSExportAssignment | TSNamespaceExportDeclaration | TSTypeAnnotation | TSTypeParameterInstantiation | TSTypeParameterDeclaration | TSTypeParameter;
  1485. export type TSTypeElement = TSCallSignatureDeclaration | TSConstructSignatureDeclaration | TSPropertySignature | TSMethodSignature | TSIndexSignature;
  1486. export type TSType = TSAnyKeyword | TSBooleanKeyword | TSBigIntKeyword | TSIntrinsicKeyword | TSNeverKeyword | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSStringKeyword | TSSymbolKeyword | TSUndefinedKeyword | TSUnknownKeyword | TSVoidKeyword | TSThisType | TSFunctionType | TSConstructorType | TSTypeReference | TSTypePredicate | TSTypeQuery | TSTypeLiteral | TSArrayType | TSTupleType | TSOptionalType | TSRestType | TSUnionType | TSIntersectionType | TSConditionalType | TSInferType | TSParenthesizedType | TSTypeOperator | TSIndexedAccessType | TSMappedType | TSTemplateLiteralType | TSLiteralType | TSExpressionWithTypeArguments | TSImportType;
  1487. export type TSBaseType = TSAnyKeyword | TSBooleanKeyword | TSBigIntKeyword | TSIntrinsicKeyword | TSNeverKeyword | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSStringKeyword | TSSymbolKeyword | TSUndefinedKeyword | TSUnknownKeyword | TSVoidKeyword | TSThisType | TSTemplateLiteralType | TSLiteralType;
  1488. export type ModuleDeclaration = ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ImportDeclaration;
  1489. export interface Aliases {
  1490. Standardized: Standardized;
  1491. Expression: Expression;
  1492. Binary: Binary;
  1493. Scopable: Scopable;
  1494. BlockParent: BlockParent;
  1495. Block: Block;
  1496. Statement: Statement;
  1497. Terminatorless: Terminatorless;
  1498. CompletionStatement: CompletionStatement;
  1499. Conditional: Conditional;
  1500. Loop: Loop;
  1501. While: While;
  1502. ExpressionWrapper: ExpressionWrapper;
  1503. For: For;
  1504. ForXStatement: ForXStatement;
  1505. Function: Function;
  1506. FunctionParent: FunctionParent;
  1507. Pureish: Pureish;
  1508. Declaration: Declaration;
  1509. PatternLike: PatternLike;
  1510. LVal: LVal;
  1511. TSEntityName: TSEntityName;
  1512. Literal: Literal;
  1513. Immutable: Immutable;
  1514. UserWhitespacable: UserWhitespacable;
  1515. Method: Method;
  1516. ObjectMember: ObjectMember;
  1517. Property: Property;
  1518. UnaryLike: UnaryLike;
  1519. Pattern: Pattern;
  1520. Class: Class;
  1521. ImportOrExportDeclaration: ImportOrExportDeclaration;
  1522. ExportDeclaration: ExportDeclaration;
  1523. ModuleSpecifier: ModuleSpecifier;
  1524. Accessor: Accessor;
  1525. Private: Private;
  1526. Flow: Flow;
  1527. FlowType: FlowType;
  1528. FlowBaseAnnotation: FlowBaseAnnotation;
  1529. FlowDeclaration: FlowDeclaration;
  1530. FlowPredicate: FlowPredicate;
  1531. EnumBody: EnumBody;
  1532. EnumMember: EnumMember;
  1533. JSX: JSX;
  1534. Miscellaneous: Miscellaneous;
  1535. TypeScript: TypeScript;
  1536. TSTypeElement: TSTypeElement;
  1537. TSType: TSType;
  1538. TSBaseType: TSBaseType;
  1539. ModuleDeclaration: ModuleDeclaration;
  1540. }
  1541. export function arrayExpression(elements?: Array<null | Expression | SpreadElement>): ArrayExpression;
  1542. export function assignmentExpression(operator: string, left: LVal | OptionalMemberExpression, right: Expression): AssignmentExpression;
  1543. export function binaryExpression(operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<=" | "|>", left: Expression | PrivateName, right: Expression): BinaryExpression;
  1544. export function interpreterDirective(value: string): InterpreterDirective;
  1545. export function directive(value: DirectiveLiteral): Directive;
  1546. export function directiveLiteral(value: string): DirectiveLiteral;
  1547. export function blockStatement(body: Array<Statement>, directives?: Array<Directive>): BlockStatement;
  1548. export function breakStatement(label?: Identifier | null): BreakStatement;
  1549. export function callExpression(callee: Expression | Super | V8IntrinsicIdentifier, _arguments: Array<Expression | SpreadElement | ArgumentPlaceholder>): CallExpression;
  1550. export function catchClause(param: Identifier | ArrayPattern | ObjectPattern | null | undefined, body: BlockStatement): CatchClause;
  1551. export function conditionalExpression(test: Expression, consequent: Expression, alternate: Expression): ConditionalExpression;
  1552. export function continueStatement(label?: Identifier | null): ContinueStatement;
  1553. export function debuggerStatement(): DebuggerStatement;
  1554. export function doWhileStatement(test: Expression, body: Statement): DoWhileStatement;
  1555. export function emptyStatement(): EmptyStatement;
  1556. export function expressionStatement(expression: Expression): ExpressionStatement;
  1557. export function file(program: Program, comments?: Array<CommentBlock | CommentLine> | null, tokens?: Array<any> | null): File;
  1558. export function forInStatement(left: VariableDeclaration | LVal, right: Expression, body: Statement): ForInStatement;
  1559. export function forStatement(init: VariableDeclaration | Expression | null | undefined, test: Expression | null | undefined, update: Expression | null | undefined, body: Statement): ForStatement;
  1560. export function functionDeclaration(id: Identifier | null | undefined, params: Array<Identifier | Pattern | RestElement>, body: BlockStatement, generator?: boolean, async?: boolean): FunctionDeclaration;
  1561. export function functionExpression(id: Identifier | null | undefined, params: Array<Identifier | Pattern | RestElement>, body: BlockStatement, generator?: boolean, async?: boolean): FunctionExpression;
  1562. export function identifier(name: string): Identifier;
  1563. export function ifStatement(test: Expression, consequent: Statement, alternate?: Statement | null): IfStatement;
  1564. export function labeledStatement(label: Identifier, body: Statement): LabeledStatement;
  1565. export function stringLiteral(value: string): StringLiteral;
  1566. export function numericLiteral(value: number): NumericLiteral;
  1567. export function nullLiteral(): NullLiteral;
  1568. export function booleanLiteral(value: boolean): BooleanLiteral;
  1569. export function regExpLiteral(pattern: string, flags?: string): RegExpLiteral;
  1570. export function logicalExpression(operator: "||" | "&&" | "??", left: Expression, right: Expression): LogicalExpression;
  1571. export function memberExpression(object: Expression | Super, property: Expression | Identifier | PrivateName, computed?: boolean, optional?: boolean | null): MemberExpression;
  1572. export function newExpression(callee: Expression | Super | V8IntrinsicIdentifier, _arguments: Array<Expression | SpreadElement | ArgumentPlaceholder>): NewExpression;
  1573. export function program(body: Array<Statement>, directives?: Array<Directive>, sourceType?: "script" | "module", interpreter?: InterpreterDirective | null): Program;
  1574. export function objectExpression(properties: Array<ObjectMethod | ObjectProperty | SpreadElement>): ObjectExpression;
  1575. export function objectMethod(kind: "method" | "get" | "set" | undefined, key: Expression | Identifier | StringLiteral | NumericLiteral | BigIntLiteral, params: Array<Identifier | Pattern | RestElement>, body: BlockStatement, computed?: boolean, generator?: boolean, async?: boolean): ObjectMethod;
  1576. export function objectProperty(key: Expression | Identifier | StringLiteral | NumericLiteral | BigIntLiteral | DecimalLiteral | PrivateName, value: Expression | PatternLike, computed?: boolean, shorthand?: boolean, decorators?: Array<Decorator> | null): ObjectProperty;
  1577. export function restElement(argument: LVal): RestElement;
  1578. export function returnStatement(argument?: Expression | null): ReturnStatement;
  1579. export function sequenceExpression(expressions: Array<Expression>): SequenceExpression;
  1580. export function parenthesizedExpression(expression: Expression): ParenthesizedExpression;
  1581. export function switchCase(test: Expression | null | undefined, consequent: Array<Statement>): SwitchCase;
  1582. export function switchStatement(discriminant: Expression, cases: Array<SwitchCase>): SwitchStatement;
  1583. export function thisExpression(): ThisExpression;
  1584. export function throwStatement(argument: Expression): ThrowStatement;
  1585. export function tryStatement(block: BlockStatement, handler?: CatchClause | null, finalizer?: BlockStatement | null): TryStatement;
  1586. export function unaryExpression(operator: "void" | "throw" | "delete" | "!" | "+" | "-" | "~" | "typeof", argument: Expression, prefix?: boolean): UnaryExpression;
  1587. export function updateExpression(operator: "++" | "--", argument: Expression, prefix?: boolean): UpdateExpression;
  1588. export function variableDeclaration(kind: "var" | "let" | "const" | "using" | "await using", declarations: Array<VariableDeclarator>): VariableDeclaration;
  1589. export function variableDeclarator(id: LVal, init?: Expression | null): VariableDeclarator;
  1590. export function whileStatement(test: Expression, body: Statement): WhileStatement;
  1591. export function withStatement(object: Expression, body: Statement): WithStatement;
  1592. export function assignmentPattern(left: Identifier | ObjectPattern | ArrayPattern | MemberExpression | TSAsExpression | TSSatisfiesExpression | TSTypeAssertion | TSNonNullExpression, right: Expression): AssignmentPattern;
  1593. export function arrayPattern(elements: Array<null | PatternLike | LVal>): ArrayPattern;
  1594. export function arrowFunctionExpression(params: Array<Identifier | Pattern | RestElement>, body: BlockStatement | Expression, async?: boolean): ArrowFunctionExpression;
  1595. export function classBody(body: Array<ClassMethod | ClassPrivateMethod | ClassProperty | ClassPrivateProperty | ClassAccessorProperty | TSDeclareMethod | TSIndexSignature | StaticBlock>): ClassBody;
  1596. export function classExpression(id: Identifier | null | undefined, superClass: Expression | null | undefined, body: ClassBody, decorators?: Array<Decorator> | null): ClassExpression;
  1597. export function classDeclaration(id: Identifier | null | undefined, superClass: Expression | null | undefined, body: ClassBody, decorators?: Array<Decorator> | null): ClassDeclaration;
  1598. export function exportAllDeclaration(source: StringLiteral): ExportAllDeclaration;
  1599. export function exportDefaultDeclaration(declaration: TSDeclareFunction | FunctionDeclaration | ClassDeclaration | Expression): ExportDefaultDeclaration;
  1600. export function exportNamedDeclaration(declaration?: Declaration | null, specifiers?: Array<ExportSpecifier | ExportDefaultSpecifier | ExportNamespaceSpecifier>, source?: StringLiteral | null): ExportNamedDeclaration;
  1601. export function exportSpecifier(local: Identifier, exported: Identifier | StringLiteral): ExportSpecifier;
  1602. export function forOfStatement(left: VariableDeclaration | LVal, right: Expression, body: Statement, _await?: boolean): ForOfStatement;
  1603. export function importDeclaration(specifiers: Array<ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier>, source: StringLiteral): ImportDeclaration;
  1604. export function importDefaultSpecifier(local: Identifier): ImportDefaultSpecifier;
  1605. export function importNamespaceSpecifier(local: Identifier): ImportNamespaceSpecifier;
  1606. export function importSpecifier(local: Identifier, imported: Identifier | StringLiteral): ImportSpecifier;
  1607. export function importExpression(source: Expression, options?: Expression | null): ImportExpression;
  1608. export function metaProperty(meta: Identifier, property: Identifier): MetaProperty;
  1609. export function classMethod(kind: "get" | "set" | "method" | "constructor" | undefined, key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression, params: Array<Identifier | Pattern | RestElement | TSParameterProperty>, body: BlockStatement, computed?: boolean, _static?: boolean, generator?: boolean, async?: boolean): ClassMethod;
  1610. export function objectPattern(properties: Array<RestElement | ObjectProperty>): ObjectPattern;
  1611. export function spreadElement(argument: Expression): SpreadElement;
  1612. declare function _super(): Super;
  1613. export { _super as super}
  1614. export function taggedTemplateExpression(tag: Expression, quasi: TemplateLiteral): TaggedTemplateExpression;
  1615. export function templateElement(value: { raw: string, cooked?: string }, tail?: boolean): TemplateElement;
  1616. export function templateLiteral(quasis: Array<TemplateElement>, expressions: Array<Expression | TSType>): TemplateLiteral;
  1617. export function yieldExpression(argument?: Expression | null, delegate?: boolean): YieldExpression;
  1618. export function awaitExpression(argument: Expression): AwaitExpression;
  1619. declare function _import(): Import;
  1620. export { _import as import}
  1621. export function bigIntLiteral(value: string): BigIntLiteral;
  1622. export function exportNamespaceSpecifier(exported: Identifier): ExportNamespaceSpecifier;
  1623. export function optionalMemberExpression(object: Expression, property: Expression | Identifier, computed: boolean | undefined, optional: boolean): OptionalMemberExpression;
  1624. export function optionalCallExpression(callee: Expression, _arguments: Array<Expression | SpreadElement | ArgumentPlaceholder>, optional: boolean): OptionalCallExpression;
  1625. export function classProperty(key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression, value?: Expression | null, typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null, decorators?: Array<Decorator> | null, computed?: boolean, _static?: boolean): ClassProperty;
  1626. export function classAccessorProperty(key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression | PrivateName, value?: Expression | null, typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null, decorators?: Array<Decorator> | null, computed?: boolean, _static?: boolean): ClassAccessorProperty;
  1627. export function classPrivateProperty(key: PrivateName, value?: Expression | null, decorators?: Array<Decorator> | null, _static?: boolean): ClassPrivateProperty;
  1628. export function classPrivateMethod(kind: "get" | "set" | "method" | undefined, key: PrivateName, params: Array<Identifier | Pattern | RestElement | TSParameterProperty>, body: BlockStatement, _static?: boolean): ClassPrivateMethod;
  1629. export function privateName(id: Identifier): PrivateName;
  1630. export function staticBlock(body: Array<Statement>): StaticBlock;
  1631. export function importAttribute(key: Identifier | StringLiteral, value: StringLiteral): ImportAttribute;
  1632. export function anyTypeAnnotation(): AnyTypeAnnotation;
  1633. export function arrayTypeAnnotation(elementType: FlowType): ArrayTypeAnnotation;
  1634. export function booleanTypeAnnotation(): BooleanTypeAnnotation;
  1635. export function booleanLiteralTypeAnnotation(value: boolean): BooleanLiteralTypeAnnotation;
  1636. export function nullLiteralTypeAnnotation(): NullLiteralTypeAnnotation;
  1637. export function classImplements(id: Identifier, typeParameters?: TypeParameterInstantiation | null): ClassImplements;
  1638. export function declareClass(id: Identifier, typeParameters: TypeParameterDeclaration | null | undefined, _extends: Array<InterfaceExtends> | null | undefined, body: ObjectTypeAnnotation): DeclareClass;
  1639. export function declareFunction(id: Identifier): DeclareFunction;
  1640. export function declareInterface(id: Identifier, typeParameters: TypeParameterDeclaration | null | undefined, _extends: Array<InterfaceExtends> | null | undefined, body: ObjectTypeAnnotation): DeclareInterface;
  1641. export function declareModule(id: Identifier | StringLiteral, body: BlockStatement, kind?: "CommonJS" | "ES" | null): DeclareModule;
  1642. export function declareModuleExports(typeAnnotation: TypeAnnotation): DeclareModuleExports;
  1643. export function declareTypeAlias(id: Identifier, typeParameters: TypeParameterDeclaration | null | undefined, right: FlowType): DeclareTypeAlias;
  1644. export function declareOpaqueType(id: Identifier, typeParameters?: TypeParameterDeclaration | null, supertype?: FlowType | null): DeclareOpaqueType;
  1645. export function declareVariable(id: Identifier): DeclareVariable;
  1646. export function declareExportDeclaration(declaration?: Flow | null, specifiers?: Array<ExportSpecifier | ExportNamespaceSpecifier> | null, source?: StringLiteral | null, attributes?: Array<ImportAttribute> | null): DeclareExportDeclaration;
  1647. export function declareExportAllDeclaration(source: StringLiteral, attributes?: Array<ImportAttribute> | null): DeclareExportAllDeclaration;
  1648. export function declaredPredicate(value: Flow): DeclaredPredicate;
  1649. export function existsTypeAnnotation(): ExistsTypeAnnotation;
  1650. export function functionTypeAnnotation(typeParameters: TypeParameterDeclaration | null | undefined, params: Array<FunctionTypeParam>, rest: FunctionTypeParam | null | undefined, returnType: FlowType): FunctionTypeAnnotation;
  1651. export function functionTypeParam(name: Identifier | null | undefined, typeAnnotation: FlowType): FunctionTypeParam;
  1652. export function genericTypeAnnotation(id: Identifier | QualifiedTypeIdentifier, typeParameters?: TypeParameterInstantiation | null): GenericTypeAnnotation;
  1653. export function inferredPredicate(): InferredPredicate;
  1654. export function interfaceExtends(id: Identifier | QualifiedTypeIdentifier, typeParameters?: TypeParameterInstantiation | null): InterfaceExtends;
  1655. export function interfaceDeclaration(id: Identifier, typeParameters: TypeParameterDeclaration | null | undefined, _extends: Array<InterfaceExtends> | null | undefined, body: ObjectTypeAnnotation): InterfaceDeclaration;
  1656. export function interfaceTypeAnnotation(_extends: Array<InterfaceExtends> | null | undefined, body: ObjectTypeAnnotation): InterfaceTypeAnnotation;
  1657. export function intersectionTypeAnnotation(types: Array<FlowType>): IntersectionTypeAnnotation;
  1658. export function mixedTypeAnnotation(): MixedTypeAnnotation;
  1659. export function emptyTypeAnnotation(): EmptyTypeAnnotation;
  1660. export function nullableTypeAnnotation(typeAnnotation: FlowType): NullableTypeAnnotation;
  1661. export function numberLiteralTypeAnnotation(value: number): NumberLiteralTypeAnnotation;
  1662. export function numberTypeAnnotation(): NumberTypeAnnotation;
  1663. export function objectTypeAnnotation(properties: Array<ObjectTypeProperty | ObjectTypeSpreadProperty>, indexers?: Array<ObjectTypeIndexer>, callProperties?: Array<ObjectTypeCallProperty>, internalSlots?: Array<ObjectTypeInternalSlot>, exact?: boolean): ObjectTypeAnnotation;
  1664. export function objectTypeInternalSlot(id: Identifier, value: FlowType, optional: boolean, _static: boolean, method: boolean): ObjectTypeInternalSlot;
  1665. export function objectTypeCallProperty(value: FlowType): ObjectTypeCallProperty;
  1666. export function objectTypeIndexer(id: Identifier | null | undefined, key: FlowType, value: FlowType, variance?: Variance | null): ObjectTypeIndexer;
  1667. export function objectTypeProperty(key: Identifier | StringLiteral, value: FlowType, variance?: Variance | null): ObjectTypeProperty;
  1668. export function objectTypeSpreadProperty(argument: FlowType): ObjectTypeSpreadProperty;
  1669. export function opaqueType(id: Identifier, typeParameters: TypeParameterDeclaration | null | undefined, supertype: FlowType | null | undefined, impltype: FlowType): OpaqueType;
  1670. export function qualifiedTypeIdentifier(id: Identifier, qualification: Identifier | QualifiedTypeIdentifier): QualifiedTypeIdentifier;
  1671. export function stringLiteralTypeAnnotation(value: string): StringLiteralTypeAnnotation;
  1672. export function stringTypeAnnotation(): StringTypeAnnotation;
  1673. export function symbolTypeAnnotation(): SymbolTypeAnnotation;
  1674. export function thisTypeAnnotation(): ThisTypeAnnotation;
  1675. export function tupleTypeAnnotation(types: Array<FlowType>): TupleTypeAnnotation;
  1676. export function typeofTypeAnnotation(argument: FlowType): TypeofTypeAnnotation;
  1677. export function typeAlias(id: Identifier, typeParameters: TypeParameterDeclaration | null | undefined, right: FlowType): TypeAlias;
  1678. export function typeAnnotation(typeAnnotation: FlowType): TypeAnnotation;
  1679. export function typeCastExpression(expression: Expression, typeAnnotation: TypeAnnotation): TypeCastExpression;
  1680. export function typeParameter(bound?: TypeAnnotation | null, _default?: FlowType | null, variance?: Variance | null): TypeParameter;
  1681. export function typeParameterDeclaration(params: Array<TypeParameter>): TypeParameterDeclaration;
  1682. export function typeParameterInstantiation(params: Array<FlowType>): TypeParameterInstantiation;
  1683. export function unionTypeAnnotation(types: Array<FlowType>): UnionTypeAnnotation;
  1684. export function variance(kind: "minus" | "plus"): Variance;
  1685. export function voidTypeAnnotation(): VoidTypeAnnotation;
  1686. export function enumDeclaration(id: Identifier, body: EnumBooleanBody | EnumNumberBody | EnumStringBody | EnumSymbolBody): EnumDeclaration;
  1687. export function enumBooleanBody(members: Array<EnumBooleanMember>): EnumBooleanBody;
  1688. export function enumNumberBody(members: Array<EnumNumberMember>): EnumNumberBody;
  1689. export function enumStringBody(members: Array<EnumStringMember | EnumDefaultedMember>): EnumStringBody;
  1690. export function enumSymbolBody(members: Array<EnumDefaultedMember>): EnumSymbolBody;
  1691. export function enumBooleanMember(id: Identifier): EnumBooleanMember;
  1692. export function enumNumberMember(id: Identifier, init: NumericLiteral): EnumNumberMember;
  1693. export function enumStringMember(id: Identifier, init: StringLiteral): EnumStringMember;
  1694. export function enumDefaultedMember(id: Identifier): EnumDefaultedMember;
  1695. export function indexedAccessType(objectType: FlowType, indexType: FlowType): IndexedAccessType;
  1696. export function optionalIndexedAccessType(objectType: FlowType, indexType: FlowType): OptionalIndexedAccessType;
  1697. export function jsxAttribute(name: JSXIdentifier | JSXNamespacedName, value?: JSXElement | JSXFragment | StringLiteral | JSXExpressionContainer | null): JSXAttribute;
  1698. export function jsxClosingElement(name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName): JSXClosingElement;
  1699. export function jsxElement(openingElement: JSXOpeningElement, closingElement: JSXClosingElement | null | undefined, children: Array<JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment>, selfClosing?: boolean | null): JSXElement;
  1700. export function jsxEmptyExpression(): JSXEmptyExpression;
  1701. export function jsxExpressionContainer(expression: Expression | JSXEmptyExpression): JSXExpressionContainer;
  1702. export function jsxSpreadChild(expression: Expression): JSXSpreadChild;
  1703. export function jsxIdentifier(name: string): JSXIdentifier;
  1704. export function jsxMemberExpression(object: JSXMemberExpression | JSXIdentifier, property: JSXIdentifier): JSXMemberExpression;
  1705. export function jsxNamespacedName(namespace: JSXIdentifier, name: JSXIdentifier): JSXNamespacedName;
  1706. export function jsxOpeningElement(name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName, attributes: Array<JSXAttribute | JSXSpreadAttribute>, selfClosing?: boolean): JSXOpeningElement;
  1707. export function jsxSpreadAttribute(argument: Expression): JSXSpreadAttribute;
  1708. export function jsxText(value: string): JSXText;
  1709. export function jsxFragment(openingFragment: JSXOpeningFragment, closingFragment: JSXClosingFragment, children: Array<JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment>): JSXFragment;
  1710. export function jsxOpeningFragment(): JSXOpeningFragment;
  1711. export function jsxClosingFragment(): JSXClosingFragment;
  1712. export function noop(): Noop;
  1713. export function placeholder(expectedNode: "Identifier" | "StringLiteral" | "Expression" | "Statement" | "Declaration" | "BlockStatement" | "ClassBody" | "Pattern", name: Identifier): Placeholder;
  1714. export function v8IntrinsicIdentifier(name: string): V8IntrinsicIdentifier;
  1715. export function argumentPlaceholder(): ArgumentPlaceholder;
  1716. export function bindExpression(object: Expression, callee: Expression): BindExpression;
  1717. export function decorator(expression: Expression): Decorator;
  1718. export function doExpression(body: BlockStatement, async?: boolean): DoExpression;
  1719. export function exportDefaultSpecifier(exported: Identifier): ExportDefaultSpecifier;
  1720. export function recordExpression(properties: Array<ObjectProperty | SpreadElement>): RecordExpression;
  1721. export function tupleExpression(elements?: Array<Expression | SpreadElement>): TupleExpression;
  1722. export function decimalLiteral(value: string): DecimalLiteral;
  1723. export function moduleExpression(body: Program): ModuleExpression;
  1724. export function topicReference(): TopicReference;
  1725. export function pipelineTopicExpression(expression: Expression): PipelineTopicExpression;
  1726. export function pipelineBareFunction(callee: Expression): PipelineBareFunction;
  1727. export function pipelinePrimaryTopicReference(): PipelinePrimaryTopicReference;
  1728. export function tsParameterProperty(parameter: Identifier | AssignmentPattern): TSParameterProperty;
  1729. export function tsDeclareFunction(id: Identifier | null | undefined, typeParameters: TSTypeParameterDeclaration | Noop | null | undefined, params: Array<Identifier | Pattern | RestElement>, returnType?: TSTypeAnnotation | Noop | null): TSDeclareFunction;
  1730. export function tsDeclareMethod(decorators: Array<Decorator> | null | undefined, key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression, typeParameters: TSTypeParameterDeclaration | Noop | null | undefined, params: Array<Identifier | Pattern | RestElement | TSParameterProperty>, returnType?: TSTypeAnnotation | Noop | null): TSDeclareMethod;
  1731. export function tsQualifiedName(left: TSEntityName, right: Identifier): TSQualifiedName;
  1732. export function tsCallSignatureDeclaration(typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>, typeAnnotation?: TSTypeAnnotation | null): TSCallSignatureDeclaration;
  1733. export function tsConstructSignatureDeclaration(typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>, typeAnnotation?: TSTypeAnnotation | null): TSConstructSignatureDeclaration;
  1734. export function tsPropertySignature(key: Expression, typeAnnotation?: TSTypeAnnotation | null): TSPropertySignature;
  1735. export function tsMethodSignature(key: Expression, typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>, typeAnnotation?: TSTypeAnnotation | null): TSMethodSignature;
  1736. export function tsIndexSignature(parameters: Array<Identifier>, typeAnnotation?: TSTypeAnnotation | null): TSIndexSignature;
  1737. export function tsAnyKeyword(): TSAnyKeyword;
  1738. export function tsBooleanKeyword(): TSBooleanKeyword;
  1739. export function tsBigIntKeyword(): TSBigIntKeyword;
  1740. export function tsIntrinsicKeyword(): TSIntrinsicKeyword;
  1741. export function tsNeverKeyword(): TSNeverKeyword;
  1742. export function tsNullKeyword(): TSNullKeyword;
  1743. export function tsNumberKeyword(): TSNumberKeyword;
  1744. export function tsObjectKeyword(): TSObjectKeyword;
  1745. export function tsStringKeyword(): TSStringKeyword;
  1746. export function tsSymbolKeyword(): TSSymbolKeyword;
  1747. export function tsUndefinedKeyword(): TSUndefinedKeyword;
  1748. export function tsUnknownKeyword(): TSUnknownKeyword;
  1749. export function tsVoidKeyword(): TSVoidKeyword;
  1750. export function tsThisType(): TSThisType;
  1751. export function tsFunctionType(typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>, typeAnnotation?: TSTypeAnnotation | null): TSFunctionType;
  1752. export function tsConstructorType(typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>, typeAnnotation?: TSTypeAnnotation | null): TSConstructorType;
  1753. export function tsTypeReference(typeName: TSEntityName, typeParameters?: TSTypeParameterInstantiation | null): TSTypeReference;
  1754. export function tsTypePredicate(parameterName: Identifier | TSThisType, typeAnnotation?: TSTypeAnnotation | null, asserts?: boolean | null): TSTypePredicate;
  1755. export function tsTypeQuery(exprName: TSEntityName | TSImportType, typeParameters?: TSTypeParameterInstantiation | null): TSTypeQuery;
  1756. export function tsTypeLiteral(members: Array<TSTypeElement>): TSTypeLiteral;
  1757. export function tsArrayType(elementType: TSType): TSArrayType;
  1758. export function tsTupleType(elementTypes: Array<TSType | TSNamedTupleMember>): TSTupleType;
  1759. export function tsOptionalType(typeAnnotation: TSType): TSOptionalType;
  1760. export function tsRestType(typeAnnotation: TSType): TSRestType;
  1761. export function tsNamedTupleMember(label: Identifier, elementType: TSType, optional?: boolean): TSNamedTupleMember;
  1762. export function tsUnionType(types: Array<TSType>): TSUnionType;
  1763. export function tsIntersectionType(types: Array<TSType>): TSIntersectionType;
  1764. export function tsConditionalType(checkType: TSType, extendsType: TSType, trueType: TSType, falseType: TSType): TSConditionalType;
  1765. export function tsInferType(typeParameter: TSTypeParameter): TSInferType;
  1766. export function tsParenthesizedType(typeAnnotation: TSType): TSParenthesizedType;
  1767. export function tsTypeOperator(typeAnnotation: TSType): TSTypeOperator;
  1768. export function tsIndexedAccessType(objectType: TSType, indexType: TSType): TSIndexedAccessType;
  1769. export function tsMappedType(typeParameter: TSTypeParameter, typeAnnotation?: TSType | null, nameType?: TSType | null): TSMappedType;
  1770. export function tsTemplateLiteralType(quasis: Array<TemplateElement>, types: Array<TSType>): TSTemplateLiteralType;
  1771. export function tsLiteralType(literal: NumericLiteral | StringLiteral | BooleanLiteral | BigIntLiteral | TemplateLiteral | UnaryExpression): TSLiteralType;
  1772. export function tsExpressionWithTypeArguments(expression: TSEntityName, typeParameters?: TSTypeParameterInstantiation | null): TSExpressionWithTypeArguments;
  1773. export function tsInterfaceDeclaration(id: Identifier, typeParameters: TSTypeParameterDeclaration | null | undefined, _extends: Array<TSExpressionWithTypeArguments> | null | undefined, body: TSInterfaceBody): TSInterfaceDeclaration;
  1774. export function tsInterfaceBody(body: Array<TSTypeElement>): TSInterfaceBody;
  1775. export function tsTypeAliasDeclaration(id: Identifier, typeParameters: TSTypeParameterDeclaration | null | undefined, typeAnnotation: TSType): TSTypeAliasDeclaration;
  1776. export function tsInstantiationExpression(expression: Expression, typeParameters?: TSTypeParameterInstantiation | null): TSInstantiationExpression;
  1777. export function tsAsExpression(expression: Expression, typeAnnotation: TSType): TSAsExpression;
  1778. export function tsSatisfiesExpression(expression: Expression, typeAnnotation: TSType): TSSatisfiesExpression;
  1779. export function tsTypeAssertion(typeAnnotation: TSType, expression: Expression): TSTypeAssertion;
  1780. export function tsEnumBody(members: Array<TSEnumMember>): TSEnumBody;
  1781. export function tsEnumDeclaration(id: Identifier, members: Array<TSEnumMember>): TSEnumDeclaration;
  1782. export function tsEnumMember(id: Identifier | StringLiteral, initializer?: Expression | null): TSEnumMember;
  1783. export function tsModuleDeclaration(id: Identifier | StringLiteral, body: TSModuleBlock | TSModuleDeclaration): TSModuleDeclaration;
  1784. export function tsModuleBlock(body: Array<Statement>): TSModuleBlock;
  1785. export function tsImportType(argument: StringLiteral, qualifier?: TSEntityName | null, typeParameters?: TSTypeParameterInstantiation | null): TSImportType;
  1786. export function tsImportEqualsDeclaration(id: Identifier, moduleReference: TSEntityName | TSExternalModuleReference): TSImportEqualsDeclaration;
  1787. export function tsExternalModuleReference(expression: StringLiteral): TSExternalModuleReference;
  1788. export function tsNonNullExpression(expression: Expression): TSNonNullExpression;
  1789. export function tsExportAssignment(expression: Expression): TSExportAssignment;
  1790. export function tsNamespaceExportDeclaration(id: Identifier): TSNamespaceExportDeclaration;
  1791. export function tsTypeAnnotation(typeAnnotation: TSType): TSTypeAnnotation;
  1792. export function tsTypeParameterInstantiation(params: Array<TSType>): TSTypeParameterInstantiation;
  1793. export function tsTypeParameterDeclaration(params: Array<TSTypeParameter>): TSTypeParameterDeclaration;
  1794. export function tsTypeParameter(constraint: TSType | null | undefined, _default: TSType | null | undefined, name: string): TSTypeParameter;
  1795. export function isAccessor(node: object | null | undefined, opts?: object | null): node is Accessor;
  1796. export function assertAccessor(node: object | null | undefined, opts?: object | null): void;
  1797. export function isAnyTypeAnnotation(node: object | null | undefined, opts?: object | null): node is AnyTypeAnnotation;
  1798. export function assertAnyTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  1799. export function isArgumentPlaceholder(node: object | null | undefined, opts?: object | null): node is ArgumentPlaceholder;
  1800. export function assertArgumentPlaceholder(node: object | null | undefined, opts?: object | null): void;
  1801. export function isArrayExpression(node: object | null | undefined, opts?: object | null): node is ArrayExpression;
  1802. export function assertArrayExpression(node: object | null | undefined, opts?: object | null): void;
  1803. export function isArrayPattern(node: object | null | undefined, opts?: object | null): node is ArrayPattern;
  1804. export function assertArrayPattern(node: object | null | undefined, opts?: object | null): void;
  1805. export function isArrayTypeAnnotation(node: object | null | undefined, opts?: object | null): node is ArrayTypeAnnotation;
  1806. export function assertArrayTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  1807. export function isArrowFunctionExpression(node: object | null | undefined, opts?: object | null): node is ArrowFunctionExpression;
  1808. export function assertArrowFunctionExpression(node: object | null | undefined, opts?: object | null): void;
  1809. export function isAssignmentExpression(node: object | null | undefined, opts?: object | null): node is AssignmentExpression;
  1810. export function assertAssignmentExpression(node: object | null | undefined, opts?: object | null): void;
  1811. export function isAssignmentPattern(node: object | null | undefined, opts?: object | null): node is AssignmentPattern;
  1812. export function assertAssignmentPattern(node: object | null | undefined, opts?: object | null): void;
  1813. export function isAwaitExpression(node: object | null | undefined, opts?: object | null): node is AwaitExpression;
  1814. export function assertAwaitExpression(node: object | null | undefined, opts?: object | null): void;
  1815. export function isBigIntLiteral(node: object | null | undefined, opts?: object | null): node is BigIntLiteral;
  1816. export function assertBigIntLiteral(node: object | null | undefined, opts?: object | null): void;
  1817. export function isBinary(node: object | null | undefined, opts?: object | null): node is Binary;
  1818. export function assertBinary(node: object | null | undefined, opts?: object | null): void;
  1819. export function isBinaryExpression(node: object | null | undefined, opts?: object | null): node is BinaryExpression;
  1820. export function assertBinaryExpression(node: object | null | undefined, opts?: object | null): void;
  1821. export function isBindExpression(node: object | null | undefined, opts?: object | null): node is BindExpression;
  1822. export function assertBindExpression(node: object | null | undefined, opts?: object | null): void;
  1823. export function isBlock(node: object | null | undefined, opts?: object | null): node is Block;
  1824. export function assertBlock(node: object | null | undefined, opts?: object | null): void;
  1825. export function isBlockParent(node: object | null | undefined, opts?: object | null): node is BlockParent;
  1826. export function assertBlockParent(node: object | null | undefined, opts?: object | null): void;
  1827. export function isBlockStatement(node: object | null | undefined, opts?: object | null): node is BlockStatement;
  1828. export function assertBlockStatement(node: object | null | undefined, opts?: object | null): void;
  1829. export function isBooleanLiteral(node: object | null | undefined, opts?: object | null): node is BooleanLiteral;
  1830. export function assertBooleanLiteral(node: object | null | undefined, opts?: object | null): void;
  1831. export function isBooleanLiteralTypeAnnotation(node: object | null | undefined, opts?: object | null): node is BooleanLiteralTypeAnnotation;
  1832. export function assertBooleanLiteralTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  1833. export function isBooleanTypeAnnotation(node: object | null | undefined, opts?: object | null): node is BooleanTypeAnnotation;
  1834. export function assertBooleanTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  1835. export function isBreakStatement(node: object | null | undefined, opts?: object | null): node is BreakStatement;
  1836. export function assertBreakStatement(node: object | null | undefined, opts?: object | null): void;
  1837. export function isCallExpression(node: object | null | undefined, opts?: object | null): node is CallExpression;
  1838. export function assertCallExpression(node: object | null | undefined, opts?: object | null): void;
  1839. export function isCatchClause(node: object | null | undefined, opts?: object | null): node is CatchClause;
  1840. export function assertCatchClause(node: object | null | undefined, opts?: object | null): void;
  1841. export function isClass(node: object | null | undefined, opts?: object | null): node is Class;
  1842. export function assertClass(node: object | null | undefined, opts?: object | null): void;
  1843. export function isClassAccessorProperty(node: object | null | undefined, opts?: object | null): node is ClassAccessorProperty;
  1844. export function assertClassAccessorProperty(node: object | null | undefined, opts?: object | null): void;
  1845. export function isClassBody(node: object | null | undefined, opts?: object | null): node is ClassBody;
  1846. export function assertClassBody(node: object | null | undefined, opts?: object | null): void;
  1847. export function isClassDeclaration(node: object | null | undefined, opts?: object | null): node is ClassDeclaration;
  1848. export function assertClassDeclaration(node: object | null | undefined, opts?: object | null): void;
  1849. export function isClassExpression(node: object | null | undefined, opts?: object | null): node is ClassExpression;
  1850. export function assertClassExpression(node: object | null | undefined, opts?: object | null): void;
  1851. export function isClassImplements(node: object | null | undefined, opts?: object | null): node is ClassImplements;
  1852. export function assertClassImplements(node: object | null | undefined, opts?: object | null): void;
  1853. export function isClassMethod(node: object | null | undefined, opts?: object | null): node is ClassMethod;
  1854. export function assertClassMethod(node: object | null | undefined, opts?: object | null): void;
  1855. export function isClassPrivateMethod(node: object | null | undefined, opts?: object | null): node is ClassPrivateMethod;
  1856. export function assertClassPrivateMethod(node: object | null | undefined, opts?: object | null): void;
  1857. export function isClassPrivateProperty(node: object | null | undefined, opts?: object | null): node is ClassPrivateProperty;
  1858. export function assertClassPrivateProperty(node: object | null | undefined, opts?: object | null): void;
  1859. export function isClassProperty(node: object | null | undefined, opts?: object | null): node is ClassProperty;
  1860. export function assertClassProperty(node: object | null | undefined, opts?: object | null): void;
  1861. export function isCompletionStatement(node: object | null | undefined, opts?: object | null): node is CompletionStatement;
  1862. export function assertCompletionStatement(node: object | null | undefined, opts?: object | null): void;
  1863. export function isConditional(node: object | null | undefined, opts?: object | null): node is Conditional;
  1864. export function assertConditional(node: object | null | undefined, opts?: object | null): void;
  1865. export function isConditionalExpression(node: object | null | undefined, opts?: object | null): node is ConditionalExpression;
  1866. export function assertConditionalExpression(node: object | null | undefined, opts?: object | null): void;
  1867. export function isContinueStatement(node: object | null | undefined, opts?: object | null): node is ContinueStatement;
  1868. export function assertContinueStatement(node: object | null | undefined, opts?: object | null): void;
  1869. export function isDebuggerStatement(node: object | null | undefined, opts?: object | null): node is DebuggerStatement;
  1870. export function assertDebuggerStatement(node: object | null | undefined, opts?: object | null): void;
  1871. export function isDecimalLiteral(node: object | null | undefined, opts?: object | null): node is DecimalLiteral;
  1872. export function assertDecimalLiteral(node: object | null | undefined, opts?: object | null): void;
  1873. export function isDeclaration(node: object | null | undefined, opts?: object | null): node is Declaration;
  1874. export function assertDeclaration(node: object | null | undefined, opts?: object | null): void;
  1875. export function isDeclareClass(node: object | null | undefined, opts?: object | null): node is DeclareClass;
  1876. export function assertDeclareClass(node: object | null | undefined, opts?: object | null): void;
  1877. export function isDeclareExportAllDeclaration(node: object | null | undefined, opts?: object | null): node is DeclareExportAllDeclaration;
  1878. export function assertDeclareExportAllDeclaration(node: object | null | undefined, opts?: object | null): void;
  1879. export function isDeclareExportDeclaration(node: object | null | undefined, opts?: object | null): node is DeclareExportDeclaration;
  1880. export function assertDeclareExportDeclaration(node: object | null | undefined, opts?: object | null): void;
  1881. export function isDeclareFunction(node: object | null | undefined, opts?: object | null): node is DeclareFunction;
  1882. export function assertDeclareFunction(node: object | null | undefined, opts?: object | null): void;
  1883. export function isDeclareInterface(node: object | null | undefined, opts?: object | null): node is DeclareInterface;
  1884. export function assertDeclareInterface(node: object | null | undefined, opts?: object | null): void;
  1885. export function isDeclareModule(node: object | null | undefined, opts?: object | null): node is DeclareModule;
  1886. export function assertDeclareModule(node: object | null | undefined, opts?: object | null): void;
  1887. export function isDeclareModuleExports(node: object | null | undefined, opts?: object | null): node is DeclareModuleExports;
  1888. export function assertDeclareModuleExports(node: object | null | undefined, opts?: object | null): void;
  1889. export function isDeclareOpaqueType(node: object | null | undefined, opts?: object | null): node is DeclareOpaqueType;
  1890. export function assertDeclareOpaqueType(node: object | null | undefined, opts?: object | null): void;
  1891. export function isDeclareTypeAlias(node: object | null | undefined, opts?: object | null): node is DeclareTypeAlias;
  1892. export function assertDeclareTypeAlias(node: object | null | undefined, opts?: object | null): void;
  1893. export function isDeclareVariable(node: object | null | undefined, opts?: object | null): node is DeclareVariable;
  1894. export function assertDeclareVariable(node: object | null | undefined, opts?: object | null): void;
  1895. export function isDeclaredPredicate(node: object | null | undefined, opts?: object | null): node is DeclaredPredicate;
  1896. export function assertDeclaredPredicate(node: object | null | undefined, opts?: object | null): void;
  1897. export function isDecorator(node: object | null | undefined, opts?: object | null): node is Decorator;
  1898. export function assertDecorator(node: object | null | undefined, opts?: object | null): void;
  1899. export function isDirective(node: object | null | undefined, opts?: object | null): node is Directive;
  1900. export function assertDirective(node: object | null | undefined, opts?: object | null): void;
  1901. export function isDirectiveLiteral(node: object | null | undefined, opts?: object | null): node is DirectiveLiteral;
  1902. export function assertDirectiveLiteral(node: object | null | undefined, opts?: object | null): void;
  1903. export function isDoExpression(node: object | null | undefined, opts?: object | null): node is DoExpression;
  1904. export function assertDoExpression(node: object | null | undefined, opts?: object | null): void;
  1905. export function isDoWhileStatement(node: object | null | undefined, opts?: object | null): node is DoWhileStatement;
  1906. export function assertDoWhileStatement(node: object | null | undefined, opts?: object | null): void;
  1907. export function isEmptyStatement(node: object | null | undefined, opts?: object | null): node is EmptyStatement;
  1908. export function assertEmptyStatement(node: object | null | undefined, opts?: object | null): void;
  1909. export function isEmptyTypeAnnotation(node: object | null | undefined, opts?: object | null): node is EmptyTypeAnnotation;
  1910. export function assertEmptyTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  1911. export function isEnumBody(node: object | null | undefined, opts?: object | null): node is EnumBody;
  1912. export function assertEnumBody(node: object | null | undefined, opts?: object | null): void;
  1913. export function isEnumBooleanBody(node: object | null | undefined, opts?: object | null): node is EnumBooleanBody;
  1914. export function assertEnumBooleanBody(node: object | null | undefined, opts?: object | null): void;
  1915. export function isEnumBooleanMember(node: object | null | undefined, opts?: object | null): node is EnumBooleanMember;
  1916. export function assertEnumBooleanMember(node: object | null | undefined, opts?: object | null): void;
  1917. export function isEnumDeclaration(node: object | null | undefined, opts?: object | null): node is EnumDeclaration;
  1918. export function assertEnumDeclaration(node: object | null | undefined, opts?: object | null): void;
  1919. export function isEnumDefaultedMember(node: object | null | undefined, opts?: object | null): node is EnumDefaultedMember;
  1920. export function assertEnumDefaultedMember(node: object | null | undefined, opts?: object | null): void;
  1921. export function isEnumMember(node: object | null | undefined, opts?: object | null): node is EnumMember;
  1922. export function assertEnumMember(node: object | null | undefined, opts?: object | null): void;
  1923. export function isEnumNumberBody(node: object | null | undefined, opts?: object | null): node is EnumNumberBody;
  1924. export function assertEnumNumberBody(node: object | null | undefined, opts?: object | null): void;
  1925. export function isEnumNumberMember(node: object | null | undefined, opts?: object | null): node is EnumNumberMember;
  1926. export function assertEnumNumberMember(node: object | null | undefined, opts?: object | null): void;
  1927. export function isEnumStringBody(node: object | null | undefined, opts?: object | null): node is EnumStringBody;
  1928. export function assertEnumStringBody(node: object | null | undefined, opts?: object | null): void;
  1929. export function isEnumStringMember(node: object | null | undefined, opts?: object | null): node is EnumStringMember;
  1930. export function assertEnumStringMember(node: object | null | undefined, opts?: object | null): void;
  1931. export function isEnumSymbolBody(node: object | null | undefined, opts?: object | null): node is EnumSymbolBody;
  1932. export function assertEnumSymbolBody(node: object | null | undefined, opts?: object | null): void;
  1933. export function isExistsTypeAnnotation(node: object | null | undefined, opts?: object | null): node is ExistsTypeAnnotation;
  1934. export function assertExistsTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  1935. export function isExportAllDeclaration(node: object | null | undefined, opts?: object | null): node is ExportAllDeclaration;
  1936. export function assertExportAllDeclaration(node: object | null | undefined, opts?: object | null): void;
  1937. export function isExportDeclaration(node: object | null | undefined, opts?: object | null): node is ExportDeclaration;
  1938. export function assertExportDeclaration(node: object | null | undefined, opts?: object | null): void;
  1939. export function isExportDefaultDeclaration(node: object | null | undefined, opts?: object | null): node is ExportDefaultDeclaration;
  1940. export function assertExportDefaultDeclaration(node: object | null | undefined, opts?: object | null): void;
  1941. export function isExportDefaultSpecifier(node: object | null | undefined, opts?: object | null): node is ExportDefaultSpecifier;
  1942. export function assertExportDefaultSpecifier(node: object | null | undefined, opts?: object | null): void;
  1943. export function isExportNamedDeclaration(node: object | null | undefined, opts?: object | null): node is ExportNamedDeclaration;
  1944. export function assertExportNamedDeclaration(node: object | null | undefined, opts?: object | null): void;
  1945. export function isExportNamespaceSpecifier(node: object | null | undefined, opts?: object | null): node is ExportNamespaceSpecifier;
  1946. export function assertExportNamespaceSpecifier(node: object | null | undefined, opts?: object | null): void;
  1947. export function isExportSpecifier(node: object | null | undefined, opts?: object | null): node is ExportSpecifier;
  1948. export function assertExportSpecifier(node: object | null | undefined, opts?: object | null): void;
  1949. export function isExpression(node: object | null | undefined, opts?: object | null): node is Expression;
  1950. export function assertExpression(node: object | null | undefined, opts?: object | null): void;
  1951. export function isExpressionStatement(node: object | null | undefined, opts?: object | null): node is ExpressionStatement;
  1952. export function assertExpressionStatement(node: object | null | undefined, opts?: object | null): void;
  1953. export function isExpressionWrapper(node: object | null | undefined, opts?: object | null): node is ExpressionWrapper;
  1954. export function assertExpressionWrapper(node: object | null | undefined, opts?: object | null): void;
  1955. export function isFile(node: object | null | undefined, opts?: object | null): node is File;
  1956. export function assertFile(node: object | null | undefined, opts?: object | null): void;
  1957. export function isFlow(node: object | null | undefined, opts?: object | null): node is Flow;
  1958. export function assertFlow(node: object | null | undefined, opts?: object | null): void;
  1959. export function isFlowBaseAnnotation(node: object | null | undefined, opts?: object | null): node is FlowBaseAnnotation;
  1960. export function assertFlowBaseAnnotation(node: object | null | undefined, opts?: object | null): void;
  1961. export function isFlowDeclaration(node: object | null | undefined, opts?: object | null): node is FlowDeclaration;
  1962. export function assertFlowDeclaration(node: object | null | undefined, opts?: object | null): void;
  1963. export function isFlowPredicate(node: object | null | undefined, opts?: object | null): node is FlowPredicate;
  1964. export function assertFlowPredicate(node: object | null | undefined, opts?: object | null): void;
  1965. export function isFlowType(node: object | null | undefined, opts?: object | null): node is FlowType;
  1966. export function assertFlowType(node: object | null | undefined, opts?: object | null): void;
  1967. export function isFor(node: object | null | undefined, opts?: object | null): node is For;
  1968. export function assertFor(node: object | null | undefined, opts?: object | null): void;
  1969. export function isForInStatement(node: object | null | undefined, opts?: object | null): node is ForInStatement;
  1970. export function assertForInStatement(node: object | null | undefined, opts?: object | null): void;
  1971. export function isForOfStatement(node: object | null | undefined, opts?: object | null): node is ForOfStatement;
  1972. export function assertForOfStatement(node: object | null | undefined, opts?: object | null): void;
  1973. export function isForStatement(node: object | null | undefined, opts?: object | null): node is ForStatement;
  1974. export function assertForStatement(node: object | null | undefined, opts?: object | null): void;
  1975. export function isForXStatement(node: object | null | undefined, opts?: object | null): node is ForXStatement;
  1976. export function assertForXStatement(node: object | null | undefined, opts?: object | null): void;
  1977. export function isFunction(node: object | null | undefined, opts?: object | null): node is Function;
  1978. export function assertFunction(node: object | null | undefined, opts?: object | null): void;
  1979. export function isFunctionDeclaration(node: object | null | undefined, opts?: object | null): node is FunctionDeclaration;
  1980. export function assertFunctionDeclaration(node: object | null | undefined, opts?: object | null): void;
  1981. export function isFunctionExpression(node: object | null | undefined, opts?: object | null): node is FunctionExpression;
  1982. export function assertFunctionExpression(node: object | null | undefined, opts?: object | null): void;
  1983. export function isFunctionParent(node: object | null | undefined, opts?: object | null): node is FunctionParent;
  1984. export function assertFunctionParent(node: object | null | undefined, opts?: object | null): void;
  1985. export function isFunctionTypeAnnotation(node: object | null | undefined, opts?: object | null): node is FunctionTypeAnnotation;
  1986. export function assertFunctionTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  1987. export function isFunctionTypeParam(node: object | null | undefined, opts?: object | null): node is FunctionTypeParam;
  1988. export function assertFunctionTypeParam(node: object | null | undefined, opts?: object | null): void;
  1989. export function isGenericTypeAnnotation(node: object | null | undefined, opts?: object | null): node is GenericTypeAnnotation;
  1990. export function assertGenericTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  1991. export function isIdentifier(node: object | null | undefined, opts?: object | null): node is Identifier;
  1992. export function assertIdentifier(node: object | null | undefined, opts?: object | null): void;
  1993. export function isIfStatement(node: object | null | undefined, opts?: object | null): node is IfStatement;
  1994. export function assertIfStatement(node: object | null | undefined, opts?: object | null): void;
  1995. export function isImmutable(node: object | null | undefined, opts?: object | null): node is Immutable;
  1996. export function assertImmutable(node: object | null | undefined, opts?: object | null): void;
  1997. export function isImport(node: object | null | undefined, opts?: object | null): node is Import;
  1998. export function assertImport(node: object | null | undefined, opts?: object | null): void;
  1999. export function isImportAttribute(node: object | null | undefined, opts?: object | null): node is ImportAttribute;
  2000. export function assertImportAttribute(node: object | null | undefined, opts?: object | null): void;
  2001. export function isImportDeclaration(node: object | null | undefined, opts?: object | null): node is ImportDeclaration;
  2002. export function assertImportDeclaration(node: object | null | undefined, opts?: object | null): void;
  2003. export function isImportDefaultSpecifier(node: object | null | undefined, opts?: object | null): node is ImportDefaultSpecifier;
  2004. export function assertImportDefaultSpecifier(node: object | null | undefined, opts?: object | null): void;
  2005. export function isImportExpression(node: object | null | undefined, opts?: object | null): node is ImportExpression;
  2006. export function assertImportExpression(node: object | null | undefined, opts?: object | null): void;
  2007. export function isImportNamespaceSpecifier(node: object | null | undefined, opts?: object | null): node is ImportNamespaceSpecifier;
  2008. export function assertImportNamespaceSpecifier(node: object | null | undefined, opts?: object | null): void;
  2009. export function isImportOrExportDeclaration(node: object | null | undefined, opts?: object | null): node is ImportOrExportDeclaration;
  2010. export function assertImportOrExportDeclaration(node: object | null | undefined, opts?: object | null): void;
  2011. export function isImportSpecifier(node: object | null | undefined, opts?: object | null): node is ImportSpecifier;
  2012. export function assertImportSpecifier(node: object | null | undefined, opts?: object | null): void;
  2013. export function isIndexedAccessType(node: object | null | undefined, opts?: object | null): node is IndexedAccessType;
  2014. export function assertIndexedAccessType(node: object | null | undefined, opts?: object | null): void;
  2015. export function isInferredPredicate(node: object | null | undefined, opts?: object | null): node is InferredPredicate;
  2016. export function assertInferredPredicate(node: object | null | undefined, opts?: object | null): void;
  2017. export function isInterfaceDeclaration(node: object | null | undefined, opts?: object | null): node is InterfaceDeclaration;
  2018. export function assertInterfaceDeclaration(node: object | null | undefined, opts?: object | null): void;
  2019. export function isInterfaceExtends(node: object | null | undefined, opts?: object | null): node is InterfaceExtends;
  2020. export function assertInterfaceExtends(node: object | null | undefined, opts?: object | null): void;
  2021. export function isInterfaceTypeAnnotation(node: object | null | undefined, opts?: object | null): node is InterfaceTypeAnnotation;
  2022. export function assertInterfaceTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  2023. export function isInterpreterDirective(node: object | null | undefined, opts?: object | null): node is InterpreterDirective;
  2024. export function assertInterpreterDirective(node: object | null | undefined, opts?: object | null): void;
  2025. export function isIntersectionTypeAnnotation(node: object | null | undefined, opts?: object | null): node is IntersectionTypeAnnotation;
  2026. export function assertIntersectionTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  2027. export function isJSX(node: object | null | undefined, opts?: object | null): node is JSX;
  2028. export function assertJSX(node: object | null | undefined, opts?: object | null): void;
  2029. export function isJSXAttribute(node: object | null | undefined, opts?: object | null): node is JSXAttribute;
  2030. export function assertJSXAttribute(node: object | null | undefined, opts?: object | null): void;
  2031. export function isJSXClosingElement(node: object | null | undefined, opts?: object | null): node is JSXClosingElement;
  2032. export function assertJSXClosingElement(node: object | null | undefined, opts?: object | null): void;
  2033. export function isJSXClosingFragment(node: object | null | undefined, opts?: object | null): node is JSXClosingFragment;
  2034. export function assertJSXClosingFragment(node: object | null | undefined, opts?: object | null): void;
  2035. export function isJSXElement(node: object | null | undefined, opts?: object | null): node is JSXElement;
  2036. export function assertJSXElement(node: object | null | undefined, opts?: object | null): void;
  2037. export function isJSXEmptyExpression(node: object | null | undefined, opts?: object | null): node is JSXEmptyExpression;
  2038. export function assertJSXEmptyExpression(node: object | null | undefined, opts?: object | null): void;
  2039. export function isJSXExpressionContainer(node: object | null | undefined, opts?: object | null): node is JSXExpressionContainer;
  2040. export function assertJSXExpressionContainer(node: object | null | undefined, opts?: object | null): void;
  2041. export function isJSXFragment(node: object | null | undefined, opts?: object | null): node is JSXFragment;
  2042. export function assertJSXFragment(node: object | null | undefined, opts?: object | null): void;
  2043. export function isJSXIdentifier(node: object | null | undefined, opts?: object | null): node is JSXIdentifier;
  2044. export function assertJSXIdentifier(node: object | null | undefined, opts?: object | null): void;
  2045. export function isJSXMemberExpression(node: object | null | undefined, opts?: object | null): node is JSXMemberExpression;
  2046. export function assertJSXMemberExpression(node: object | null | undefined, opts?: object | null): void;
  2047. export function isJSXNamespacedName(node: object | null | undefined, opts?: object | null): node is JSXNamespacedName;
  2048. export function assertJSXNamespacedName(node: object | null | undefined, opts?: object | null): void;
  2049. export function isJSXOpeningElement(node: object | null | undefined, opts?: object | null): node is JSXOpeningElement;
  2050. export function assertJSXOpeningElement(node: object | null | undefined, opts?: object | null): void;
  2051. export function isJSXOpeningFragment(node: object | null | undefined, opts?: object | null): node is JSXOpeningFragment;
  2052. export function assertJSXOpeningFragment(node: object | null | undefined, opts?: object | null): void;
  2053. export function isJSXSpreadAttribute(node: object | null | undefined, opts?: object | null): node is JSXSpreadAttribute;
  2054. export function assertJSXSpreadAttribute(node: object | null | undefined, opts?: object | null): void;
  2055. export function isJSXSpreadChild(node: object | null | undefined, opts?: object | null): node is JSXSpreadChild;
  2056. export function assertJSXSpreadChild(node: object | null | undefined, opts?: object | null): void;
  2057. export function isJSXText(node: object | null | undefined, opts?: object | null): node is JSXText;
  2058. export function assertJSXText(node: object | null | undefined, opts?: object | null): void;
  2059. export function isLVal(node: object | null | undefined, opts?: object | null): node is LVal;
  2060. export function assertLVal(node: object | null | undefined, opts?: object | null): void;
  2061. export function isLabeledStatement(node: object | null | undefined, opts?: object | null): node is LabeledStatement;
  2062. export function assertLabeledStatement(node: object | null | undefined, opts?: object | null): void;
  2063. export function isLiteral(node: object | null | undefined, opts?: object | null): node is Literal;
  2064. export function assertLiteral(node: object | null | undefined, opts?: object | null): void;
  2065. export function isLogicalExpression(node: object | null | undefined, opts?: object | null): node is LogicalExpression;
  2066. export function assertLogicalExpression(node: object | null | undefined, opts?: object | null): void;
  2067. export function isLoop(node: object | null | undefined, opts?: object | null): node is Loop;
  2068. export function assertLoop(node: object | null | undefined, opts?: object | null): void;
  2069. export function isMemberExpression(node: object | null | undefined, opts?: object | null): node is MemberExpression;
  2070. export function assertMemberExpression(node: object | null | undefined, opts?: object | null): void;
  2071. export function isMetaProperty(node: object | null | undefined, opts?: object | null): node is MetaProperty;
  2072. export function assertMetaProperty(node: object | null | undefined, opts?: object | null): void;
  2073. export function isMethod(node: object | null | undefined, opts?: object | null): node is Method;
  2074. export function assertMethod(node: object | null | undefined, opts?: object | null): void;
  2075. export function isMiscellaneous(node: object | null | undefined, opts?: object | null): node is Miscellaneous;
  2076. export function assertMiscellaneous(node: object | null | undefined, opts?: object | null): void;
  2077. export function isMixedTypeAnnotation(node: object | null | undefined, opts?: object | null): node is MixedTypeAnnotation;
  2078. export function assertMixedTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  2079. export function isModuleDeclaration(node: object | null | undefined, opts?: object | null): node is ModuleDeclaration;
  2080. export function assertModuleDeclaration(node: object | null | undefined, opts?: object | null): void;
  2081. export function isModuleExpression(node: object | null | undefined, opts?: object | null): node is ModuleExpression;
  2082. export function assertModuleExpression(node: object | null | undefined, opts?: object | null): void;
  2083. export function isModuleSpecifier(node: object | null | undefined, opts?: object | null): node is ModuleSpecifier;
  2084. export function assertModuleSpecifier(node: object | null | undefined, opts?: object | null): void;
  2085. export function isNewExpression(node: object | null | undefined, opts?: object | null): node is NewExpression;
  2086. export function assertNewExpression(node: object | null | undefined, opts?: object | null): void;
  2087. export function isNoop(node: object | null | undefined, opts?: object | null): node is Noop;
  2088. export function assertNoop(node: object | null | undefined, opts?: object | null): void;
  2089. export function isNullLiteral(node: object | null | undefined, opts?: object | null): node is NullLiteral;
  2090. export function assertNullLiteral(node: object | null | undefined, opts?: object | null): void;
  2091. export function isNullLiteralTypeAnnotation(node: object | null | undefined, opts?: object | null): node is NullLiteralTypeAnnotation;
  2092. export function assertNullLiteralTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  2093. export function isNullableTypeAnnotation(node: object | null | undefined, opts?: object | null): node is NullableTypeAnnotation;
  2094. export function assertNullableTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  2095. /** @deprecated Use `isNumericLiteral` */
  2096. export function isNumberLiteral(node: object | null | undefined, opts?: object | null): node is NumericLiteral;
  2097. /** @deprecated Use `assertNumericLiteral` */
  2098. export function assertNumberLiteral(node: object | null | undefined, opts?: object | null): void;
  2099. export function isNumberLiteralTypeAnnotation(node: object | null | undefined, opts?: object | null): node is NumberLiteralTypeAnnotation;
  2100. export function assertNumberLiteralTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  2101. export function isNumberTypeAnnotation(node: object | null | undefined, opts?: object | null): node is NumberTypeAnnotation;
  2102. export function assertNumberTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  2103. export function isNumericLiteral(node: object | null | undefined, opts?: object | null): node is NumericLiteral;
  2104. export function assertNumericLiteral(node: object | null | undefined, opts?: object | null): void;
  2105. export function isObjectExpression(node: object | null | undefined, opts?: object | null): node is ObjectExpression;
  2106. export function assertObjectExpression(node: object | null | undefined, opts?: object | null): void;
  2107. export function isObjectMember(node: object | null | undefined, opts?: object | null): node is ObjectMember;
  2108. export function assertObjectMember(node: object | null | undefined, opts?: object | null): void;
  2109. export function isObjectMethod(node: object | null | undefined, opts?: object | null): node is ObjectMethod;
  2110. export function assertObjectMethod(node: object | null | undefined, opts?: object | null): void;
  2111. export function isObjectPattern(node: object | null | undefined, opts?: object | null): node is ObjectPattern;
  2112. export function assertObjectPattern(node: object | null | undefined, opts?: object | null): void;
  2113. export function isObjectProperty(node: object | null | undefined, opts?: object | null): node is ObjectProperty;
  2114. export function assertObjectProperty(node: object | null | undefined, opts?: object | null): void;
  2115. export function isObjectTypeAnnotation(node: object | null | undefined, opts?: object | null): node is ObjectTypeAnnotation;
  2116. export function assertObjectTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  2117. export function isObjectTypeCallProperty(node: object | null | undefined, opts?: object | null): node is ObjectTypeCallProperty;
  2118. export function assertObjectTypeCallProperty(node: object | null | undefined, opts?: object | null): void;
  2119. export function isObjectTypeIndexer(node: object | null | undefined, opts?: object | null): node is ObjectTypeIndexer;
  2120. export function assertObjectTypeIndexer(node: object | null | undefined, opts?: object | null): void;
  2121. export function isObjectTypeInternalSlot(node: object | null | undefined, opts?: object | null): node is ObjectTypeInternalSlot;
  2122. export function assertObjectTypeInternalSlot(node: object | null | undefined, opts?: object | null): void;
  2123. export function isObjectTypeProperty(node: object | null | undefined, opts?: object | null): node is ObjectTypeProperty;
  2124. export function assertObjectTypeProperty(node: object | null | undefined, opts?: object | null): void;
  2125. export function isObjectTypeSpreadProperty(node: object | null | undefined, opts?: object | null): node is ObjectTypeSpreadProperty;
  2126. export function assertObjectTypeSpreadProperty(node: object | null | undefined, opts?: object | null): void;
  2127. export function isOpaqueType(node: object | null | undefined, opts?: object | null): node is OpaqueType;
  2128. export function assertOpaqueType(node: object | null | undefined, opts?: object | null): void;
  2129. export function isOptionalCallExpression(node: object | null | undefined, opts?: object | null): node is OptionalCallExpression;
  2130. export function assertOptionalCallExpression(node: object | null | undefined, opts?: object | null): void;
  2131. export function isOptionalIndexedAccessType(node: object | null | undefined, opts?: object | null): node is OptionalIndexedAccessType;
  2132. export function assertOptionalIndexedAccessType(node: object | null | undefined, opts?: object | null): void;
  2133. export function isOptionalMemberExpression(node: object | null | undefined, opts?: object | null): node is OptionalMemberExpression;
  2134. export function assertOptionalMemberExpression(node: object | null | undefined, opts?: object | null): void;
  2135. export function isParenthesizedExpression(node: object | null | undefined, opts?: object | null): node is ParenthesizedExpression;
  2136. export function assertParenthesizedExpression(node: object | null | undefined, opts?: object | null): void;
  2137. export function isPattern(node: object | null | undefined, opts?: object | null): node is Pattern;
  2138. export function assertPattern(node: object | null | undefined, opts?: object | null): void;
  2139. export function isPatternLike(node: object | null | undefined, opts?: object | null): node is PatternLike;
  2140. export function assertPatternLike(node: object | null | undefined, opts?: object | null): void;
  2141. export function isPipelineBareFunction(node: object | null | undefined, opts?: object | null): node is PipelineBareFunction;
  2142. export function assertPipelineBareFunction(node: object | null | undefined, opts?: object | null): void;
  2143. export function isPipelinePrimaryTopicReference(node: object | null | undefined, opts?: object | null): node is PipelinePrimaryTopicReference;
  2144. export function assertPipelinePrimaryTopicReference(node: object | null | undefined, opts?: object | null): void;
  2145. export function isPipelineTopicExpression(node: object | null | undefined, opts?: object | null): node is PipelineTopicExpression;
  2146. export function assertPipelineTopicExpression(node: object | null | undefined, opts?: object | null): void;
  2147. export function isPlaceholder(node: object | null | undefined, opts?: object | null): node is Placeholder;
  2148. export function assertPlaceholder(node: object | null | undefined, opts?: object | null): void;
  2149. export function isPrivate(node: object | null | undefined, opts?: object | null): node is Private;
  2150. export function assertPrivate(node: object | null | undefined, opts?: object | null): void;
  2151. export function isPrivateName(node: object | null | undefined, opts?: object | null): node is PrivateName;
  2152. export function assertPrivateName(node: object | null | undefined, opts?: object | null): void;
  2153. export function isProgram(node: object | null | undefined, opts?: object | null): node is Program;
  2154. export function assertProgram(node: object | null | undefined, opts?: object | null): void;
  2155. export function isProperty(node: object | null | undefined, opts?: object | null): node is Property;
  2156. export function assertProperty(node: object | null | undefined, opts?: object | null): void;
  2157. export function isPureish(node: object | null | undefined, opts?: object | null): node is Pureish;
  2158. export function assertPureish(node: object | null | undefined, opts?: object | null): void;
  2159. export function isQualifiedTypeIdentifier(node: object | null | undefined, opts?: object | null): node is QualifiedTypeIdentifier;
  2160. export function assertQualifiedTypeIdentifier(node: object | null | undefined, opts?: object | null): void;
  2161. export function isRecordExpression(node: object | null | undefined, opts?: object | null): node is RecordExpression;
  2162. export function assertRecordExpression(node: object | null | undefined, opts?: object | null): void;
  2163. export function isRegExpLiteral(node: object | null | undefined, opts?: object | null): node is RegExpLiteral;
  2164. export function assertRegExpLiteral(node: object | null | undefined, opts?: object | null): void;
  2165. /** @deprecated Use `isRegExpLiteral` */
  2166. export function isRegexLiteral(node: object | null | undefined, opts?: object | null): node is RegExpLiteral;
  2167. /** @deprecated Use `assertRegExpLiteral` */
  2168. export function assertRegexLiteral(node: object | null | undefined, opts?: object | null): void;
  2169. export function isRestElement(node: object | null | undefined, opts?: object | null): node is RestElement;
  2170. export function assertRestElement(node: object | null | undefined, opts?: object | null): void;
  2171. /** @deprecated Use `isRestElement` */
  2172. export function isRestProperty(node: object | null | undefined, opts?: object | null): node is RestElement;
  2173. /** @deprecated Use `assertRestElement` */
  2174. export function assertRestProperty(node: object | null | undefined, opts?: object | null): void;
  2175. export function isReturnStatement(node: object | null | undefined, opts?: object | null): node is ReturnStatement;
  2176. export function assertReturnStatement(node: object | null | undefined, opts?: object | null): void;
  2177. export function isScopable(node: object | null | undefined, opts?: object | null): node is Scopable;
  2178. export function assertScopable(node: object | null | undefined, opts?: object | null): void;
  2179. export function isSequenceExpression(node: object | null | undefined, opts?: object | null): node is SequenceExpression;
  2180. export function assertSequenceExpression(node: object | null | undefined, opts?: object | null): void;
  2181. export function isSpreadElement(node: object | null | undefined, opts?: object | null): node is SpreadElement;
  2182. export function assertSpreadElement(node: object | null | undefined, opts?: object | null): void;
  2183. /** @deprecated Use `isSpreadElement` */
  2184. export function isSpreadProperty(node: object | null | undefined, opts?: object | null): node is SpreadElement;
  2185. /** @deprecated Use `assertSpreadElement` */
  2186. export function assertSpreadProperty(node: object | null | undefined, opts?: object | null): void;
  2187. export function isStandardized(node: object | null | undefined, opts?: object | null): node is Standardized;
  2188. export function assertStandardized(node: object | null | undefined, opts?: object | null): void;
  2189. export function isStatement(node: object | null | undefined, opts?: object | null): node is Statement;
  2190. export function assertStatement(node: object | null | undefined, opts?: object | null): void;
  2191. export function isStaticBlock(node: object | null | undefined, opts?: object | null): node is StaticBlock;
  2192. export function assertStaticBlock(node: object | null | undefined, opts?: object | null): void;
  2193. export function isStringLiteral(node: object | null | undefined, opts?: object | null): node is StringLiteral;
  2194. export function assertStringLiteral(node: object | null | undefined, opts?: object | null): void;
  2195. export function isStringLiteralTypeAnnotation(node: object | null | undefined, opts?: object | null): node is StringLiteralTypeAnnotation;
  2196. export function assertStringLiteralTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  2197. export function isStringTypeAnnotation(node: object | null | undefined, opts?: object | null): node is StringTypeAnnotation;
  2198. export function assertStringTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  2199. export function isSuper(node: object | null | undefined, opts?: object | null): node is Super;
  2200. export function assertSuper(node: object | null | undefined, opts?: object | null): void;
  2201. export function isSwitchCase(node: object | null | undefined, opts?: object | null): node is SwitchCase;
  2202. export function assertSwitchCase(node: object | null | undefined, opts?: object | null): void;
  2203. export function isSwitchStatement(node: object | null | undefined, opts?: object | null): node is SwitchStatement;
  2204. export function assertSwitchStatement(node: object | null | undefined, opts?: object | null): void;
  2205. export function isSymbolTypeAnnotation(node: object | null | undefined, opts?: object | null): node is SymbolTypeAnnotation;
  2206. export function assertSymbolTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  2207. export function isTSAnyKeyword(node: object | null | undefined, opts?: object | null): node is TSAnyKeyword;
  2208. export function assertTSAnyKeyword(node: object | null | undefined, opts?: object | null): void;
  2209. export function isTSArrayType(node: object | null | undefined, opts?: object | null): node is TSArrayType;
  2210. export function assertTSArrayType(node: object | null | undefined, opts?: object | null): void;
  2211. export function isTSAsExpression(node: object | null | undefined, opts?: object | null): node is TSAsExpression;
  2212. export function assertTSAsExpression(node: object | null | undefined, opts?: object | null): void;
  2213. export function isTSBaseType(node: object | null | undefined, opts?: object | null): node is TSBaseType;
  2214. export function assertTSBaseType(node: object | null | undefined, opts?: object | null): void;
  2215. export function isTSBigIntKeyword(node: object | null | undefined, opts?: object | null): node is TSBigIntKeyword;
  2216. export function assertTSBigIntKeyword(node: object | null | undefined, opts?: object | null): void;
  2217. export function isTSBooleanKeyword(node: object | null | undefined, opts?: object | null): node is TSBooleanKeyword;
  2218. export function assertTSBooleanKeyword(node: object | null | undefined, opts?: object | null): void;
  2219. export function isTSCallSignatureDeclaration(node: object | null | undefined, opts?: object | null): node is TSCallSignatureDeclaration;
  2220. export function assertTSCallSignatureDeclaration(node: object | null | undefined, opts?: object | null): void;
  2221. export function isTSConditionalType(node: object | null | undefined, opts?: object | null): node is TSConditionalType;
  2222. export function assertTSConditionalType(node: object | null | undefined, opts?: object | null): void;
  2223. export function isTSConstructSignatureDeclaration(node: object | null | undefined, opts?: object | null): node is TSConstructSignatureDeclaration;
  2224. export function assertTSConstructSignatureDeclaration(node: object | null | undefined, opts?: object | null): void;
  2225. export function isTSConstructorType(node: object | null | undefined, opts?: object | null): node is TSConstructorType;
  2226. export function assertTSConstructorType(node: object | null | undefined, opts?: object | null): void;
  2227. export function isTSDeclareFunction(node: object | null | undefined, opts?: object | null): node is TSDeclareFunction;
  2228. export function assertTSDeclareFunction(node: object | null | undefined, opts?: object | null): void;
  2229. export function isTSDeclareMethod(node: object | null | undefined, opts?: object | null): node is TSDeclareMethod;
  2230. export function assertTSDeclareMethod(node: object | null | undefined, opts?: object | null): void;
  2231. export function isTSEntityName(node: object | null | undefined, opts?: object | null): node is TSEntityName;
  2232. export function assertTSEntityName(node: object | null | undefined, opts?: object | null): void;
  2233. export function isTSEnumBody(node: object | null | undefined, opts?: object | null): node is TSEnumBody;
  2234. export function assertTSEnumBody(node: object | null | undefined, opts?: object | null): void;
  2235. export function isTSEnumDeclaration(node: object | null | undefined, opts?: object | null): node is TSEnumDeclaration;
  2236. export function assertTSEnumDeclaration(node: object | null | undefined, opts?: object | null): void;
  2237. export function isTSEnumMember(node: object | null | undefined, opts?: object | null): node is TSEnumMember;
  2238. export function assertTSEnumMember(node: object | null | undefined, opts?: object | null): void;
  2239. export function isTSExportAssignment(node: object | null | undefined, opts?: object | null): node is TSExportAssignment;
  2240. export function assertTSExportAssignment(node: object | null | undefined, opts?: object | null): void;
  2241. export function isTSExpressionWithTypeArguments(node: object | null | undefined, opts?: object | null): node is TSExpressionWithTypeArguments;
  2242. export function assertTSExpressionWithTypeArguments(node: object | null | undefined, opts?: object | null): void;
  2243. export function isTSExternalModuleReference(node: object | null | undefined, opts?: object | null): node is TSExternalModuleReference;
  2244. export function assertTSExternalModuleReference(node: object | null | undefined, opts?: object | null): void;
  2245. export function isTSFunctionType(node: object | null | undefined, opts?: object | null): node is TSFunctionType;
  2246. export function assertTSFunctionType(node: object | null | undefined, opts?: object | null): void;
  2247. export function isTSImportEqualsDeclaration(node: object | null | undefined, opts?: object | null): node is TSImportEqualsDeclaration;
  2248. export function assertTSImportEqualsDeclaration(node: object | null | undefined, opts?: object | null): void;
  2249. export function isTSImportType(node: object | null | undefined, opts?: object | null): node is TSImportType;
  2250. export function assertTSImportType(node: object | null | undefined, opts?: object | null): void;
  2251. export function isTSIndexSignature(node: object | null | undefined, opts?: object | null): node is TSIndexSignature;
  2252. export function assertTSIndexSignature(node: object | null | undefined, opts?: object | null): void;
  2253. export function isTSIndexedAccessType(node: object | null | undefined, opts?: object | null): node is TSIndexedAccessType;
  2254. export function assertTSIndexedAccessType(node: object | null | undefined, opts?: object | null): void;
  2255. export function isTSInferType(node: object | null | undefined, opts?: object | null): node is TSInferType;
  2256. export function assertTSInferType(node: object | null | undefined, opts?: object | null): void;
  2257. export function isTSInstantiationExpression(node: object | null | undefined, opts?: object | null): node is TSInstantiationExpression;
  2258. export function assertTSInstantiationExpression(node: object | null | undefined, opts?: object | null): void;
  2259. export function isTSInterfaceBody(node: object | null | undefined, opts?: object | null): node is TSInterfaceBody;
  2260. export function assertTSInterfaceBody(node: object | null | undefined, opts?: object | null): void;
  2261. export function isTSInterfaceDeclaration(node: object | null | undefined, opts?: object | null): node is TSInterfaceDeclaration;
  2262. export function assertTSInterfaceDeclaration(node: object | null | undefined, opts?: object | null): void;
  2263. export function isTSIntersectionType(node: object | null | undefined, opts?: object | null): node is TSIntersectionType;
  2264. export function assertTSIntersectionType(node: object | null | undefined, opts?: object | null): void;
  2265. export function isTSIntrinsicKeyword(node: object | null | undefined, opts?: object | null): node is TSIntrinsicKeyword;
  2266. export function assertTSIntrinsicKeyword(node: object | null | undefined, opts?: object | null): void;
  2267. export function isTSLiteralType(node: object | null | undefined, opts?: object | null): node is TSLiteralType;
  2268. export function assertTSLiteralType(node: object | null | undefined, opts?: object | null): void;
  2269. export function isTSMappedType(node: object | null | undefined, opts?: object | null): node is TSMappedType;
  2270. export function assertTSMappedType(node: object | null | undefined, opts?: object | null): void;
  2271. export function isTSMethodSignature(node: object | null | undefined, opts?: object | null): node is TSMethodSignature;
  2272. export function assertTSMethodSignature(node: object | null | undefined, opts?: object | null): void;
  2273. export function isTSModuleBlock(node: object | null | undefined, opts?: object | null): node is TSModuleBlock;
  2274. export function assertTSModuleBlock(node: object | null | undefined, opts?: object | null): void;
  2275. export function isTSModuleDeclaration(node: object | null | undefined, opts?: object | null): node is TSModuleDeclaration;
  2276. export function assertTSModuleDeclaration(node: object | null | undefined, opts?: object | null): void;
  2277. export function isTSNamedTupleMember(node: object | null | undefined, opts?: object | null): node is TSNamedTupleMember;
  2278. export function assertTSNamedTupleMember(node: object | null | undefined, opts?: object | null): void;
  2279. export function isTSNamespaceExportDeclaration(node: object | null | undefined, opts?: object | null): node is TSNamespaceExportDeclaration;
  2280. export function assertTSNamespaceExportDeclaration(node: object | null | undefined, opts?: object | null): void;
  2281. export function isTSNeverKeyword(node: object | null | undefined, opts?: object | null): node is TSNeverKeyword;
  2282. export function assertTSNeverKeyword(node: object | null | undefined, opts?: object | null): void;
  2283. export function isTSNonNullExpression(node: object | null | undefined, opts?: object | null): node is TSNonNullExpression;
  2284. export function assertTSNonNullExpression(node: object | null | undefined, opts?: object | null): void;
  2285. export function isTSNullKeyword(node: object | null | undefined, opts?: object | null): node is TSNullKeyword;
  2286. export function assertTSNullKeyword(node: object | null | undefined, opts?: object | null): void;
  2287. export function isTSNumberKeyword(node: object | null | undefined, opts?: object | null): node is TSNumberKeyword;
  2288. export function assertTSNumberKeyword(node: object | null | undefined, opts?: object | null): void;
  2289. export function isTSObjectKeyword(node: object | null | undefined, opts?: object | null): node is TSObjectKeyword;
  2290. export function assertTSObjectKeyword(node: object | null | undefined, opts?: object | null): void;
  2291. export function isTSOptionalType(node: object | null | undefined, opts?: object | null): node is TSOptionalType;
  2292. export function assertTSOptionalType(node: object | null | undefined, opts?: object | null): void;
  2293. export function isTSParameterProperty(node: object | null | undefined, opts?: object | null): node is TSParameterProperty;
  2294. export function assertTSParameterProperty(node: object | null | undefined, opts?: object | null): void;
  2295. export function isTSParenthesizedType(node: object | null | undefined, opts?: object | null): node is TSParenthesizedType;
  2296. export function assertTSParenthesizedType(node: object | null | undefined, opts?: object | null): void;
  2297. export function isTSPropertySignature(node: object | null | undefined, opts?: object | null): node is TSPropertySignature;
  2298. export function assertTSPropertySignature(node: object | null | undefined, opts?: object | null): void;
  2299. export function isTSQualifiedName(node: object | null | undefined, opts?: object | null): node is TSQualifiedName;
  2300. export function assertTSQualifiedName(node: object | null | undefined, opts?: object | null): void;
  2301. export function isTSRestType(node: object | null | undefined, opts?: object | null): node is TSRestType;
  2302. export function assertTSRestType(node: object | null | undefined, opts?: object | null): void;
  2303. export function isTSSatisfiesExpression(node: object | null | undefined, opts?: object | null): node is TSSatisfiesExpression;
  2304. export function assertTSSatisfiesExpression(node: object | null | undefined, opts?: object | null): void;
  2305. export function isTSStringKeyword(node: object | null | undefined, opts?: object | null): node is TSStringKeyword;
  2306. export function assertTSStringKeyword(node: object | null | undefined, opts?: object | null): void;
  2307. export function isTSSymbolKeyword(node: object | null | undefined, opts?: object | null): node is TSSymbolKeyword;
  2308. export function assertTSSymbolKeyword(node: object | null | undefined, opts?: object | null): void;
  2309. export function isTSTemplateLiteralType(node: object | null | undefined, opts?: object | null): node is TSTemplateLiteralType;
  2310. export function assertTSTemplateLiteralType(node: object | null | undefined, opts?: object | null): void;
  2311. export function isTSThisType(node: object | null | undefined, opts?: object | null): node is TSThisType;
  2312. export function assertTSThisType(node: object | null | undefined, opts?: object | null): void;
  2313. export function isTSTupleType(node: object | null | undefined, opts?: object | null): node is TSTupleType;
  2314. export function assertTSTupleType(node: object | null | undefined, opts?: object | null): void;
  2315. export function isTSType(node: object | null | undefined, opts?: object | null): node is TSType;
  2316. export function assertTSType(node: object | null | undefined, opts?: object | null): void;
  2317. export function isTSTypeAliasDeclaration(node: object | null | undefined, opts?: object | null): node is TSTypeAliasDeclaration;
  2318. export function assertTSTypeAliasDeclaration(node: object | null | undefined, opts?: object | null): void;
  2319. export function isTSTypeAnnotation(node: object | null | undefined, opts?: object | null): node is TSTypeAnnotation;
  2320. export function assertTSTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  2321. export function isTSTypeAssertion(node: object | null | undefined, opts?: object | null): node is TSTypeAssertion;
  2322. export function assertTSTypeAssertion(node: object | null | undefined, opts?: object | null): void;
  2323. export function isTSTypeElement(node: object | null | undefined, opts?: object | null): node is TSTypeElement;
  2324. export function assertTSTypeElement(node: object | null | undefined, opts?: object | null): void;
  2325. export function isTSTypeLiteral(node: object | null | undefined, opts?: object | null): node is TSTypeLiteral;
  2326. export function assertTSTypeLiteral(node: object | null | undefined, opts?: object | null): void;
  2327. export function isTSTypeOperator(node: object | null | undefined, opts?: object | null): node is TSTypeOperator;
  2328. export function assertTSTypeOperator(node: object | null | undefined, opts?: object | null): void;
  2329. export function isTSTypeParameter(node: object | null | undefined, opts?: object | null): node is TSTypeParameter;
  2330. export function assertTSTypeParameter(node: object | null | undefined, opts?: object | null): void;
  2331. export function isTSTypeParameterDeclaration(node: object | null | undefined, opts?: object | null): node is TSTypeParameterDeclaration;
  2332. export function assertTSTypeParameterDeclaration(node: object | null | undefined, opts?: object | null): void;
  2333. export function isTSTypeParameterInstantiation(node: object | null | undefined, opts?: object | null): node is TSTypeParameterInstantiation;
  2334. export function assertTSTypeParameterInstantiation(node: object | null | undefined, opts?: object | null): void;
  2335. export function isTSTypePredicate(node: object | null | undefined, opts?: object | null): node is TSTypePredicate;
  2336. export function assertTSTypePredicate(node: object | null | undefined, opts?: object | null): void;
  2337. export function isTSTypeQuery(node: object | null | undefined, opts?: object | null): node is TSTypeQuery;
  2338. export function assertTSTypeQuery(node: object | null | undefined, opts?: object | null): void;
  2339. export function isTSTypeReference(node: object | null | undefined, opts?: object | null): node is TSTypeReference;
  2340. export function assertTSTypeReference(node: object | null | undefined, opts?: object | null): void;
  2341. export function isTSUndefinedKeyword(node: object | null | undefined, opts?: object | null): node is TSUndefinedKeyword;
  2342. export function assertTSUndefinedKeyword(node: object | null | undefined, opts?: object | null): void;
  2343. export function isTSUnionType(node: object | null | undefined, opts?: object | null): node is TSUnionType;
  2344. export function assertTSUnionType(node: object | null | undefined, opts?: object | null): void;
  2345. export function isTSUnknownKeyword(node: object | null | undefined, opts?: object | null): node is TSUnknownKeyword;
  2346. export function assertTSUnknownKeyword(node: object | null | undefined, opts?: object | null): void;
  2347. export function isTSVoidKeyword(node: object | null | undefined, opts?: object | null): node is TSVoidKeyword;
  2348. export function assertTSVoidKeyword(node: object | null | undefined, opts?: object | null): void;
  2349. export function isTaggedTemplateExpression(node: object | null | undefined, opts?: object | null): node is TaggedTemplateExpression;
  2350. export function assertTaggedTemplateExpression(node: object | null | undefined, opts?: object | null): void;
  2351. export function isTemplateElement(node: object | null | undefined, opts?: object | null): node is TemplateElement;
  2352. export function assertTemplateElement(node: object | null | undefined, opts?: object | null): void;
  2353. export function isTemplateLiteral(node: object | null | undefined, opts?: object | null): node is TemplateLiteral;
  2354. export function assertTemplateLiteral(node: object | null | undefined, opts?: object | null): void;
  2355. export function isTerminatorless(node: object | null | undefined, opts?: object | null): node is Terminatorless;
  2356. export function assertTerminatorless(node: object | null | undefined, opts?: object | null): void;
  2357. export function isThisExpression(node: object | null | undefined, opts?: object | null): node is ThisExpression;
  2358. export function assertThisExpression(node: object | null | undefined, opts?: object | null): void;
  2359. export function isThisTypeAnnotation(node: object | null | undefined, opts?: object | null): node is ThisTypeAnnotation;
  2360. export function assertThisTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  2361. export function isThrowStatement(node: object | null | undefined, opts?: object | null): node is ThrowStatement;
  2362. export function assertThrowStatement(node: object | null | undefined, opts?: object | null): void;
  2363. export function isTopicReference(node: object | null | undefined, opts?: object | null): node is TopicReference;
  2364. export function assertTopicReference(node: object | null | undefined, opts?: object | null): void;
  2365. export function isTryStatement(node: object | null | undefined, opts?: object | null): node is TryStatement;
  2366. export function assertTryStatement(node: object | null | undefined, opts?: object | null): void;
  2367. export function isTupleExpression(node: object | null | undefined, opts?: object | null): node is TupleExpression;
  2368. export function assertTupleExpression(node: object | null | undefined, opts?: object | null): void;
  2369. export function isTupleTypeAnnotation(node: object | null | undefined, opts?: object | null): node is TupleTypeAnnotation;
  2370. export function assertTupleTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  2371. export function isTypeAlias(node: object | null | undefined, opts?: object | null): node is TypeAlias;
  2372. export function assertTypeAlias(node: object | null | undefined, opts?: object | null): void;
  2373. export function isTypeAnnotation(node: object | null | undefined, opts?: object | null): node is TypeAnnotation;
  2374. export function assertTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  2375. export function isTypeCastExpression(node: object | null | undefined, opts?: object | null): node is TypeCastExpression;
  2376. export function assertTypeCastExpression(node: object | null | undefined, opts?: object | null): void;
  2377. export function isTypeParameter(node: object | null | undefined, opts?: object | null): node is TypeParameter;
  2378. export function assertTypeParameter(node: object | null | undefined, opts?: object | null): void;
  2379. export function isTypeParameterDeclaration(node: object | null | undefined, opts?: object | null): node is TypeParameterDeclaration;
  2380. export function assertTypeParameterDeclaration(node: object | null | undefined, opts?: object | null): void;
  2381. export function isTypeParameterInstantiation(node: object | null | undefined, opts?: object | null): node is TypeParameterInstantiation;
  2382. export function assertTypeParameterInstantiation(node: object | null | undefined, opts?: object | null): void;
  2383. export function isTypeScript(node: object | null | undefined, opts?: object | null): node is TypeScript;
  2384. export function assertTypeScript(node: object | null | undefined, opts?: object | null): void;
  2385. export function isTypeofTypeAnnotation(node: object | null | undefined, opts?: object | null): node is TypeofTypeAnnotation;
  2386. export function assertTypeofTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  2387. export function isUnaryExpression(node: object | null | undefined, opts?: object | null): node is UnaryExpression;
  2388. export function assertUnaryExpression(node: object | null | undefined, opts?: object | null): void;
  2389. export function isUnaryLike(node: object | null | undefined, opts?: object | null): node is UnaryLike;
  2390. export function assertUnaryLike(node: object | null | undefined, opts?: object | null): void;
  2391. export function isUnionTypeAnnotation(node: object | null | undefined, opts?: object | null): node is UnionTypeAnnotation;
  2392. export function assertUnionTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  2393. export function isUpdateExpression(node: object | null | undefined, opts?: object | null): node is UpdateExpression;
  2394. export function assertUpdateExpression(node: object | null | undefined, opts?: object | null): void;
  2395. export function isUserWhitespacable(node: object | null | undefined, opts?: object | null): node is UserWhitespacable;
  2396. export function assertUserWhitespacable(node: object | null | undefined, opts?: object | null): void;
  2397. export function isV8IntrinsicIdentifier(node: object | null | undefined, opts?: object | null): node is V8IntrinsicIdentifier;
  2398. export function assertV8IntrinsicIdentifier(node: object | null | undefined, opts?: object | null): void;
  2399. export function isVariableDeclaration(node: object | null | undefined, opts?: object | null): node is VariableDeclaration;
  2400. export function assertVariableDeclaration(node: object | null | undefined, opts?: object | null): void;
  2401. export function isVariableDeclarator(node: object | null | undefined, opts?: object | null): node is VariableDeclarator;
  2402. export function assertVariableDeclarator(node: object | null | undefined, opts?: object | null): void;
  2403. export function isVariance(node: object | null | undefined, opts?: object | null): node is Variance;
  2404. export function assertVariance(node: object | null | undefined, opts?: object | null): void;
  2405. export function isVoidTypeAnnotation(node: object | null | undefined, opts?: object | null): node is VoidTypeAnnotation;
  2406. export function assertVoidTypeAnnotation(node: object | null | undefined, opts?: object | null): void;
  2407. export function isWhile(node: object | null | undefined, opts?: object | null): node is While;
  2408. export function assertWhile(node: object | null | undefined, opts?: object | null): void;
  2409. export function isWhileStatement(node: object | null | undefined, opts?: object | null): node is WhileStatement;
  2410. export function assertWhileStatement(node: object | null | undefined, opts?: object | null): void;
  2411. export function isWithStatement(node: object | null | undefined, opts?: object | null): node is WithStatement;
  2412. export function assertWithStatement(node: object | null | undefined, opts?: object | null): void;
  2413. export function isYieldExpression(node: object | null | undefined, opts?: object | null): node is YieldExpression;
  2414. export function assertYieldExpression(node: object | null | undefined, opts?: object | null): void;
  2415. export function assertNode(obj: any): void
  2416. export function createTypeAnnotationBasedOnTypeof(type: 'string' | 'number' | 'undefined' | 'boolean' | 'function' | 'object' | 'symbol'): StringTypeAnnotation | VoidTypeAnnotation | NumberTypeAnnotation | BooleanTypeAnnotation | GenericTypeAnnotation
  2417. export function createUnionTypeAnnotation<T extends FlowType>(types: [T]): T
  2418. export function createFlowUnionType<T extends FlowType>(types: [T]): T
  2419. export function createUnionTypeAnnotation(types: ReadonlyArray<FlowType>): UnionTypeAnnotation
  2420. export function createFlowUnionType(types: ReadonlyArray<FlowType>): UnionTypeAnnotation
  2421. export function buildChildren(node: { children: ReadonlyArray<JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment | JSXEmptyExpression> }): JSXElement['children']
  2422. export function clone<T extends Node>(n: T): T;
  2423. export function cloneDeep<T extends Node>(n: T): T;
  2424. export function cloneDeepWithoutLoc<T extends Node>(n: T): T;
  2425. export function cloneNode<T extends Node>(n: T, deep?: boolean, withoutLoc?: boolean): T;
  2426. export function cloneWithoutLoc<T extends Node>(n: T): T;
  2427. export type CommentTypeShorthand = 'leading' | 'inner' | 'trailing'
  2428. export function addComment<T extends Node>(node: T, type: CommentTypeShorthand, content: string, line?: boolean): T
  2429. export function addComments<T extends Node>(node: T, type: CommentTypeShorthand, comments: ReadonlyArray<Comment>): T
  2430. export function inheritInnerComments(node: Node, parent: Node): void
  2431. export function inheritLeadingComments(node: Node, parent: Node): void
  2432. export function inheritsComments<T extends Node>(node: T, parent: Node): void
  2433. export function inheritTrailingComments(node: Node, parent: Node): void
  2434. export function removeComments<T extends Node>(node: T): T
  2435. export function ensureBlock(node: Extract<Node, { body: BlockStatement | Statement | Expression }>): BlockStatement
  2436. export function ensureBlock<K extends keyof Extract<Node, { body: BlockStatement | Statement | Expression }> = 'body'>(node: Extract<Node, Record<K, BlockStatement | Statement | Expression>>, key: K): BlockStatement
  2437. export function toBindingIdentifierName(name: { toString(): string } | null | undefined): string
  2438. export function toBlock(node: Statement | Expression, parent?: Function | null): BlockStatement
  2439. export function toComputedKey<T extends Extract<Node, { computed: boolean | null }>>(node: T, key?: Expression | Identifier): Expression
  2440. export function toExpression(node: Function): FunctionExpression
  2441. export function toExpression(node: Class): ClassExpression
  2442. export function toExpression(node: ExpressionStatement | Expression | Class | Function): Expression
  2443. export function toIdentifier(name: { toString(): string } | null | undefined): string
  2444. export function toKeyAlias(node: Method | Property, key?: Node): string
  2445. export function toSequenceExpression(nodes: ReadonlyArray<Node>, scope: { push(value: { id: LVal; kind: 'var'; init?: Expression}): void; buildUndefinedNode(): Node }): SequenceExpression | undefined
  2446. export function toStatement(node: AssignmentExpression, ignore?: boolean): ExpressionStatement
  2447. export function toStatement(node: Statement | AssignmentExpression, ignore?: boolean): Statement
  2448. export function toStatement(node: Class, ignore: true): ClassDeclaration | undefined
  2449. export function toStatement(node: Class, ignore?: boolean): ClassDeclaration
  2450. export function toStatement(node: Function, ignore: true): FunctionDeclaration | undefined
  2451. export function toStatement(node: Function, ignore?: boolean): FunctionDeclaration
  2452. export function toStatement(node: Statement | Class | Function | AssignmentExpression, ignore: true): Statement | undefined
  2453. export function toStatement(node: Statement | Class | Function | AssignmentExpression, ignore?: boolean): Statement
  2454. export function valueToNode(value: undefined): Identifier
  2455. export function valueToNode(value: boolean): BooleanLiteral
  2456. export function valueToNode(value: null): NullLiteral
  2457. export function valueToNode(value: string): StringLiteral
  2458. export function valueToNode(value: number): NumericLiteral | BinaryExpression | UnaryExpression
  2459. export function valueToNode(value: RegExp): RegExpLiteral
  2460. export function valueToNode(value: ReadonlyArray<undefined | boolean | null | string | number | RegExp | object>): ArrayExpression
  2461. export function valueToNode(value: object): ObjectExpression
  2462. export function valueToNode(value: undefined | boolean | null | string | number | RegExp | object): Expression
  2463. export function removeTypeDuplicates(types: ReadonlyArray<FlowType | false | null | undefined>): FlowType[]
  2464. export function appendToMemberExpression<T extends Pick<MemberExpression, 'object' | 'property'>>(member: T, append: MemberExpression['property'], computed?: boolean): T
  2465. export function inherits<T extends Node | null | undefined>(child: T, parent: Node | null | undefined): T
  2466. export function prependToMemberExpression<T extends Pick<MemberExpression, 'object' | 'property'>>(member: T, prepend: MemberExpression['object']): T
  2467. export function removeProperties(
  2468. n: Node,
  2469. opts?: { preserveComments: boolean } | null
  2470. ): void;
  2471. export function removePropertiesDeep<T extends Node>(
  2472. n: T,
  2473. opts?: { preserveComments: boolean } | null
  2474. ): T;
  2475. export function getBindingIdentifiers(node: Node, duplicates: true, outerOnly?: boolean): Record<string, Array<Identifier>>
  2476. export function getBindingIdentifiers(node: Node, duplicates?: false, outerOnly?: boolean): Record<string, Identifier>
  2477. export function getBindingIdentifiers(node: Node, duplicates: boolean, outerOnly?: boolean): Record<string, Identifier | Array<Identifier>>
  2478. export function getOuterBindingIdentifiers(node: Node, duplicates: true): Record<string, Array<Identifier>>
  2479. export function getOuterBindingIdentifiers(node: Node, duplicates?: false): Record<string, Identifier>
  2480. export function getOuterBindingIdentifiers(node: Node, duplicates: boolean): Record<string, Identifier | Array<Identifier>>
  2481. export type TraversalAncestors = ReadonlyArray<{
  2482. node: Node,
  2483. key: string,
  2484. index?: number,
  2485. }>;
  2486. export type TraversalHandler<T> = (
  2487. this: undefined, node: Node, parent: TraversalAncestors, type: T
  2488. ) => void;
  2489. export type TraversalHandlers<T> = {
  2490. enter?: TraversalHandler<T>,
  2491. exit?: TraversalHandler<T>,
  2492. };
  2493. export function traverse<T>(n: Node, h: TraversalHandler<T> | TraversalHandlers<T>, state?: T): void;
  2494. export function traverseFast<T>(n: Node, h: TraversalHandler<T>, state?: T): void;
  2495. export function shallowEqual<T extends object>(actual: object, expected: T): actual is T
  2496. export function buildMatchMemberExpression(match: string, allowPartial?: boolean): (node: Node | null | undefined) => node is MemberExpression
  2497. export function is<T extends Node['type']>(type: T, n: Node | null | undefined, required?: undefined): n is Extract<Node, { type: T }>
  2498. export function is<T extends Node['type'], P extends Extract<Node, { type: T }>>(type: T, n: Node | null | undefined, required: Partial<P>): n is P
  2499. export function is<P extends Node>(type: string, n: Node | null | undefined, required: Partial<P>): n is P
  2500. export function is(type: string, n: Node | null | undefined, required?: Partial<Node>): n is Node
  2501. export function isBinding(node: Node, parent: Node, grandparent?: Node): boolean
  2502. export function isBlockScoped(node: Node): node is FunctionDeclaration | ClassDeclaration | VariableDeclaration
  2503. export function isImmutable(node: Node): node is Immutable
  2504. export function isLet(node: Node): node is VariableDeclaration
  2505. export function isNode(node: object | null | undefined): node is Node
  2506. export function isNodesEquivalent<T extends Partial<Node>>(a: T, b: any): b is T
  2507. export function isNodesEquivalent(a: any, b: any): boolean
  2508. export function isPlaceholderType(placeholderType: Node['type'], targetType: Node['type']): boolean
  2509. export function isReferenced(node: Node, parent: Node, grandparent?: Node): boolean
  2510. export function isScope(node: Node, parent: Node): node is Scopable
  2511. export function isSpecifierDefault(specifier: ModuleSpecifier): boolean
  2512. export function isType<T extends Node['type']>(nodetype: string, targetType: T): nodetype is T
  2513. export function isType(nodetype: string | null | undefined, targetType: string): boolean
  2514. export function isValidES3Identifier(name: string): boolean
  2515. export function isValidIdentifier(name: string): boolean
  2516. export function isVar(node: Node): node is VariableDeclaration
  2517. export function matchesPattern(node: Node | null | undefined, match: string | ReadonlyArray<string>, allowPartial?: boolean): node is MemberExpression
  2518. export function validate<T extends Node, K extends keyof T>(n: Node | null | undefined, key: K, value: T[K]): void;
  2519. export function validate(n: Node, key: string, value: any): void;