Software zum Installieren eines Smart-Mirror Frameworks , zum Nutzen von hochschulrelevanten Informationen, auf einem Raspberry-Pi.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index-legacy.d.ts 156KB

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