Best Python code snippet using yandex-tank
types.js
Source:types.js
1/**2 * @flow3 */4'use strict';5/*6 * Flow types for the Babylon AST.7 */8// Abstract types. Something must extend these.9export type Comment = {10 type: 'CommentLine';11 _CommentLine: void;12 value: string;13 end: number;14 loc: {15 end: {column: number, line: number},16 start: {column: number, line: number},17 };18 start: number;19} | {20 type: 'CommentBlock';21 _CommentBlock: void;22 value: string;23 end: number;24 loc: {25 end: {column: number, line: number},26 start: {column: number, line: number},27 };28 start: number;29};30export type Declaration = {31 type: 'ClassBody';32 _ClassBody: void;33 body: Array<Node>;34 end: number;35 innerComments: ?Array<Comment>;36 leadingComments: ?Array<Comment>;37 loc: {38 end: {column: number, line: number},39 start: {column: number, line: number},40 };41 start: number;42 trailingComments: ?Array<Comment>;43} | {44 type: 'ClassDeclaration';45 _ClassDeclaration: void;46 body: ClassBody;47 id: ?Identifier;48 superClass: ?Expression;49 decorators: any;50 superTypeParameters: any;51 typeParameters: any;52 end: number;53 innerComments: ?Array<Comment>;54 leadingComments: ?Array<Comment>;55 loc: {56 end: {column: number, line: number},57 start: {column: number, line: number},58 };59 start: number;60 trailingComments: ?Array<Comment>;61} | {62 type: 'FunctionDeclaration';63 _FunctionDeclaration: void;64 body: BlockStatement;65 id: Identifier;66 end: number;67 innerComments: ?Array<Comment>;68 leadingComments: ?Array<Comment>;69 loc: {70 end: {column: number, line: number},71 start: {column: number, line: number},72 };73 start: number;74 trailingComments: ?Array<Comment>;75 async: boolean;76 defaults: Array<?Expression>;77 expression: boolean;78 generator: boolean;79 params: Array<Pattern>;80 rest: ?Identifier;81 returnType: ?TypeAnnotation;82 typeParameters: ?TypeParameterDeclaration;83} | {84 type: 'MethodDefinition';85 _MethodDefinition: void;86 computed: boolean;87 key: Node;88 kind: 'constructor' | 'method' | 'get' | 'set';89 static: boolean;90 value: FunctionExpression;91 decorators: ?Array<Decorator>;92 end: number;93 innerComments: ?Array<Comment>;94 leadingComments: ?Array<Comment>;95 loc: {96 end: {column: number, line: number},97 start: {column: number, line: number},98 };99 start: number;100 trailingComments: ?Array<Comment>;101} | {102 type: 'VariableDeclaration';103 _VariableDeclaration: void;104 declarations: Array<VariableDeclarator>;105 kind: 'var' | 'let' | 'const';106 end: number;107 innerComments: ?Array<Comment>;108 leadingComments: ?Array<Comment>;109 loc: {110 end: {column: number, line: number},111 start: {column: number, line: number},112 };113 start: number;114 trailingComments: ?Array<Comment>;115} | {116 type: 'ClassProperty';117 _ClassProperty: void;118 computed: boolean;119 key: Node;120 static: boolean;121 typeAnnotation: ?TypeAnnotation;122 value: ?Expression;123 decorators: Array<Decorator>;124 end: number;125 innerComments: ?Array<Comment>;126 leadingComments: ?Array<Comment>;127 loc: {128 end: {column: number, line: number},129 start: {column: number, line: number},130 };131 start: number;132 trailingComments: ?Array<Comment>;133};134export type Expression = {135 type: 'ArrayExpression';136 _ArrayExpression: void;137 elements: Array<?Node>;138 end: number;139 innerComments: ?Array<Comment>;140 leadingComments: ?Array<Comment>;141 loc: {142 end: {column: number, line: number},143 start: {column: number, line: number},144 };145 start: number;146 trailingComments: ?Array<Comment>;147} | {148 type: 'AssignmentExpression';149 _AssignmentExpression: void;150 left: Pattern;151 operator: AssignmentOperator;152 right: Expression;153 end: number;154 innerComments: ?Array<Comment>;155 leadingComments: ?Array<Comment>;156 loc: {157 end: {column: number, line: number},158 start: {column: number, line: number},159 };160 start: number;161 trailingComments: ?Array<Comment>;162} | {163 type: 'AwaitExpression';164 _AwaitExpression: void;165 all: boolean;166 argument: ?Expression;167 end: number;168 innerComments: ?Array<Comment>;169 leadingComments: ?Array<Comment>;170 loc: {171 end: {column: number, line: number},172 start: {column: number, line: number},173 };174 start: number;175 trailingComments: ?Array<Comment>;176} | {177 type: 'BinaryExpression';178 _BinaryExpression: void;179 left: Expression;180 operator: BinaryOperator;181 right: Expression;182 end: number;183 innerComments: ?Array<Comment>;184 leadingComments: ?Array<Comment>;185 loc: {186 end: {column: number, line: number},187 start: {column: number, line: number},188 };189 start: number;190 trailingComments: ?Array<Comment>;191} | {192 type: 'BindExpression';193 _BindExpression: void;194 callee: Node;195 object: Node;196 end: number;197 innerComments: ?Array<Comment>;198 leadingComments: ?Array<Comment>;199 loc: {200 end: {column: number, line: number},201 start: {column: number, line: number},202 };203 start: number;204 trailingComments: ?Array<Comment>;205} | {206 type: 'CallExpression';207 _CallExpression: void;208 arguments: Array<Node>;209 callee: Expression;210 end: number;211 innerComments: ?Array<Comment>;212 leadingComments: ?Array<Comment>;213 loc: {214 end: {column: number, line: number},215 start: {column: number, line: number},216 };217 start: number;218 trailingComments: ?Array<Comment>;219} | {220 type: 'ClassExpression';221 _ClassExpression: void;222 body: ClassBody;223 id: ?Identifier;224 superClass: ?Expression;225 decorators: any;226 superTypeParameters: any;227 typeParameters: any;228 end: number;229 innerComments: ?Array<Comment>;230 leadingComments: ?Array<Comment>;231 loc: {232 end: {column: number, line: number},233 start: {column: number, line: number},234 };235 start: number;236 trailingComments: ?Array<Comment>;237} | {238 type: 'ComprehensionExpression';239 _ComprehensionExpression: void;240 body: Expression;241 blocks: Array<ComprehensionBlock>;242 filter: ?Expression;243 end: number;244 innerComments: ?Array<Comment>;245 leadingComments: ?Array<Comment>;246 loc: {247 end: {column: number, line: number},248 start: {column: number, line: number},249 };250 start: number;251 trailingComments: ?Array<Comment>;252} | {253 type: 'ConditionalExpression';254 _ConditionalExpression: void;255 alternate: Expression;256 consequent: Expression;257 test: Expression;258 end: number;259 innerComments: ?Array<Comment>;260 leadingComments: ?Array<Comment>;261 loc: {262 end: {column: number, line: number},263 start: {column: number, line: number},264 };265 start: number;266 trailingComments: ?Array<Comment>;267} | {268 type: 'DoExpression';269 _DoExpression: void;270 body: Statement;271 end: number;272 innerComments: ?Array<Comment>;273 leadingComments: ?Array<Comment>;274 loc: {275 end: {column: number, line: number},276 start: {column: number, line: number},277 };278 start: number;279 trailingComments: ?Array<Comment>;280} | {281 type: 'FunctionExpression';282 _FunctionExpression: void;283 body: BlockStatement;284 id: ?Identifier;285 end: number;286 innerComments: ?Array<Comment>;287 leadingComments: ?Array<Comment>;288 loc: {289 end: {column: number, line: number},290 start: {column: number, line: number},291 };292 start: number;293 trailingComments: ?Array<Comment>;294 async: boolean;295 defaults: Array<?Expression>;296 expression: boolean;297 generator: boolean;298 params: Array<Pattern>;299 rest: ?Identifier;300 returnType: ?TypeAnnotation;301 typeParameters: ?TypeParameterDeclaration;302} | {303 type: 'Identifier';304 _Identifier: void;305 name: string;306 typeAnnotation: ?TypeAnnotation;307 end: number;308 innerComments: ?Array<Comment>;309 leadingComments: ?Array<Comment>;310 loc: {311 end: {column: number, line: number},312 start: {column: number, line: number},313 };314 start: number;315 trailingComments: ?Array<Comment>;316} | {317 type: 'Literal';318 _Literal: void;319 raw: string;320 regex: ?{pattern: string, flags: string};321 value: ?(string | boolean | number | RegExp);322 end: number;323 innerComments: ?Array<Comment>;324 leadingComments: ?Array<Comment>;325 loc: {326 end: {column: number, line: number},327 start: {column: number, line: number},328 };329 start: number;330 trailingComments: ?Array<Comment>;331} | {332 type: 'LogicalExpression';333 _LogicalExpression: void;334 left: Expression;335 operator: LogicalOperator;336 right: Expression;337 end: number;338 innerComments: ?Array<Comment>;339 leadingComments: ?Array<Comment>;340 loc: {341 end: {column: number, line: number},342 start: {column: number, line: number},343 };344 start: number;345 trailingComments: ?Array<Comment>;346} | {347 type: 'MemberExpression';348 _MemberExpression: void;349 computed: boolean;350 object: Expression;351 property: Node;352 end: number;353 innerComments: ?Array<Comment>;354 leadingComments: ?Array<Comment>;355 loc: {356 end: {column: number, line: number},357 start: {column: number, line: number},358 };359 start: number;360 trailingComments: ?Array<Comment>;361} | {362 type: 'NewExpression';363 _NewExpression: void;364 arguments: Array<Node>;365 callee: Expression;366 end: number;367 innerComments: ?Array<Comment>;368 leadingComments: ?Array<Comment>;369 loc: {370 end: {column: number, line: number},371 start: {column: number, line: number},372 };373 start: number;374 trailingComments: ?Array<Comment>;375} | {376 type: 'ObjectExpression';377 _ObjectExpression: void;378 properties: Array<Node>;379 end: number;380 innerComments: ?Array<Comment>;381 leadingComments: ?Array<Comment>;382 loc: {383 end: {column: number, line: number},384 start: {column: number, line: number},385 };386 start: number;387 trailingComments: ?Array<Comment>;388} | {389 type: 'SequenceExpression';390 _SequenceExpression: void;391 expression: Array<Expression>;392 end: number;393 innerComments: ?Array<Comment>;394 leadingComments: ?Array<Comment>;395 loc: {396 end: {column: number, line: number},397 start: {column: number, line: number},398 };399 start: number;400 trailingComments: ?Array<Comment>;401} | {402 type: 'TaggedTemplateExpression';403 _TaggedTemplateExpression: void;404 quasi: TemplateLiteral;405 tag: Expression;406 end: number;407 innerComments: ?Array<Comment>;408 leadingComments: ?Array<Comment>;409 loc: {410 end: {column: number, line: number},411 start: {column: number, line: number},412 };413 start: number;414 trailingComments: ?Array<Comment>;415} | {416 type: 'TemplateLiteral';417 _TemplateLiteral: void;418 expressions: Array<Expression>;419 quasis: Array<TemplateElement>;420 end: number;421 innerComments: ?Array<Comment>;422 leadingComments: ?Array<Comment>;423 loc: {424 end: {column: number, line: number},425 start: {column: number, line: number},426 };427 start: number;428 trailingComments: ?Array<Comment>;429} | {430 type: 'ThisExpression';431 _ThisExpression: void;432 end: number;433 innerComments: ?Array<Comment>;434 leadingComments: ?Array<Comment>;435 loc: {436 end: {column: number, line: number},437 start: {column: number, line: number},438 };439 start: number;440 trailingComments: ?Array<Comment>;441} | {442 type: 'UnaryExpression';443 _UnaryExpression: void;444 argument: Expression;445 operator: UnaryOperator;446 prefix: true;447 end: number;448 innerComments: ?Array<Comment>;449 leadingComments: ?Array<Comment>;450 loc: {451 end: {column: number, line: number},452 start: {column: number, line: number},453 };454 start: number;455 trailingComments: ?Array<Comment>;456} | {457 type: 'UpdateExpression';458 _UpdateExpression: void;459 argument: Expression;460 operator: UpdateOperator;461 prefix: boolean;462 end: number;463 innerComments: ?Array<Comment>;464 leadingComments: ?Array<Comment>;465 loc: {466 end: {column: number, line: number},467 start: {column: number, line: number},468 };469 start: number;470 trailingComments: ?Array<Comment>;471} | {472 type: 'YieldExpression';473 _YieldExpression: void;474 argument: ?Expression;475 delegate: boolean;476 end: number;477 innerComments: ?Array<Comment>;478 leadingComments: ?Array<Comment>;479 loc: {480 end: {column: number, line: number},481 start: {column: number, line: number},482 };483 start: number;484 trailingComments: ?Array<Comment>;485} | {486 type: 'TypeCastExpression';487 _TypeCastExpression: void;488 expression: Expression;489 typeAnnotation: TypeAnnotation;490 end: number;491 innerComments: ?Array<Comment>;492 leadingComments: ?Array<Comment>;493 loc: {494 end: {column: number, line: number},495 start: {column: number, line: number},496 };497 start: number;498 trailingComments: ?Array<Comment>;499} | {500 type: 'JSXElement';501 _JSXElement: void;502 children: Array<Node>;503 closingElement: ?JSXClosingElement;504 openingElement: JSXOpeningElement;505 end: number;506 innerComments: ?Array<Comment>;507 leadingComments: ?Array<Comment>;508 loc: {509 end: {column: number, line: number},510 start: {column: number, line: number},511 };512 start: number;513 trailingComments: ?Array<Comment>;514} | {515 type: 'JSXEmptyExpression';516 _JSXEmptyExpression: void;517 end: number;518 innerComments: ?Array<Comment>;519 leadingComments: ?Array<Comment>;520 loc: {521 end: {column: number, line: number},522 start: {column: number, line: number},523 };524 start: number;525 trailingComments: ?Array<Comment>;526} | {527 type: 'JSXExpressionContainer';528 _JSXExpressionContainer: void;529 expression: Expression;530 end: number;531 innerComments: ?Array<Comment>;532 leadingComments: ?Array<Comment>;533 loc: {534 end: {column: number, line: number},535 start: {column: number, line: number},536 };537 start: number;538 trailingComments: ?Array<Comment>;539} | {540 type: 'JSXMemberExpression';541 _JSXMemberExpression: void;542 computed: boolean;543 object: Node;544 property: JSXIdentifier;545 end: number;546 innerComments: ?Array<Comment>;547 leadingComments: ?Array<Comment>;548 loc: {549 end: {column: number, line: number},550 start: {column: number, line: number},551 };552 start: number;553 trailingComments: ?Array<Comment>;554};555export type Function = {556 type: 'ArrowFunctionExpression';557 _ArrowFunctionExpression: void;558 body: Node;559 id: ?Identifier;560 end: number;561 innerComments: ?Array<Comment>;562 leadingComments: ?Array<Comment>;563 loc: {564 end: {column: number, line: number},565 start: {column: number, line: number},566 };567 start: number;568 trailingComments: ?Array<Comment>;569 async: boolean;570 defaults: Array<?Expression>;571 expression: boolean;572 generator: boolean;573 params: Array<Pattern>;574 rest: ?Identifier;575 returnType: ?TypeAnnotation;576 typeParameters: ?TypeParameterDeclaration;577} | {578 type: 'FunctionDeclaration';579 _FunctionDeclaration: void;580 body: BlockStatement;581 id: Identifier;582 end: number;583 innerComments: ?Array<Comment>;584 leadingComments: ?Array<Comment>;585 loc: {586 end: {column: number, line: number},587 start: {column: number, line: number},588 };589 start: number;590 trailingComments: ?Array<Comment>;591 async: boolean;592 defaults: Array<?Expression>;593 expression: boolean;594 generator: boolean;595 params: Array<Pattern>;596 rest: ?Identifier;597 returnType: ?TypeAnnotation;598 typeParameters: ?TypeParameterDeclaration;599} | {600 type: 'FunctionExpression';601 _FunctionExpression: void;602 body: BlockStatement;603 id: ?Identifier;604 end: number;605 innerComments: ?Array<Comment>;606 leadingComments: ?Array<Comment>;607 loc: {608 end: {column: number, line: number},609 start: {column: number, line: number},610 };611 start: number;612 trailingComments: ?Array<Comment>;613 async: boolean;614 defaults: Array<?Expression>;615 expression: boolean;616 generator: boolean;617 params: Array<Pattern>;618 rest: ?Identifier;619 returnType: ?TypeAnnotation;620 typeParameters: ?TypeParameterDeclaration;621};622export type Node = {623 type: 'ArrayExpression';624 _ArrayExpression: void;625 elements: Array<?Node>;626 end: number;627 innerComments: ?Array<Comment>;628 leadingComments: ?Array<Comment>;629 loc: {630 end: {column: number, line: number},631 start: {column: number, line: number},632 };633 start: number;634 trailingComments: ?Array<Comment>;635} | {636 type: 'ArrayPattern';637 _ArrayPattern: void;638 elements: Array<?Node>;639 typeAnnotation: ?TypeAnnotation;640 end: number;641 innerComments: ?Array<Comment>;642 leadingComments: ?Array<Comment>;643 loc: {644 end: {column: number, line: number},645 start: {column: number, line: number},646 };647 start: number;648 trailingComments: ?Array<Comment>;649} | {650 type: 'ArrowFunctionExpression';651 _ArrowFunctionExpression: void;652 body: Node;653 id: ?Identifier;654 end: number;655 innerComments: ?Array<Comment>;656 leadingComments: ?Array<Comment>;657 loc: {658 end: {column: number, line: number},659 start: {column: number, line: number},660 };661 start: number;662 trailingComments: ?Array<Comment>;663 async: boolean;664 defaults: Array<?Expression>;665 expression: boolean;666 generator: boolean;667 params: Array<Pattern>;668 rest: ?Identifier;669 returnType: ?TypeAnnotation;670 typeParameters: ?TypeParameterDeclaration;671} | {672 type: 'AssignmentExpression';673 _AssignmentExpression: void;674 left: Pattern;675 operator: AssignmentOperator;676 right: Expression;677 end: number;678 innerComments: ?Array<Comment>;679 leadingComments: ?Array<Comment>;680 loc: {681 end: {column: number, line: number},682 start: {column: number, line: number},683 };684 start: number;685 trailingComments: ?Array<Comment>;686} | {687 type: 'AssignmentPattern';688 _AssignmentPattern: void;689 left: Pattern;690 right: Expression;691 end: number;692 innerComments: ?Array<Comment>;693 leadingComments: ?Array<Comment>;694 loc: {695 end: {column: number, line: number},696 start: {column: number, line: number},697 };698 start: number;699 trailingComments: ?Array<Comment>;700} | {701 type: 'AwaitExpression';702 _AwaitExpression: void;703 all: boolean;704 argument: ?Expression;705 end: number;706 innerComments: ?Array<Comment>;707 leadingComments: ?Array<Comment>;708 loc: {709 end: {column: number, line: number},710 start: {column: number, line: number},711 };712 start: number;713 trailingComments: ?Array<Comment>;714} | {715 type: 'BinaryExpression';716 _BinaryExpression: void;717 left: Expression;718 operator: BinaryOperator;719 right: Expression;720 end: number;721 innerComments: ?Array<Comment>;722 leadingComments: ?Array<Comment>;723 loc: {724 end: {column: number, line: number},725 start: {column: number, line: number},726 };727 start: number;728 trailingComments: ?Array<Comment>;729} | {730 type: 'BindExpression';731 _BindExpression: void;732 callee: Node;733 object: Node;734 end: number;735 innerComments: ?Array<Comment>;736 leadingComments: ?Array<Comment>;737 loc: {738 end: {column: number, line: number},739 start: {column: number, line: number},740 };741 start: number;742 trailingComments: ?Array<Comment>;743} | {744 type: 'BlockStatement';745 _BlockStatement: void;746 body: Array<Statement>;747 end: number;748 innerComments: ?Array<Comment>;749 leadingComments: ?Array<Comment>;750 loc: {751 end: {column: number, line: number},752 start: {column: number, line: number},753 };754 start: number;755 trailingComments: ?Array<Comment>;756} | {757 type: 'BreakStatement';758 _BreakStatement: void;759 label: ?Identifier;760 end: number;761 innerComments: ?Array<Comment>;762 leadingComments: ?Array<Comment>;763 loc: {764 end: {column: number, line: number},765 start: {column: number, line: number},766 };767 start: number;768 trailingComments: ?Array<Comment>;769} | {770 type: 'CallExpression';771 _CallExpression: void;772 arguments: Array<Node>;773 callee: Expression;774 end: number;775 innerComments: ?Array<Comment>;776 leadingComments: ?Array<Comment>;777 loc: {778 end: {column: number, line: number},779 start: {column: number, line: number},780 };781 start: number;782 trailingComments: ?Array<Comment>;783} | {784 type: 'CatchClause';785 _CatchClause: void;786 body: BlockStatement;787 param: Pattern;788 end: number;789 innerComments: ?Array<Comment>;790 leadingComments: ?Array<Comment>;791 loc: {792 end: {column: number, line: number},793 start: {column: number, line: number},794 };795 start: number;796 trailingComments: ?Array<Comment>;797} | {798 type: 'ClassBody';799 _ClassBody: void;800 body: Array<Node>;801 end: number;802 innerComments: ?Array<Comment>;803 leadingComments: ?Array<Comment>;804 loc: {805 end: {column: number, line: number},806 start: {column: number, line: number},807 };808 start: number;809 trailingComments: ?Array<Comment>;810} | {811 type: 'ClassDeclaration';812 _ClassDeclaration: void;813 body: ClassBody;814 id: ?Identifier;815 superClass: ?Expression;816 decorators: any;817 superTypeParameters: any;818 typeParameters: any;819 end: number;820 innerComments: ?Array<Comment>;821 leadingComments: ?Array<Comment>;822 loc: {823 end: {column: number, line: number},824 start: {column: number, line: number},825 };826 start: number;827 trailingComments: ?Array<Comment>;828} | {829 type: 'ClassExpression';830 _ClassExpression: void;831 body: ClassBody;832 id: ?Identifier;833 superClass: ?Expression;834 decorators: any;835 superTypeParameters: any;836 typeParameters: any;837 end: number;838 innerComments: ?Array<Comment>;839 leadingComments: ?Array<Comment>;840 loc: {841 end: {column: number, line: number},842 start: {column: number, line: number},843 };844 start: number;845 trailingComments: ?Array<Comment>;846} | {847 type: 'ComprehensionBlock';848 _ComprehensionBlock: void;849 each: boolean;850 left: Pattern;851 right: Expression;852 end: number;853 innerComments: ?Array<Comment>;854 leadingComments: ?Array<Comment>;855 loc: {856 end: {column: number, line: number},857 start: {column: number, line: number},858 };859 start: number;860 trailingComments: ?Array<Comment>;861} | {862 type: 'ComprehensionExpression';863 _ComprehensionExpression: void;864 body: Expression;865 blocks: Array<ComprehensionBlock>;866 filter: ?Expression;867 end: number;868 innerComments: ?Array<Comment>;869 leadingComments: ?Array<Comment>;870 loc: {871 end: {column: number, line: number},872 start: {column: number, line: number},873 };874 start: number;875 trailingComments: ?Array<Comment>;876} | {877 type: 'ConditionalExpression';878 _ConditionalExpression: void;879 alternate: Expression;880 consequent: Expression;881 test: Expression;882 end: number;883 innerComments: ?Array<Comment>;884 leadingComments: ?Array<Comment>;885 loc: {886 end: {column: number, line: number},887 start: {column: number, line: number},888 };889 start: number;890 trailingComments: ?Array<Comment>;891} | {892 type: 'ContinueStatement';893 _ContinueStatement: void;894 label: ?Identifier;895 end: number;896 innerComments: ?Array<Comment>;897 leadingComments: ?Array<Comment>;898 loc: {899 end: {column: number, line: number},900 start: {column: number, line: number},901 };902 start: number;903 trailingComments: ?Array<Comment>;904} | {905 type: 'Decorator';906 _Decorator: void;907 expression: Expression;908 end: number;909 innerComments: ?Array<Comment>;910 leadingComments: ?Array<Comment>;911 loc: {912 end: {column: number, line: number},913 start: {column: number, line: number},914 };915 start: number;916 trailingComments: ?Array<Comment>;917} | {918 type: 'DebuggerStatement';919 _DebuggerStatement: void;920 end: number;921 innerComments: ?Array<Comment>;922 leadingComments: ?Array<Comment>;923 loc: {924 end: {column: number, line: number},925 start: {column: number, line: number},926 };927 start: number;928 trailingComments: ?Array<Comment>;929} | {930 type: 'DoWhileStatement';931 _DoWhileStatement: void;932 body: Statement;933 test: Expression;934 end: number;935 innerComments: ?Array<Comment>;936 leadingComments: ?Array<Comment>;937 loc: {938 end: {column: number, line: number},939 start: {column: number, line: number},940 };941 start: number;942 trailingComments: ?Array<Comment>;943} | {944 type: 'DoExpression';945 _DoExpression: void;946 body: Statement;947 end: number;948 innerComments: ?Array<Comment>;949 leadingComments: ?Array<Comment>;950 loc: {951 end: {column: number, line: number},952 start: {column: number, line: number},953 };954 start: number;955 trailingComments: ?Array<Comment>;956} | {957 type: 'EmptyStatement';958 _EmptyStatement: void;959 end: number;960 innerComments: ?Array<Comment>;961 leadingComments: ?Array<Comment>;962 loc: {963 end: {column: number, line: number},964 start: {column: number, line: number},965 };966 start: number;967 trailingComments: ?Array<Comment>;968} | {969 type: 'ExpressionStatement';970 _ExpressionStatement: void;971 expression: Expression;972 end: number;973 innerComments: ?Array<Comment>;974 leadingComments: ?Array<Comment>;975 loc: {976 end: {column: number, line: number},977 start: {column: number, line: number},978 };979 start: number;980 trailingComments: ?Array<Comment>;981} | {982 type: 'File';983 _File: void;984 program: Program;985 end: number;986 innerComments: ?Array<Comment>;987 leadingComments: ?Array<Comment>;988 loc: {989 end: {column: number, line: number},990 start: {column: number, line: number},991 };992 start: number;993 trailingComments: ?Array<Comment>;994} | {995 type: 'ForInStatement';996 _ForInStatement: void;997 body: Statement;998 left: Node;999 right: Expression;1000 end: number;1001 innerComments: ?Array<Comment>;1002 leadingComments: ?Array<Comment>;1003 loc: {1004 end: {column: number, line: number},1005 start: {column: number, line: number},1006 };1007 start: number;1008 trailingComments: ?Array<Comment>;1009} | {1010 type: 'ForOfStatement';1011 _ForOfStatement: void;1012 body: Statement;1013 left: Node;1014 right: Expression;1015 end: number;1016 innerComments: ?Array<Comment>;1017 leadingComments: ?Array<Comment>;1018 loc: {1019 end: {column: number, line: number},1020 start: {column: number, line: number},1021 };1022 start: number;1023 trailingComments: ?Array<Comment>;1024} | {1025 type: 'ForStatement';1026 _ForStatement: void;1027 init: ?Node;1028 test: ?Expression;1029 update: ?Expression;1030 body: Statement;1031 end: number;1032 innerComments: ?Array<Comment>;1033 leadingComments: ?Array<Comment>;1034 loc: {1035 end: {column: number, line: number},1036 start: {column: number, line: number},1037 };1038 start: number;1039 trailingComments: ?Array<Comment>;1040} | {1041 type: 'FunctionDeclaration';1042 _FunctionDeclaration: void;1043 body: BlockStatement;1044 id: Identifier;1045 end: number;1046 innerComments: ?Array<Comment>;1047 leadingComments: ?Array<Comment>;1048 loc: {1049 end: {column: number, line: number},1050 start: {column: number, line: number},1051 };1052 start: number;1053 trailingComments: ?Array<Comment>;1054 async: boolean;1055 defaults: Array<?Expression>;1056 expression: boolean;1057 generator: boolean;1058 params: Array<Pattern>;1059 rest: ?Identifier;1060 returnType: ?TypeAnnotation;1061 typeParameters: ?TypeParameterDeclaration;1062} | {1063 type: 'FunctionExpression';1064 _FunctionExpression: void;1065 body: BlockStatement;1066 id: ?Identifier;1067 end: number;1068 innerComments: ?Array<Comment>;1069 leadingComments: ?Array<Comment>;1070 loc: {1071 end: {column: number, line: number},1072 start: {column: number, line: number},1073 };1074 start: number;1075 trailingComments: ?Array<Comment>;1076 async: boolean;1077 defaults: Array<?Expression>;1078 expression: boolean;1079 generator: boolean;1080 params: Array<Pattern>;1081 rest: ?Identifier;1082 returnType: ?TypeAnnotation;1083 typeParameters: ?TypeParameterDeclaration;1084} | {1085 type: 'Identifier';1086 _Identifier: void;1087 name: string;1088 typeAnnotation: ?TypeAnnotation;1089 end: number;1090 innerComments: ?Array<Comment>;1091 leadingComments: ?Array<Comment>;1092 loc: {1093 end: {column: number, line: number},1094 start: {column: number, line: number},1095 };1096 start: number;1097 trailingComments: ?Array<Comment>;1098} | {1099 type: 'IfStatement';1100 _IfStatement: void;1101 alternate: ?Statement;1102 consequent: Statement;1103 test: Expression;1104 end: number;1105 innerComments: ?Array<Comment>;1106 leadingComments: ?Array<Comment>;1107 loc: {1108 end: {column: number, line: number},1109 start: {column: number, line: number},1110 };1111 start: number;1112 trailingComments: ?Array<Comment>;1113} | {1114 type: 'ImportDefaultSpecifier';1115 _ImportDefaultSpecifier: void;1116 local: Node;1117 end: number;1118 innerComments: ?Array<Comment>;1119 leadingComments: ?Array<Comment>;1120 loc: {1121 end: {column: number, line: number},1122 start: {column: number, line: number},1123 };1124 start: number;1125 trailingComments: ?Array<Comment>;1126} | {1127 type: 'ImportNamespaceSpecifier';1128 _ImportNamespaceSpecifier: void;1129 local: Node;1130 end: number;1131 innerComments: ?Array<Comment>;1132 leadingComments: ?Array<Comment>;1133 loc: {1134 end: {column: number, line: number},1135 start: {column: number, line: number},1136 };1137 start: number;1138 trailingComments: ?Array<Comment>;1139} | {1140 type: 'ImportDeclaration';1141 _ImportDeclaration: void;1142 specifiers: Array<Node>;1143 source: Literal;1144 end: number;1145 innerComments: ?Array<Comment>;1146 leadingComments: ?Array<Comment>;1147 loc: {1148 end: {column: number, line: number},1149 start: {column: number, line: number},1150 };1151 start: number;1152 trailingComments: ?Array<Comment>;1153} | {1154 type: 'ImportSpecifier';1155 _ImportSpecifier: void;1156 imported: Node;1157 local: Node;1158 end: number;1159 innerComments: ?Array<Comment>;1160 leadingComments: ?Array<Comment>;1161 loc: {1162 end: {column: number, line: number},1163 start: {column: number, line: number},1164 };1165 start: number;1166 trailingComments: ?Array<Comment>;1167} | {1168 type: 'LabeledStatement';1169 _LabeledStatement: void;1170 body: Statement;1171 label: Identifier;1172 end: number;1173 innerComments: ?Array<Comment>;1174 leadingComments: ?Array<Comment>;1175 loc: {1176 end: {column: number, line: number},1177 start: {column: number, line: number},1178 };1179 start: number;1180 trailingComments: ?Array<Comment>;1181} | {1182 type: 'Literal';1183 _Literal: void;1184 raw: string;1185 regex: ?{pattern: string, flags: string};1186 value: ?(string | boolean | number | RegExp);1187 end: number;1188 innerComments: ?Array<Comment>;1189 leadingComments: ?Array<Comment>;1190 loc: {1191 end: {column: number, line: number},1192 start: {column: number, line: number},1193 };1194 start: number;1195 trailingComments: ?Array<Comment>;1196} | {1197 type: 'LogicalExpression';1198 _LogicalExpression: void;1199 left: Expression;1200 operator: LogicalOperator;1201 right: Expression;1202 end: number;1203 innerComments: ?Array<Comment>;1204 leadingComments: ?Array<Comment>;1205 loc: {1206 end: {column: number, line: number},1207 start: {column: number, line: number},1208 };1209 start: number;1210 trailingComments: ?Array<Comment>;1211} | {1212 type: 'MemberExpression';1213 _MemberExpression: void;1214 computed: boolean;1215 object: Expression;1216 property: Node;1217 end: number;1218 innerComments: ?Array<Comment>;1219 leadingComments: ?Array<Comment>;1220 loc: {1221 end: {column: number, line: number},1222 start: {column: number, line: number},1223 };1224 start: number;1225 trailingComments: ?Array<Comment>;1226} | {1227 type: 'MetaProperty';1228 _MetaProperty: void;1229 meta: Node;1230 property: Node;1231 end: number;1232 innerComments: ?Array<Comment>;1233 leadingComments: ?Array<Comment>;1234 loc: {1235 end: {column: number, line: number},1236 start: {column: number, line: number},1237 };1238 start: number;1239 trailingComments: ?Array<Comment>;1240} | {1241 type: 'MethodDefinition';1242 _MethodDefinition: void;1243 computed: boolean;1244 key: Node;1245 kind: 'constructor' | 'method' | 'get' | 'set';1246 static: boolean;1247 value: FunctionExpression;1248 decorators: ?Array<Decorator>;1249 end: number;1250 innerComments: ?Array<Comment>;1251 leadingComments: ?Array<Comment>;1252 loc: {1253 end: {column: number, line: number},1254 start: {column: number, line: number},1255 };1256 start: number;1257 trailingComments: ?Array<Comment>;1258} | {1259 type: 'NewExpression';1260 _NewExpression: void;1261 arguments: Array<Node>;1262 callee: Expression;1263 end: number;1264 innerComments: ?Array<Comment>;1265 leadingComments: ?Array<Comment>;1266 loc: {1267 end: {column: number, line: number},1268 start: {column: number, line: number},1269 };1270 start: number;1271 trailingComments: ?Array<Comment>;1272} | {1273 type: 'Noop';1274 _Noop: void;1275 end: number;1276 innerComments: ?Array<Comment>;1277 leadingComments: ?Array<Comment>;1278 loc: {1279 end: {column: number, line: number},1280 start: {column: number, line: number},1281 };1282 start: number;1283 trailingComments: ?Array<Comment>;1284} | {1285 type: 'ObjectExpression';1286 _ObjectExpression: void;1287 properties: Array<Node>;1288 end: number;1289 innerComments: ?Array<Comment>;1290 leadingComments: ?Array<Comment>;1291 loc: {1292 end: {column: number, line: number},1293 start: {column: number, line: number},1294 };1295 start: number;1296 trailingComments: ?Array<Comment>;1297} | {1298 type: 'ObjectPattern';1299 _ObjectPattern: void;1300 properties: Array<Node>;1301 typeAnnotation: ?TypeAnnotation;1302 end: number;1303 innerComments: ?Array<Comment>;1304 leadingComments: ?Array<Comment>;1305 loc: {1306 end: {column: number, line: number},1307 start: {column: number, line: number},1308 };1309 start: number;1310 trailingComments: ?Array<Comment>;1311} | {1312 type: 'Program';1313 _Program: void;1314 body: Array<Statement>;1315 end: number;1316 innerComments: ?Array<Comment>;1317 leadingComments: ?Array<Comment>;1318 loc: {1319 end: {column: number, line: number},1320 start: {column: number, line: number},1321 };1322 start: number;1323 trailingComments: ?Array<Comment>;1324} | {1325 type: 'Property';1326 _Property: void;1327 computed: boolean;1328 key: Node;1329 kind: 'init' | 'get' | 'set';1330 method: boolean;1331 shorthand: boolean;1332 value: Node;1333 decorators: ?Array<Decorator>;1334 end: number;1335 innerComments: ?Array<Comment>;1336 leadingComments: ?Array<Comment>;1337 loc: {1338 end: {column: number, line: number},1339 start: {column: number, line: number},1340 };1341 start: number;1342 trailingComments: ?Array<Comment>;1343} | {1344 type: 'RestElement';1345 _RestElement: void;1346 argument: Pattern;1347 typeAnnotation: ?TypeAnnotation;1348 end: number;1349 innerComments: ?Array<Comment>;1350 leadingComments: ?Array<Comment>;1351 loc: {1352 end: {column: number, line: number},1353 start: {column: number, line: number},1354 };1355 start: number;1356 trailingComments: ?Array<Comment>;1357} | {1358 type: 'ReturnStatement';1359 _ReturnStatement: void;1360 argument: ?Expression;1361 end: number;1362 innerComments: ?Array<Comment>;1363 leadingComments: ?Array<Comment>;1364 loc: {1365 end: {column: number, line: number},1366 start: {column: number, line: number},1367 };1368 start: number;1369 trailingComments: ?Array<Comment>;1370} | {1371 type: 'SequenceExpression';1372 _SequenceExpression: void;1373 expression: Array<Expression>;1374 end: number;1375 innerComments: ?Array<Comment>;1376 leadingComments: ?Array<Comment>;1377 loc: {1378 end: {column: number, line: number},1379 start: {column: number, line: number},1380 };1381 start: number;1382 trailingComments: ?Array<Comment>;1383} | {1384 type: 'SpreadElement';1385 _SpreadElement: void;1386 argument: Expression;1387 end: number;1388 innerComments: ?Array<Comment>;1389 leadingComments: ?Array<Comment>;1390 loc: {1391 end: {column: number, line: number},1392 start: {column: number, line: number},1393 };1394 start: number;1395 trailingComments: ?Array<Comment>;1396} | {1397 type: 'SpreadProperty';1398 _SpreadProperty: void;1399 argument: Expression;1400 end: number;1401 innerComments: ?Array<Comment>;1402 leadingComments: ?Array<Comment>;1403 loc: {1404 end: {column: number, line: number},1405 start: {column: number, line: number},1406 };1407 start: number;1408 trailingComments: ?Array<Comment>;1409} | {1410 type: 'Super';1411 _Super: void;1412 end: number;1413 innerComments: ?Array<Comment>;1414 leadingComments: ?Array<Comment>;1415 loc: {1416 end: {column: number, line: number},1417 start: {column: number, line: number},1418 };1419 start: number;1420 trailingComments: ?Array<Comment>;1421} | {1422 type: 'SwitchCase';1423 _SwitchCase: void;1424 consequent: Array<Statement>;1425 test: ?Expression;1426 end: number;1427 innerComments: ?Array<Comment>;1428 leadingComments: ?Array<Comment>;1429 loc: {1430 end: {column: number, line: number},1431 start: {column: number, line: number},1432 };1433 start: number;1434 trailingComments: ?Array<Comment>;1435} | {1436 type: 'SwitchStatement';1437 _SwitchStatement: void;1438 cases: Array<SwitchCase>;1439 discriminant: Expression;1440 lexical: boolean;1441 end: number;1442 innerComments: ?Array<Comment>;1443 leadingComments: ?Array<Comment>;1444 loc: {1445 end: {column: number, line: number},1446 start: {column: number, line: number},1447 };1448 start: number;1449 trailingComments: ?Array<Comment>;1450} | {1451 type: 'TaggedTemplateExpression';1452 _TaggedTemplateExpression: void;1453 quasi: TemplateLiteral;1454 tag: Expression;1455 end: number;1456 innerComments: ?Array<Comment>;1457 leadingComments: ?Array<Comment>;1458 loc: {1459 end: {column: number, line: number},1460 start: {column: number, line: number},1461 };1462 start: number;1463 trailingComments: ?Array<Comment>;1464} | {1465 type: 'TemplateElement';1466 _TemplateElement: void;1467 tail: boolean;1468 value: {cooked: string, raw: string};1469 end: number;1470 innerComments: ?Array<Comment>;1471 leadingComments: ?Array<Comment>;1472 loc: {1473 end: {column: number, line: number},1474 start: {column: number, line: number},1475 };1476 start: number;1477 trailingComments: ?Array<Comment>;1478} | {1479 type: 'TemplateLiteral';1480 _TemplateLiteral: void;1481 expressions: Array<Expression>;1482 quasis: Array<TemplateElement>;1483 end: number;1484 innerComments: ?Array<Comment>;1485 leadingComments: ?Array<Comment>;1486 loc: {1487 end: {column: number, line: number},1488 start: {column: number, line: number},1489 };1490 start: number;1491 trailingComments: ?Array<Comment>;1492} | {1493 type: 'ThisExpression';1494 _ThisExpression: void;1495 end: number;1496 innerComments: ?Array<Comment>;1497 leadingComments: ?Array<Comment>;1498 loc: {1499 end: {column: number, line: number},1500 start: {column: number, line: number},1501 };1502 start: number;1503 trailingComments: ?Array<Comment>;1504} | {1505 type: 'ThrowStatement';1506 _ThrowStatement: void;1507 argument: Expression;1508 end: number;1509 innerComments: ?Array<Comment>;1510 leadingComments: ?Array<Comment>;1511 loc: {1512 end: {column: number, line: number},1513 start: {column: number, line: number},1514 };1515 start: number;1516 trailingComments: ?Array<Comment>;1517} | {1518 type: 'TryStatement';1519 _TryStatement: void;1520 block: BlockStatement;1521 finalizer: ?BlockStatement;1522 guardedHandlers: Array<CatchClause>;1523 handler: ?CatchClause;1524 handlers: ?Array<CatchClause>;1525 end: number;1526 innerComments: ?Array<Comment>;1527 leadingComments: ?Array<Comment>;1528 loc: {1529 end: {column: number, line: number},1530 start: {column: number, line: number},1531 };1532 start: number;1533 trailingComments: ?Array<Comment>;1534} | {1535 type: 'UnaryExpression';1536 _UnaryExpression: void;1537 argument: Expression;1538 operator: UnaryOperator;1539 prefix: true;1540 end: number;1541 innerComments: ?Array<Comment>;1542 leadingComments: ?Array<Comment>;1543 loc: {1544 end: {column: number, line: number},1545 start: {column: number, line: number},1546 };1547 start: number;1548 trailingComments: ?Array<Comment>;1549} | {1550 type: 'UpdateExpression';1551 _UpdateExpression: void;1552 argument: Expression;1553 operator: UpdateOperator;1554 prefix: boolean;1555 end: number;1556 innerComments: ?Array<Comment>;1557 leadingComments: ?Array<Comment>;1558 loc: {1559 end: {column: number, line: number},1560 start: {column: number, line: number},1561 };1562 start: number;1563 trailingComments: ?Array<Comment>;1564} | {1565 type: 'VariableDeclaration';1566 _VariableDeclaration: void;1567 declarations: Array<VariableDeclarator>;1568 kind: 'var' | 'let' | 'const';1569 end: number;1570 innerComments: ?Array<Comment>;1571 leadingComments: ?Array<Comment>;1572 loc: {1573 end: {column: number, line: number},1574 start: {column: number, line: number},1575 };1576 start: number;1577 trailingComments: ?Array<Comment>;1578} | {1579 type: 'VariableDeclarator';1580 _VariableDeclarator: void;1581 id: Pattern;1582 init: ?Expression;1583 end: number;1584 innerComments: ?Array<Comment>;1585 leadingComments: ?Array<Comment>;1586 loc: {1587 end: {column: number, line: number},1588 start: {column: number, line: number},1589 };1590 start: number;1591 trailingComments: ?Array<Comment>;1592} | {1593 type: 'WhileStatement';1594 _WhileStatement: void;1595 body: Statement;1596 test: Expression;1597 end: number;1598 innerComments: ?Array<Comment>;1599 leadingComments: ?Array<Comment>;1600 loc: {1601 end: {column: number, line: number},1602 start: {column: number, line: number},1603 };1604 start: number;1605 trailingComments: ?Array<Comment>;1606} | {1607 type: 'WithStatement';1608 _WithStatement: void;1609 body: Statement;1610 object: Expression;1611 end: number;1612 innerComments: ?Array<Comment>;1613 leadingComments: ?Array<Comment>;1614 loc: {1615 end: {column: number, line: number},1616 start: {column: number, line: number},1617 };1618 start: number;1619 trailingComments: ?Array<Comment>;1620} | {1621 type: 'YieldExpression';1622 _YieldExpression: void;1623 argument: ?Expression;1624 delegate: boolean;1625 end: number;1626 innerComments: ?Array<Comment>;1627 leadingComments: ?Array<Comment>;1628 loc: {1629 end: {column: number, line: number},1630 start: {column: number, line: number},1631 };1632 start: number;1633 trailingComments: ?Array<Comment>;1634} | {1635 type: 'ExportAllDeclaration';1636 _ExportAllDeclaration: void;1637 exported: Node;1638 source: Node;1639 end: number;1640 innerComments: ?Array<Comment>;1641 leadingComments: ?Array<Comment>;1642 loc: {1643 end: {column: number, line: number},1644 start: {column: number, line: number},1645 };1646 start: number;1647 trailingComments: ?Array<Comment>;1648} | {1649 type: 'ExportDefaultDeclaration';1650 _ExportDefaultDeclaration: void;1651 declaration: Node;1652 end: number;1653 innerComments: ?Array<Comment>;1654 leadingComments: ?Array<Comment>;1655 loc: {1656 end: {column: number, line: number},1657 start: {column: number, line: number},1658 };1659 start: number;1660 trailingComments: ?Array<Comment>;1661} | {1662 type: 'ExportNamedDeclaration';1663 _ExportNamedDeclaration: void;1664 declaration: Node;1665 source: Literal;1666 specifiers: Array<Node>;1667 end: number;1668 innerComments: ?Array<Comment>;1669 leadingComments: ?Array<Comment>;1670 loc: {1671 end: {column: number, line: number},1672 start: {column: number, line: number},1673 };1674 start: number;1675 trailingComments: ?Array<Comment>;1676} | {1677 type: 'ExportDefaultSpecifier';1678 _ExportDefaultSpecifier: void;1679 exported: Node;1680 end: number;1681 innerComments: ?Array<Comment>;1682 leadingComments: ?Array<Comment>;1683 loc: {1684 end: {column: number, line: number},1685 start: {column: number, line: number},1686 };1687 start: number;1688 trailingComments: ?Array<Comment>;1689} | {1690 type: 'ExportNamespaceSpecifier';1691 _ExportNamespaceSpecifier: void;1692 exported: Node;1693 end: number;1694 innerComments: ?Array<Comment>;1695 leadingComments: ?Array<Comment>;1696 loc: {1697 end: {column: number, line: number},1698 start: {column: number, line: number},1699 };1700 start: number;1701 trailingComments: ?Array<Comment>;1702} | {1703 type: 'ExportSpecifier';1704 _ExportSpecifier: void;1705 local: Node;1706 exported: Node;1707 end: number;1708 innerComments: ?Array<Comment>;1709 leadingComments: ?Array<Comment>;1710 loc: {1711 end: {column: number, line: number},1712 start: {column: number, line: number},1713 };1714 start: number;1715 trailingComments: ?Array<Comment>;1716} | {1717 type: 'AnyTypeAnnotation';1718 _AnyTypeAnnotation: void;1719 end: number;1720 innerComments: ?Array<Comment>;1721 leadingComments: ?Array<Comment>;1722 loc: {1723 end: {column: number, line: number},1724 start: {column: number, line: number},1725 };1726 start: number;1727 trailingComments: ?Array<Comment>;1728} | {1729 type: 'ArrayTypeAnnotation';1730 _ArrayTypeAnnotation: void;1731 elementType: Type;1732 end: number;1733 innerComments: ?Array<Comment>;1734 leadingComments: ?Array<Comment>;1735 loc: {1736 end: {column: number, line: number},1737 start: {column: number, line: number},1738 };1739 start: number;1740 trailingComments: ?Array<Comment>;1741} | {1742 type: 'BooleanLiteralTypeAnnotation';1743 _BooleanLiteralTypeAnnotation: void;1744 raw: string;1745 value: boolean;1746 end: number;1747 innerComments: ?Array<Comment>;1748 leadingComments: ?Array<Comment>;1749 loc: {1750 end: {column: number, line: number},1751 start: {column: number, line: number},1752 };1753 start: number;1754 trailingComments: ?Array<Comment>;1755} | {1756 type: 'BooleanTypeAnnotation';1757 _BooleanTypeAnnotation: void;1758 end: number;1759 innerComments: ?Array<Comment>;1760 leadingComments: ?Array<Comment>;1761 loc: {1762 end: {column: number, line: number},1763 start: {column: number, line: number},1764 };1765 start: number;1766 trailingComments: ?Array<Comment>;1767} | {1768 type: 'ClassImplements';1769 _ClassImplements: void;1770 id: Identifier;1771 typeParameters: ?TypeParameterInstantiation;1772 superClass: ?Expression;1773 end: number;1774 innerComments: ?Array<Comment>;1775 leadingComments: ?Array<Comment>;1776 loc: {1777 end: {column: number, line: number},1778 start: {column: number, line: number},1779 };1780 start: number;1781 trailingComments: ?Array<Comment>;1782} | {1783 type: 'ClassProperty';1784 _ClassProperty: void;1785 computed: boolean;1786 key: Node;1787 static: boolean;1788 typeAnnotation: ?TypeAnnotation;1789 value: ?Expression;1790 decorators: Array<Decorator>;1791 end: number;1792 innerComments: ?Array<Comment>;1793 leadingComments: ?Array<Comment>;1794 loc: {1795 end: {column: number, line: number},1796 start: {column: number, line: number},1797 };1798 start: number;1799 trailingComments: ?Array<Comment>;1800} | {1801 type: 'DeclareClass';1802 _DeclareClass: void;1803 body: ObjectTypeAnnotation;1804 extends: Array<InterfaceExtends>;1805 id: Identifier;1806 typeParameters: ?TypeParameterDeclaration;1807 end: number;1808 innerComments: ?Array<Comment>;1809 leadingComments: ?Array<Comment>;1810 loc: {1811 end: {column: number, line: number},1812 start: {column: number, line: number},1813 };1814 start: number;1815 trailingComments: ?Array<Comment>;1816} | {1817 type: 'DeclareFunction';1818 _DeclareFunction: void;1819 id: Identifier;1820 end: number;1821 innerComments: ?Array<Comment>;1822 leadingComments: ?Array<Comment>;1823 loc: {1824 end: {column: number, line: number},1825 start: {column: number, line: number},1826 };1827 start: number;1828 trailingComments: ?Array<Comment>;1829} | {1830 type: 'DeclareModule';1831 _DeclareModule: void;1832 body: BlockStatement;1833 id: Node;1834 end: number;1835 innerComments: ?Array<Comment>;1836 leadingComments: ?Array<Comment>;1837 loc: {1838 end: {column: number, line: number},1839 start: {column: number, line: number},1840 };1841 start: number;1842 trailingComments: ?Array<Comment>;1843} | {1844 type: 'DeclareVariable';1845 _DeclareVariable: void;1846 id: Identifier;1847 end: number;1848 innerComments: ?Array<Comment>;1849 leadingComments: ?Array<Comment>;1850 loc: {1851 end: {column: number, line: number},1852 start: {column: number, line: number},1853 };1854 start: number;1855 trailingComments: ?Array<Comment>;1856} | {1857 type: 'FunctionTypeAnnotation';1858 _FunctionTypeAnnotation: void;1859 params: Array<FunctionTypeParam>;1860 rest: ?FunctionTypeParam;1861 returnType: Type;1862 typeParameters: ?TypeParameterDeclaration;1863 end: number;1864 innerComments: ?Array<Comment>;1865 leadingComments: ?Array<Comment>;1866 loc: {1867 end: {column: number, line: number},1868 start: {column: number, line: number},1869 };1870 start: number;1871 trailingComments: ?Array<Comment>;1872} | {1873 type: 'FunctionTypeParam';1874 _FunctionTypeParam: void;1875 name: Identifier;1876 optional: boolean;1877 typeAnnotation: Type;1878 end: number;1879 innerComments: ?Array<Comment>;1880 leadingComments: ?Array<Comment>;1881 loc: {1882 end: {column: number, line: number},1883 start: {column: number, line: number},1884 };1885 start: number;1886 trailingComments: ?Array<Comment>;1887} | {1888 type: 'GenericTypeAnnotation';1889 _GenericTypeAnnotation: void;1890 id: Node;1891 typeParameters: ?TypeParameterInstantiation;1892 end: number;1893 innerComments: ?Array<Comment>;1894 leadingComments: ?Array<Comment>;1895 loc: {1896 end: {column: number, line: number},1897 start: {column: number, line: number},1898 };1899 start: number;1900 trailingComments: ?Array<Comment>;1901} | {1902 type: 'InterfaceExtends';1903 _InterfaceExtends: void;1904 id: Identifier;1905 typeParameters: ?TypeParameterInstantiation;1906 end: number;1907 innerComments: ?Array<Comment>;1908 leadingComments: ?Array<Comment>;1909 loc: {1910 end: {column: number, line: number},1911 start: {column: number, line: number},1912 };1913 start: number;1914 trailingComments: ?Array<Comment>;1915} | {1916 type: 'InterfaceDeclaration';1917 _InterfaceDeclaration: void;1918 body: ObjectTypeAnnotation;1919 extends: Array<InterfaceExtends>;1920 id: Identifier;1921 typeParameters: ?TypeParameterDeclaration;1922 end: number;1923 innerComments: ?Array<Comment>;1924 leadingComments: ?Array<Comment>;1925 loc: {1926 end: {column: number, line: number},1927 start: {column: number, line: number},1928 };1929 start: number;1930 trailingComments: ?Array<Comment>;1931} | {1932 type: 'IntersectionTypeAnnotation';1933 _IntersectionTypeAnnotation: void;1934 types: Array<Type>;1935 end: number;1936 innerComments: ?Array<Comment>;1937 leadingComments: ?Array<Comment>;1938 loc: {1939 end: {column: number, line: number},1940 start: {column: number, line: number},1941 };1942 start: number;1943 trailingComments: ?Array<Comment>;1944} | {1945 type: 'MixedTypeAnnotation';1946 _MixedTypeAnnotation: void;1947 end: number;1948 innerComments: ?Array<Comment>;1949 leadingComments: ?Array<Comment>;1950 loc: {1951 end: {column: number, line: number},1952 start: {column: number, line: number},1953 };1954 start: number;1955 trailingComments: ?Array<Comment>;1956} | {1957 type: 'NullableTypeAnnotation';1958 _NullableTypeAnnotation: void;1959 typeAnnotation: Type;1960 end: number;1961 innerComments: ?Array<Comment>;1962 leadingComments: ?Array<Comment>;1963 loc: {1964 end: {column: number, line: number},1965 start: {column: number, line: number},1966 };1967 start: number;1968 trailingComments: ?Array<Comment>;1969} | {1970 type: 'NumberLiteralTypeAnnotation';1971 _NumberLiteralTypeAnnotation: void;1972 raw: string;1973 value: number;1974 end: number;1975 innerComments: ?Array<Comment>;1976 leadingComments: ?Array<Comment>;1977 loc: {1978 end: {column: number, line: number},1979 start: {column: number, line: number},1980 };1981 start: number;1982 trailingComments: ?Array<Comment>;1983} | {1984 type: 'NumberTypeAnnotation';1985 _NumberTypeAnnotation: void;1986 end: number;1987 innerComments: ?Array<Comment>;1988 leadingComments: ?Array<Comment>;1989 loc: {1990 end: {column: number, line: number},1991 start: {column: number, line: number},1992 };1993 start: number;1994 trailingComments: ?Array<Comment>;1995} | {1996 type: 'StringLiteralTypeAnnotation';1997 _StringLiteralTypeAnnotation: void;1998 raw: string;1999 value: string;2000 end: number;2001 innerComments: ?Array<Comment>;2002 leadingComments: ?Array<Comment>;2003 loc: {2004 end: {column: number, line: number},2005 start: {column: number, line: number},2006 };2007 start: number;2008 trailingComments: ?Array<Comment>;2009} | {2010 type: 'StringTypeAnnotation';2011 _StringTypeAnnotation: void;2012 end: number;2013 innerComments: ?Array<Comment>;2014 leadingComments: ?Array<Comment>;2015 loc: {2016 end: {column: number, line: number},2017 start: {column: number, line: number},2018 };2019 start: number;2020 trailingComments: ?Array<Comment>;2021} | {2022 type: 'TupleTypeAnnotation';2023 _TupleTypeAnnotation: void;2024 types: Array<Type>;2025 end: number;2026 innerComments: ?Array<Comment>;2027 leadingComments: ?Array<Comment>;2028 loc: {2029 end: {column: number, line: number},2030 start: {column: number, line: number},2031 };2032 start: number;2033 trailingComments: ?Array<Comment>;2034} | {2035 type: 'TypeofTypeAnnotation';2036 _TypeofTypeAnnotation: void;2037 argument: Type;2038 end: number;2039 innerComments: ?Array<Comment>;2040 leadingComments: ?Array<Comment>;2041 loc: {2042 end: {column: number, line: number},2043 start: {column: number, line: number},2044 };2045 start: number;2046 trailingComments: ?Array<Comment>;2047} | {2048 type: 'TypeAlias';2049 _TypeAlias: void;2050 id: Identifier;2051 right: Type;2052 typeParameters: ?TypeParameterDeclaration;2053 end: number;2054 innerComments: ?Array<Comment>;2055 leadingComments: ?Array<Comment>;2056 loc: {2057 end: {column: number, line: number},2058 start: {column: number, line: number},2059 };2060 start: number;2061 trailingComments: ?Array<Comment>;2062} | {2063 type: 'TypeAnnotation';2064 _TypeAnnotation: void;2065 typeAnnotation: Type;2066 end: number;2067 innerComments: ?Array<Comment>;2068 leadingComments: ?Array<Comment>;2069 loc: {2070 end: {column: number, line: number},2071 start: {column: number, line: number},2072 };2073 start: number;2074 trailingComments: ?Array<Comment>;2075} | {2076 type: 'TypeCastExpression';2077 _TypeCastExpression: void;2078 expression: Expression;2079 typeAnnotation: TypeAnnotation;2080 end: number;2081 innerComments: ?Array<Comment>;2082 leadingComments: ?Array<Comment>;2083 loc: {2084 end: {column: number, line: number},2085 start: {column: number, line: number},2086 };2087 start: number;2088 trailingComments: ?Array<Comment>;2089} | {2090 type: 'TypeParameterDeclaration';2091 _TypeParameterDeclaration: void;2092 params: Array<Identifier>;2093 end: number;2094 innerComments: ?Array<Comment>;2095 leadingComments: ?Array<Comment>;2096 loc: {2097 end: {column: number, line: number},2098 start: {column: number, line: number},2099 };2100 start: number;2101 trailingComments: ?Array<Comment>;2102} | {2103 type: 'TypeParameterInstantiation';2104 _TypeParameterInstantiation: void;2105 params: Array<Type>;2106 end: number;2107 innerComments: ?Array<Comment>;2108 leadingComments: ?Array<Comment>;2109 loc: {2110 end: {column: number, line: number},2111 start: {column: number, line: number},2112 };2113 start: number;2114 trailingComments: ?Array<Comment>;2115} | {2116 type: 'ObjectTypeAnnotation';2117 _ObjectTypeAnnotation: void;2118 callProperties: Array<ObjectTypeCallProperty>;2119 indexers: Array<ObjectTypeIndexer>;2120 properties: Array<ObjectTypeProperty>;2121 end: number;2122 innerComments: ?Array<Comment>;2123 leadingComments: ?Array<Comment>;2124 loc: {2125 end: {column: number, line: number},2126 start: {column: number, line: number},2127 };2128 start: number;2129 trailingComments: ?Array<Comment>;2130} | {2131 type: 'ObjectTypeCallProperty';2132 _ObjectTypeCallProperty: void;2133 static: boolean;2134 value: FunctionTypeAnnotation;2135 end: number;2136 innerComments: ?Array<Comment>;2137 leadingComments: ?Array<Comment>;2138 loc: {2139 end: {column: number, line: number},2140 start: {column: number, line: number},2141 };2142 start: number;2143 trailingComments: ?Array<Comment>;2144} | {2145 type: 'ObjectTypeIndexer';2146 _ObjectTypeIndexer: void;2147 id: Identifier;2148 key: Type;2149 value: Type;2150 end: number;2151 innerComments: ?Array<Comment>;2152 leadingComments: ?Array<Comment>;2153 loc: {2154 end: {column: number, line: number},2155 start: {column: number, line: number},2156 };2157 start: number;2158 trailingComments: ?Array<Comment>;2159} | {2160 type: 'ObjectTypeProperty';2161 _ObjectTypeProperty: void;2162 key: Node;2163 optional: boolean;2164 value: Type;2165 end: number;2166 innerComments: ?Array<Comment>;2167 leadingComments: ?Array<Comment>;2168 loc: {2169 end: {column: number, line: number},2170 start: {column: number, line: number},2171 };2172 start: number;2173 trailingComments: ?Array<Comment>;2174} | {2175 type: 'QualifiedTypeIdentifier';2176 _QualifiedTypeIdentifier: void;2177 id: Identifier;2178 qualification: Node;2179 end: number;2180 innerComments: ?Array<Comment>;2181 leadingComments: ?Array<Comment>;2182 loc: {2183 end: {column: number, line: number},2184 start: {column: number, line: number},2185 };2186 start: number;2187 trailingComments: ?Array<Comment>;2188} | {2189 type: 'UnionTypeAnnotation';2190 _UnionTypeAnnotation: void;2191 types: Array<Type>;2192 end: number;2193 innerComments: ?Array<Comment>;2194 leadingComments: ?Array<Comment>;2195 loc: {2196 end: {column: number, line: number},2197 start: {column: number, line: number},2198 };2199 start: number;2200 trailingComments: ?Array<Comment>;2201} | {2202 type: 'VoidTypeAnnotation';2203 _VoidTypeAnnotation: void;2204 end: number;2205 innerComments: ?Array<Comment>;2206 leadingComments: ?Array<Comment>;2207 loc: {2208 end: {column: number, line: number},2209 start: {column: number, line: number},2210 };2211 start: number;2212 trailingComments: ?Array<Comment>;2213} | {2214 type: 'JSXAttribute';2215 _JSXAttribute: void;2216 name: Node;2217 value: ?Node;2218 end: number;2219 innerComments: ?Array<Comment>;2220 leadingComments: ?Array<Comment>;2221 loc: {2222 end: {column: number, line: number},2223 start: {column: number, line: number},2224 };2225 start: number;2226 trailingComments: ?Array<Comment>;2227} | {2228 type: 'JSXClosingElement';2229 _JSXClosingElement: void;2230 name: Node;2231 end: number;2232 innerComments: ?Array<Comment>;2233 leadingComments: ?Array<Comment>;2234 loc: {2235 end: {column: number, line: number},2236 start: {column: number, line: number},2237 };2238 start: number;2239 trailingComments: ?Array<Comment>;2240} | {2241 type: 'JSXElement';2242 _JSXElement: void;2243 children: Array<Node>;2244 closingElement: ?JSXClosingElement;2245 openingElement: JSXOpeningElement;2246 end: number;2247 innerComments: ?Array<Comment>;2248 leadingComments: ?Array<Comment>;2249 loc: {2250 end: {column: number, line: number},2251 start: {column: number, line: number},2252 };2253 start: number;2254 trailingComments: ?Array<Comment>;2255} | {2256 type: 'JSXEmptyExpression';2257 _JSXEmptyExpression: void;2258 end: number;2259 innerComments: ?Array<Comment>;2260 leadingComments: ?Array<Comment>;2261 loc: {2262 end: {column: number, line: number},2263 start: {column: number, line: number},2264 };2265 start: number;2266 trailingComments: ?Array<Comment>;2267} | {2268 type: 'JSXExpressionContainer';2269 _JSXExpressionContainer: void;2270 expression: Expression;2271 end: number;2272 innerComments: ?Array<Comment>;2273 leadingComments: ?Array<Comment>;2274 loc: {2275 end: {column: number, line: number},2276 start: {column: number, line: number},2277 };2278 start: number;2279 trailingComments: ?Array<Comment>;2280} | {2281 type: 'JSXIdentifier';2282 _JSXIdentifier: void;2283 name: string;2284 end: number;2285 innerComments: ?Array<Comment>;2286 leadingComments: ?Array<Comment>;2287 loc: {2288 end: {column: number, line: number},2289 start: {column: number, line: number},2290 };2291 start: number;2292 trailingComments: ?Array<Comment>;2293} | {2294 type: 'JSXMemberExpression';2295 _JSXMemberExpression: void;2296 computed: boolean;2297 object: Node;2298 property: JSXIdentifier;2299 end: number;2300 innerComments: ?Array<Comment>;2301 leadingComments: ?Array<Comment>;2302 loc: {2303 end: {column: number, line: number},2304 start: {column: number, line: number},2305 };2306 start: number;2307 trailingComments: ?Array<Comment>;2308} | {2309 type: 'JSXNamespacedName';2310 _JSXNamespacedName: void;2311 name: JSXIdentifier;2312 namespace: JSXIdentifier;2313 end: number;2314 innerComments: ?Array<Comment>;2315 leadingComments: ?Array<Comment>;2316 loc: {2317 end: {column: number, line: number},2318 start: {column: number, line: number},2319 };2320 start: number;2321 trailingComments: ?Array<Comment>;2322} | {2323 type: 'JSXOpeningElement';2324 _JSXOpeningElement: void;2325 attributes: Array<Node>;2326 name: Array<Node>;2327 selfClosing: boolean;2328 end: number;2329 innerComments: ?Array<Comment>;2330 leadingComments: ?Array<Comment>;2331 loc: {2332 end: {column: number, line: number},2333 start: {column: number, line: number},2334 };2335 start: number;2336 trailingComments: ?Array<Comment>;2337} | {2338 type: 'JSXSpreadAttribute';2339 _JSXSpreadAttribute: void;2340 argument: Expression;2341 end: number;2342 innerComments: ?Array<Comment>;2343 leadingComments: ?Array<Comment>;2344 loc: {2345 end: {column: number, line: number},2346 start: {column: number, line: number},2347 };2348 start: number;2349 trailingComments: ?Array<Comment>;2350};2351export type Pattern = {2352 type: 'ArrayPattern';2353 _ArrayPattern: void;2354 elements: Array<?Node>;2355 typeAnnotation: ?TypeAnnotation;2356 end: number;2357 innerComments: ?Array<Comment>;2358 leadingComments: ?Array<Comment>;2359 loc: {2360 end: {column: number, line: number},2361 start: {column: number, line: number},2362 };2363 start: number;2364 trailingComments: ?Array<Comment>;2365} | {2366 type: 'AssignmentPattern';2367 _AssignmentPattern: void;2368 left: Pattern;2369 right: Expression;2370 end: number;2371 innerComments: ?Array<Comment>;2372 leadingComments: ?Array<Comment>;2373 loc: {2374 end: {column: number, line: number},2375 start: {column: number, line: number},2376 };2377 start: number;2378 trailingComments: ?Array<Comment>;2379} | {2380 type: 'Identifier';2381 _Identifier: void;2382 name: string;2383 typeAnnotation: ?TypeAnnotation;2384 end: number;2385 innerComments: ?Array<Comment>;2386 leadingComments: ?Array<Comment>;2387 loc: {2388 end: {column: number, line: number},2389 start: {column: number, line: number},2390 };2391 start: number;2392 trailingComments: ?Array<Comment>;2393} | {2394 type: 'ObjectPattern';2395 _ObjectPattern: void;2396 properties: Array<Node>;2397 typeAnnotation: ?TypeAnnotation;2398 end: number;2399 innerComments: ?Array<Comment>;2400 leadingComments: ?Array<Comment>;2401 loc: {2402 end: {column: number, line: number},2403 start: {column: number, line: number},2404 };2405 start: number;2406 trailingComments: ?Array<Comment>;2407} | {2408 type: 'RestElement';2409 _RestElement: void;2410 argument: Pattern;2411 typeAnnotation: ?TypeAnnotation;2412 end: number;2413 innerComments: ?Array<Comment>;2414 leadingComments: ?Array<Comment>;2415 loc: {2416 end: {column: number, line: number},2417 start: {column: number, line: number},2418 };2419 start: number;2420 trailingComments: ?Array<Comment>;2421};2422export type Statement = {2423 type: 'BlockStatement';2424 _BlockStatement: void;2425 body: Array<Statement>;2426 end: number;2427 innerComments: ?Array<Comment>;2428 leadingComments: ?Array<Comment>;2429 loc: {2430 end: {column: number, line: number},2431 start: {column: number, line: number},2432 };2433 start: number;2434 trailingComments: ?Array<Comment>;2435} | {2436 type: 'BreakStatement';2437 _BreakStatement: void;2438 label: ?Identifier;2439 end: number;2440 innerComments: ?Array<Comment>;2441 leadingComments: ?Array<Comment>;2442 loc: {2443 end: {column: number, line: number},2444 start: {column: number, line: number},2445 };2446 start: number;2447 trailingComments: ?Array<Comment>;2448} | {2449 type: 'ContinueStatement';2450 _ContinueStatement: void;2451 label: ?Identifier;2452 end: number;2453 innerComments: ?Array<Comment>;2454 leadingComments: ?Array<Comment>;2455 loc: {2456 end: {column: number, line: number},2457 start: {column: number, line: number},2458 };2459 start: number;2460 trailingComments: ?Array<Comment>;2461} | {2462 type: 'DoWhileStatement';2463 _DoWhileStatement: void;2464 body: Statement;2465 test: Expression;2466 end: number;2467 innerComments: ?Array<Comment>;2468 leadingComments: ?Array<Comment>;2469 loc: {2470 end: {column: number, line: number},2471 start: {column: number, line: number},2472 };2473 start: number;2474 trailingComments: ?Array<Comment>;2475} | {2476 type: 'EmptyStatement';2477 _EmptyStatement: void;2478 end: number;2479 innerComments: ?Array<Comment>;2480 leadingComments: ?Array<Comment>;2481 loc: {2482 end: {column: number, line: number},2483 start: {column: number, line: number},2484 };2485 start: number;2486 trailingComments: ?Array<Comment>;2487} | {2488 type: 'ExpressionStatement';2489 _ExpressionStatement: void;2490 expression: Expression;2491 end: number;2492 innerComments: ?Array<Comment>;2493 leadingComments: ?Array<Comment>;2494 loc: {2495 end: {column: number, line: number},2496 start: {column: number, line: number},2497 };2498 start: number;2499 trailingComments: ?Array<Comment>;2500} | {2501 type: 'ForInStatement';2502 _ForInStatement: void;2503 body: Statement;2504 left: Node;2505 right: Expression;2506 end: number;2507 innerComments: ?Array<Comment>;2508 leadingComments: ?Array<Comment>;2509 loc: {2510 end: {column: number, line: number},2511 start: {column: number, line: number},2512 };2513 start: number;2514 trailingComments: ?Array<Comment>;2515} | {2516 type: 'ForOfStatement';2517 _ForOfStatement: void;2518 body: Statement;2519 left: Node;2520 right: Expression;2521 end: number;2522 innerComments: ?Array<Comment>;2523 leadingComments: ?Array<Comment>;2524 loc: {2525 end: {column: number, line: number},2526 start: {column: number, line: number},2527 };2528 start: number;2529 trailingComments: ?Array<Comment>;2530} | {2531 type: 'ForStatement';2532 _ForStatement: void;2533 init: ?Node;2534 test: ?Expression;2535 update: ?Expression;2536 body: Statement;2537 end: number;2538 innerComments: ?Array<Comment>;2539 leadingComments: ?Array<Comment>;2540 loc: {2541 end: {column: number, line: number},2542 start: {column: number, line: number},2543 };2544 start: number;2545 trailingComments: ?Array<Comment>;2546} | {2547 type: 'IfStatement';2548 _IfStatement: void;2549 alternate: ?Statement;2550 consequent: Statement;2551 test: Expression;2552 end: number;2553 innerComments: ?Array<Comment>;2554 leadingComments: ?Array<Comment>;2555 loc: {2556 end: {column: number, line: number},2557 start: {column: number, line: number},2558 };2559 start: number;2560 trailingComments: ?Array<Comment>;2561} | {2562 type: 'LabeledStatement';2563 _LabeledStatement: void;2564 body: Statement;2565 label: Identifier;2566 end: number;2567 innerComments: ?Array<Comment>;2568 leadingComments: ?Array<Comment>;2569 loc: {2570 end: {column: number, line: number},2571 start: {column: number, line: number},2572 };2573 start: number;2574 trailingComments: ?Array<Comment>;2575} | {2576 type: 'ReturnStatement';2577 _ReturnStatement: void;2578 argument: ?Expression;2579 end: number;2580 innerComments: ?Array<Comment>;2581 leadingComments: ?Array<Comment>;2582 loc: {2583 end: {column: number, line: number},2584 start: {column: number, line: number},2585 };2586 start: number;2587 trailingComments: ?Array<Comment>;2588} | {2589 type: 'SwitchStatement';2590 _SwitchStatement: void;2591 cases: Array<SwitchCase>;2592 discriminant: Expression;2593 lexical: boolean;2594 end: number;2595 innerComments: ?Array<Comment>;2596 leadingComments: ?Array<Comment>;2597 loc: {2598 end: {column: number, line: number},2599 start: {column: number, line: number},2600 };2601 start: number;2602 trailingComments: ?Array<Comment>;2603} | {2604 type: 'ThrowStatement';2605 _ThrowStatement: void;2606 argument: Expression;2607 end: number;2608 innerComments: ?Array<Comment>;2609 leadingComments: ?Array<Comment>;2610 loc: {2611 end: {column: number, line: number},2612 start: {column: number, line: number},2613 };2614 start: number;2615 trailingComments: ?Array<Comment>;2616} | {2617 type: 'TryStatement';2618 _TryStatement: void;2619 block: BlockStatement;2620 finalizer: ?BlockStatement;2621 guardedHandlers: Array<CatchClause>;2622 handler: ?CatchClause;2623 handlers: ?Array<CatchClause>;2624 end: number;2625 innerComments: ?Array<Comment>;2626 leadingComments: ?Array<Comment>;2627 loc: {2628 end: {column: number, line: number},2629 start: {column: number, line: number},2630 };2631 start: number;2632 trailingComments: ?Array<Comment>;2633} | {2634 type: 'WhileStatement';2635 _WhileStatement: void;2636 body: Statement;2637 test: Expression;2638 end: number;2639 innerComments: ?Array<Comment>;2640 leadingComments: ?Array<Comment>;2641 loc: {2642 end: {column: number, line: number},2643 start: {column: number, line: number},2644 };2645 start: number;2646 trailingComments: ?Array<Comment>;2647} | {2648 type: 'WithStatement';2649 _WithStatement: void;2650 body: Statement;2651 object: Expression;2652 end: number;2653 innerComments: ?Array<Comment>;2654 leadingComments: ?Array<Comment>;2655 loc: {2656 end: {column: number, line: number},2657 start: {column: number, line: number},2658 };2659 start: number;2660 trailingComments: ?Array<Comment>;2661} | {2662 type: 'DeclareClass';2663 _DeclareClass: void;2664 body: ObjectTypeAnnotation;2665 extends: Array<InterfaceExtends>;2666 id: Identifier;2667 typeParameters: ?TypeParameterDeclaration;2668 end: number;2669 innerComments: ?Array<Comment>;2670 leadingComments: ?Array<Comment>;2671 loc: {2672 end: {column: number, line: number},2673 start: {column: number, line: number},2674 };2675 start: number;2676 trailingComments: ?Array<Comment>;2677} | {2678 type: 'DeclareFunction';2679 _DeclareFunction: void;2680 id: Identifier;2681 end: number;2682 innerComments: ?Array<Comment>;2683 leadingComments: ?Array<Comment>;2684 loc: {2685 end: {column: number, line: number},2686 start: {column: number, line: number},2687 };2688 start: number;2689 trailingComments: ?Array<Comment>;2690} | {2691 type: 'DeclareModule';2692 _DeclareModule: void;2693 body: BlockStatement;2694 id: Node;2695 end: number;2696 innerComments: ?Array<Comment>;2697 leadingComments: ?Array<Comment>;2698 loc: {2699 end: {column: number, line: number},2700 start: {column: number, line: number},2701 };2702 start: number;2703 trailingComments: ?Array<Comment>;2704} | {2705 type: 'DeclareVariable';2706 _DeclareVariable: void;2707 id: Identifier;2708 end: number;2709 innerComments: ?Array<Comment>;2710 leadingComments: ?Array<Comment>;2711 loc: {2712 end: {column: number, line: number},2713 start: {column: number, line: number},2714 };2715 start: number;2716 trailingComments: ?Array<Comment>;2717} | {2718 type: 'InterfaceDeclaration';2719 _InterfaceDeclaration: void;2720 body: ObjectTypeAnnotation;2721 extends: Array<InterfaceExtends>;2722 id: Identifier;2723 typeParameters: ?TypeParameterDeclaration;2724 end: number;2725 innerComments: ?Array<Comment>;2726 leadingComments: ?Array<Comment>;2727 loc: {2728 end: {column: number, line: number},2729 start: {column: number, line: number},2730 };2731 start: number;2732 trailingComments: ?Array<Comment>;2733} | {2734 type: 'TypeAlias';2735 _TypeAlias: void;2736 id: Identifier;2737 right: Type;2738 typeParameters: ?TypeParameterDeclaration;2739 end: number;2740 innerComments: ?Array<Comment>;2741 leadingComments: ?Array<Comment>;2742 loc: {2743 end: {column: number, line: number},2744 start: {column: number, line: number},2745 };2746 start: number;2747 trailingComments: ?Array<Comment>;2748};2749export type Type = {2750 type: 'AnyTypeAnnotation';2751 _AnyTypeAnnotation: void;2752 end: number;2753 innerComments: ?Array<Comment>;2754 leadingComments: ?Array<Comment>;2755 loc: {2756 end: {column: number, line: number},2757 start: {column: number, line: number},2758 };2759 start: number;2760 trailingComments: ?Array<Comment>;2761} | {2762 type: 'ArrayTypeAnnotation';2763 _ArrayTypeAnnotation: void;2764 elementType: Type;2765 end: number;2766 innerComments: ?Array<Comment>;2767 leadingComments: ?Array<Comment>;2768 loc: {2769 end: {column: number, line: number},2770 start: {column: number, line: number},2771 };2772 start: number;2773 trailingComments: ?Array<Comment>;2774} | {2775 type: 'BooleanLiteralTypeAnnotation';2776 _BooleanLiteralTypeAnnotation: void;2777 raw: string;2778 value: boolean;2779 end: number;2780 innerComments: ?Array<Comment>;2781 leadingComments: ?Array<Comment>;2782 loc: {2783 end: {column: number, line: number},2784 start: {column: number, line: number},2785 };2786 start: number;2787 trailingComments: ?Array<Comment>;2788} | {2789 type: 'BooleanTypeAnnotation';2790 _BooleanTypeAnnotation: void;2791 end: number;2792 innerComments: ?Array<Comment>;2793 leadingComments: ?Array<Comment>;2794 loc: {2795 end: {column: number, line: number},2796 start: {column: number, line: number},2797 };2798 start: number;2799 trailingComments: ?Array<Comment>;2800} | {2801 type: 'FunctionTypeAnnotation';2802 _FunctionTypeAnnotation: void;2803 params: Array<FunctionTypeParam>;2804 rest: ?FunctionTypeParam;2805 returnType: Type;2806 typeParameters: ?TypeParameterDeclaration;2807 end: number;2808 innerComments: ?Array<Comment>;2809 leadingComments: ?Array<Comment>;2810 loc: {2811 end: {column: number, line: number},2812 start: {column: number, line: number},2813 };2814 start: number;2815 trailingComments: ?Array<Comment>;2816} | {2817 type: 'GenericTypeAnnotation';2818 _GenericTypeAnnotation: void;2819 id: Node;2820 typeParameters: ?TypeParameterInstantiation;2821 end: number;2822 innerComments: ?Array<Comment>;2823 leadingComments: ?Array<Comment>;2824 loc: {2825 end: {column: number, line: number},2826 start: {column: number, line: number},2827 };2828 start: number;2829 trailingComments: ?Array<Comment>;2830} | {2831 type: 'IntersectionTypeAnnotation';2832 _IntersectionTypeAnnotation: void;2833 types: Array<Type>;2834 end: number;2835 innerComments: ?Array<Comment>;2836 leadingComments: ?Array<Comment>;2837 loc: {2838 end: {column: number, line: number},2839 start: {column: number, line: number},2840 };2841 start: number;2842 trailingComments: ?Array<Comment>;2843} | {2844 type: 'MixedTypeAnnotation';2845 _MixedTypeAnnotation: void;2846 end: number;2847 innerComments: ?Array<Comment>;2848 leadingComments: ?Array<Comment>;2849 loc: {2850 end: {column: number, line: number},2851 start: {column: number, line: number},2852 };2853 start: number;2854 trailingComments: ?Array<Comment>;2855} | {2856 type: 'NullableTypeAnnotation';2857 _NullableTypeAnnotation: void;2858 typeAnnotation: Type;2859 end: number;2860 innerComments: ?Array<Comment>;2861 leadingComments: ?Array<Comment>;2862 loc: {2863 end: {column: number, line: number},2864 start: {column: number, line: number},2865 };2866 start: number;2867 trailingComments: ?Array<Comment>;2868} | {2869 type: 'NumberLiteralTypeAnnotation';2870 _NumberLiteralTypeAnnotation: void;2871 raw: string;2872 value: number;2873 end: number;2874 innerComments: ?Array<Comment>;2875 leadingComments: ?Array<Comment>;2876 loc: {2877 end: {column: number, line: number},2878 start: {column: number, line: number},2879 };2880 start: number;2881 trailingComments: ?Array<Comment>;2882} | {2883 type: 'NumberTypeAnnotation';2884 _NumberTypeAnnotation: void;2885 end: number;2886 innerComments: ?Array<Comment>;2887 leadingComments: ?Array<Comment>;2888 loc: {2889 end: {column: number, line: number},2890 start: {column: number, line: number},2891 };2892 start: number;2893 trailingComments: ?Array<Comment>;2894} | {2895 type: 'StringLiteralTypeAnnotation';2896 _StringLiteralTypeAnnotation: void;2897 raw: string;2898 value: string;2899 end: number;2900 innerComments: ?Array<Comment>;2901 leadingComments: ?Array<Comment>;2902 loc: {2903 end: {column: number, line: number},2904 start: {column: number, line: number},2905 };2906 start: number;2907 trailingComments: ?Array<Comment>;2908} | {2909 type: 'StringTypeAnnotation';2910 _StringTypeAnnotation: void;2911 end: number;2912 innerComments: ?Array<Comment>;2913 leadingComments: ?Array<Comment>;2914 loc: {2915 end: {column: number, line: number},2916 start: {column: number, line: number},2917 };2918 start: number;2919 trailingComments: ?Array<Comment>;2920} | {2921 type: 'TupleTypeAnnotation';2922 _TupleTypeAnnotation: void;2923 types: Array<Type>;2924 end: number;2925 innerComments: ?Array<Comment>;2926 leadingComments: ?Array<Comment>;2927 loc: {2928 end: {column: number, line: number},2929 start: {column: number, line: number},2930 };2931 start: number;2932 trailingComments: ?Array<Comment>;2933} | {2934 type: 'ObjectTypeAnnotation';2935 _ObjectTypeAnnotation: void;2936 callProperties: Array<ObjectTypeCallProperty>;2937 indexers: Array<ObjectTypeIndexer>;2938 properties: Array<ObjectTypeProperty>;2939 end: number;2940 innerComments: ?Array<Comment>;2941 leadingComments: ?Array<Comment>;2942 loc: {2943 end: {column: number, line: number},2944 start: {column: number, line: number},2945 };2946 start: number;2947 trailingComments: ?Array<Comment>;2948} | {2949 type: 'UnionTypeAnnotation';2950 _UnionTypeAnnotation: void;2951 types: Array<Type>;2952 end: number;2953 innerComments: ?Array<Comment>;2954 leadingComments: ?Array<Comment>;2955 loc: {2956 end: {column: number, line: number},2957 start: {column: number, line: number},2958 };2959 start: number;2960 trailingComments: ?Array<Comment>;2961} | {2962 type: 'VoidTypeAnnotation';2963 _VoidTypeAnnotation: void;2964 end: number;2965 innerComments: ?Array<Comment>;2966 leadingComments: ?Array<Comment>;2967 loc: {2968 end: {column: number, line: number},2969 start: {column: number, line: number},2970 };2971 start: number;2972 trailingComments: ?Array<Comment>;2973};2974// Concrete Types. Nothing can extend these.2975export type CommentLine = {2976 type: 'CommentLine';2977 _CommentLine: void;2978 value: string;2979 end: number;2980 loc: {2981 end: {column: number, line: number},2982 start: {column: number, line: number},2983 };2984 start: number;2985};2986export type CommentBlock = {2987 type: 'CommentBlock';2988 _CommentBlock: void;2989 value: string;2990 end: number;2991 loc: {2992 end: {column: number, line: number},2993 start: {column: number, line: number},2994 };2995 start: number;2996};2997// Babel concrete types.2998export type ArrayExpression = {2999 type: 'ArrayExpression';3000 _ArrayExpression: void;3001 elements: Array<?Node>;3002 end: number;3003 innerComments: ?Array<Comment>;3004 leadingComments: ?Array<Comment>;3005 loc: {3006 end: {column: number, line: number},3007 start: {column: number, line: number},3008 };3009 start: number;3010 trailingComments: ?Array<Comment>;3011};3012export type ArrayPattern = {3013 type: 'ArrayPattern';3014 _ArrayPattern: void;3015 elements: Array<?Node>;3016 typeAnnotation: ?TypeAnnotation;3017 end: number;3018 innerComments: ?Array<Comment>;3019 leadingComments: ?Array<Comment>;3020 loc: {3021 end: {column: number, line: number},3022 start: {column: number, line: number},3023 };3024 start: number;3025 trailingComments: ?Array<Comment>;3026};3027export type ArrowFunctionExpression = {3028 type: 'ArrowFunctionExpression';3029 _ArrowFunctionExpression: void;3030 body: Node;3031 id: ?Identifier;3032 end: number;3033 innerComments: ?Array<Comment>;3034 leadingComments: ?Array<Comment>;3035 loc: {3036 end: {column: number, line: number},3037 start: {column: number, line: number},3038 };3039 start: number;3040 trailingComments: ?Array<Comment>;3041 async: boolean;3042 defaults: Array<?Expression>;3043 expression: boolean;3044 generator: boolean;3045 params: Array<Pattern>;3046 rest: ?Identifier;3047 returnType: ?TypeAnnotation;3048 typeParameters: ?TypeParameterDeclaration;3049};3050type AssignmentOperator =3051 '=' |3052 '+=' |3053 '-=' |3054 '*=' |3055 '/=' |3056 '%=' |3057 '<<=' |3058 '>>=' |3059 '>>>=' |3060 '|=' |3061 '^=' |3062 '&=';3063export type AssignmentExpression = {3064 type: 'AssignmentExpression';3065 _AssignmentExpression: void;3066 left: Pattern;3067 operator: AssignmentOperator;3068 right: Expression;3069 end: number;3070 innerComments: ?Array<Comment>;3071 leadingComments: ?Array<Comment>;3072 loc: {3073 end: {column: number, line: number},3074 start: {column: number, line: number},3075 };3076 start: number;3077 trailingComments: ?Array<Comment>;3078};3079export type AssignmentPattern = {3080 type: 'AssignmentPattern';3081 _AssignmentPattern: void;3082 left: Pattern;3083 right: Expression;3084 end: number;3085 innerComments: ?Array<Comment>;3086 leadingComments: ?Array<Comment>;3087 loc: {3088 end: {column: number, line: number},3089 start: {column: number, line: number},3090 };3091 start: number;3092 trailingComments: ?Array<Comment>;3093};3094export type AwaitExpression = {3095 type: 'AwaitExpression';3096 _AwaitExpression: void;3097 all: boolean;3098 argument: ?Expression;3099 end: number;3100 innerComments: ?Array<Comment>;3101 leadingComments: ?Array<Comment>;3102 loc: {3103 end: {column: number, line: number},3104 start: {column: number, line: number},3105 };3106 start: number;3107 trailingComments: ?Array<Comment>;3108};3109type BinaryOperator =3110 '==' |3111 '!=' |3112 '===' |3113 '!==' |3114 '<' |3115 '<=' |3116 '>' |3117 '>=' |3118 '<<' |3119 '>>' |3120 '>>>' |3121 '+' |3122 '-' |3123 '*' |3124 '/' |3125 '%' |3126 '&' |3127 '|' |3128 '^' |3129 'in' |3130 'instanceof' |3131 '..';3132export type BinaryExpression = {3133 type: 'BinaryExpression';3134 _BinaryExpression: void;3135 left: Expression;3136 operator: BinaryOperator;3137 right: Expression;3138 end: number;3139 innerComments: ?Array<Comment>;3140 leadingComments: ?Array<Comment>;3141 loc: {3142 end: {column: number, line: number},3143 start: {column: number, line: number},3144 };3145 start: number;3146 trailingComments: ?Array<Comment>;3147};3148// TODO: What is this?3149export type BindExpression = {3150 type: 'BindExpression';3151 _BindExpression: void;3152 callee: Node;3153 object: Node;3154 end: number;3155 innerComments: ?Array<Comment>;3156 leadingComments: ?Array<Comment>;3157 loc: {3158 end: {column: number, line: number},3159 start: {column: number, line: number},3160 };3161 start: number;3162 trailingComments: ?Array<Comment>;3163};3164export type BlockStatement = {3165 type: 'BlockStatement';3166 _BlockStatement: void;3167 body: Array<Statement>;3168 end: number;3169 innerComments: ?Array<Comment>;3170 leadingComments: ?Array<Comment>;3171 loc: {3172 end: {column: number, line: number},3173 start: {column: number, line: number},3174 };3175 start: number;3176 trailingComments: ?Array<Comment>;3177};3178export type BreakStatement = {3179 type: 'BreakStatement';3180 _BreakStatement: void;3181 label: ?Identifier;3182 end: number;3183 innerComments: ?Array<Comment>;3184 leadingComments: ?Array<Comment>;3185 loc: {3186 end: {column: number, line: number},3187 start: {column: number, line: number},3188 };3189 start: number;3190 trailingComments: ?Array<Comment>;3191};3192export type CallExpression = {3193 type: 'CallExpression';3194 _CallExpression: void;3195 arguments: Array<Node>;3196 callee: Expression;3197 end: number;3198 innerComments: ?Array<Comment>;3199 leadingComments: ?Array<Comment>;3200 loc: {3201 end: {column: number, line: number},3202 start: {column: number, line: number},3203 };3204 start: number;3205 trailingComments: ?Array<Comment>;3206};3207export type CatchClause = {3208 type: 'CatchClause';3209 _CatchClause: void;3210 body: BlockStatement;3211 param: Pattern;3212 end: number;3213 innerComments: ?Array<Comment>;3214 leadingComments: ?Array<Comment>;3215 loc: {3216 end: {column: number, line: number},3217 start: {column: number, line: number},3218 };3219 start: number;3220 trailingComments: ?Array<Comment>;3221};3222export type ClassBody = {3223 type: 'ClassBody';3224 _ClassBody: void;3225 body: Array<Node>;3226 end: number;3227 innerComments: ?Array<Comment>;3228 leadingComments: ?Array<Comment>;3229 loc: {3230 end: {column: number, line: number},3231 start: {column: number, line: number},3232 };3233 start: number;3234 trailingComments: ?Array<Comment>;3235};3236export type ClassDeclaration = {3237 type: 'ClassDeclaration';3238 _ClassDeclaration: void;3239 body: ClassBody;3240 id: ?Identifier;3241 superClass: ?Expression;3242 decorators: any;3243 superTypeParameters: any;3244 typeParameters: any;3245 end: number;3246 innerComments: ?Array<Comment>;3247 leadingComments: ?Array<Comment>;3248 loc: {3249 end: {column: number, line: number},3250 start: {column: number, line: number},3251 };3252 start: number;3253 trailingComments: ?Array<Comment>;3254};3255export type ClassExpression = {3256 type: 'ClassExpression';3257 _ClassExpression: void;3258 body: ClassBody;3259 id: ?Identifier;3260 superClass: ?Expression;3261 decorators: any;3262 superTypeParameters: any;3263 typeParameters: any;3264 end: number;3265 innerComments: ?Array<Comment>;3266 leadingComments: ?Array<Comment>;3267 loc: {3268 end: {column: number, line: number},3269 start: {column: number, line: number},3270 };3271 start: number;3272 trailingComments: ?Array<Comment>;3273};3274export type ComprehensionBlock = {3275 type: 'ComprehensionBlock';3276 _ComprehensionBlock: void;3277 each: boolean;3278 left: Pattern;3279 right: Expression;3280 end: number;3281 innerComments: ?Array<Comment>;3282 leadingComments: ?Array<Comment>;3283 loc: {3284 end: {column: number, line: number},3285 start: {column: number, line: number},3286 };3287 start: number;3288 trailingComments: ?Array<Comment>;3289};3290export type ComprehensionExpression = {3291 type: 'ComprehensionExpression';3292 _ComprehensionExpression: void;3293 body: Expression;3294 blocks: Array<ComprehensionBlock>;3295 filter: ?Expression;3296 end: number;3297 innerComments: ?Array<Comment>;3298 leadingComments: ?Array<Comment>;3299 loc: {3300 end: {column: number, line: number},3301 start: {column: number, line: number},3302 };3303 start: number;3304 trailingComments: ?Array<Comment>;3305};3306export type ConditionalExpression = {3307 type: 'ConditionalExpression';3308 _ConditionalExpression: void;3309 alternate: Expression;3310 consequent: Expression;3311 test: Expression;3312 end: number;3313 innerComments: ?Array<Comment>;3314 leadingComments: ?Array<Comment>;3315 loc: {3316 end: {column: number, line: number},3317 start: {column: number, line: number},3318 };3319 start: number;3320 trailingComments: ?Array<Comment>;3321};3322export type ContinueStatement = {3323 type: 'ContinueStatement';3324 _ContinueStatement: void;3325 label: ?Identifier;3326 end: number;3327 innerComments: ?Array<Comment>;3328 leadingComments: ?Array<Comment>;3329 loc: {3330 end: {column: number, line: number},3331 start: {column: number, line: number},3332 };3333 start: number;3334 trailingComments: ?Array<Comment>;3335};3336// TODO: Make this correct.3337export type Decorator = {3338 type: 'Decorator';3339 _Decorator: void;3340 expression: Expression;3341 end: number;3342 innerComments: ?Array<Comment>;3343 leadingComments: ?Array<Comment>;3344 loc: {3345 end: {column: number, line: number},3346 start: {column: number, line: number},3347 };3348 start: number;3349 trailingComments: ?Array<Comment>;3350};3351export type DebuggerStatement = {3352 type: 'DebuggerStatement';3353 _DebuggerStatement: void;3354 end: number;3355 innerComments: ?Array<Comment>;3356 leadingComments: ?Array<Comment>;3357 loc: {3358 end: {column: number, line: number},3359 start: {column: number, line: number},3360 };3361 start: number;3362 trailingComments: ?Array<Comment>;3363};3364export type DoWhileStatement = {3365 type: 'DoWhileStatement';3366 _DoWhileStatement: void;3367 body: Statement;3368 test: Expression;3369 end: number;3370 innerComments: ?Array<Comment>;3371 leadingComments: ?Array<Comment>;3372 loc: {3373 end: {column: number, line: number},3374 start: {column: number, line: number},3375 };3376 start: number;3377 trailingComments: ?Array<Comment>;3378};3379// TODO: Make this correct.3380export type DoExpression = {3381 type: 'DoExpression';3382 _DoExpression: void;3383 body: Statement;3384 end: number;3385 innerComments: ?Array<Comment>;3386 leadingComments: ?Array<Comment>;3387 loc: {3388 end: {column: number, line: number},3389 start: {column: number, line: number},3390 };3391 start: number;3392 trailingComments: ?Array<Comment>;3393};3394export type EmptyStatement = {3395 type: 'EmptyStatement';3396 _EmptyStatement: void;3397 end: number;3398 innerComments: ?Array<Comment>;3399 leadingComments: ?Array<Comment>;3400 loc: {3401 end: {column: number, line: number},3402 start: {column: number, line: number},3403 };3404 start: number;3405 trailingComments: ?Array<Comment>;3406};3407export type ExpressionStatement = {3408 type: 'ExpressionStatement';3409 _ExpressionStatement: void;3410 expression: Expression;3411 end: number;3412 innerComments: ?Array<Comment>;3413 leadingComments: ?Array<Comment>;3414 loc: {3415 end: {column: number, line: number},3416 start: {column: number, line: number},3417 };3418 start: number;3419 trailingComments: ?Array<Comment>;3420};3421export type File = {3422 type: 'File';3423 _File: void;3424 program: Program;3425 end: number;3426 innerComments: ?Array<Comment>;3427 leadingComments: ?Array<Comment>;3428 loc: {3429 end: {column: number, line: number},3430 start: {column: number, line: number},3431 };3432 start: number;3433 trailingComments: ?Array<Comment>;3434};3435export type ForInStatement = {3436 type: 'ForInStatement';3437 _ForInStatement: void;3438 body: Statement;3439 left: Node;3440 right: Expression;3441 end: number;3442 innerComments: ?Array<Comment>;3443 leadingComments: ?Array<Comment>;3444 loc: {3445 end: {column: number, line: number},3446 start: {column: number, line: number},3447 };3448 start: number;3449 trailingComments: ?Array<Comment>;3450};3451// TODO: Make this correct.3452export type ForOfStatement = {3453 type: 'ForOfStatement';3454 _ForOfStatement: void;3455 body: Statement;3456 left: Node;3457 right: Expression;3458 end: number;3459 innerComments: ?Array<Comment>;3460 leadingComments: ?Array<Comment>;3461 loc: {3462 end: {column: number, line: number},3463 start: {column: number, line: number},3464 };3465 start: number;3466 trailingComments: ?Array<Comment>;3467};3468export type ForStatement = {3469 type: 'ForStatement';3470 _ForStatement: void;3471 init: ?Node;3472 test: ?Expression;3473 update: ?Expression;3474 body: Statement;3475 end: number;3476 innerComments: ?Array<Comment>;3477 leadingComments: ?Array<Comment>;3478 loc: {3479 end: {column: number, line: number},3480 start: {column: number, line: number},3481 };3482 start: number;3483 trailingComments: ?Array<Comment>;3484};3485export type FunctionDeclaration = {3486 type: 'FunctionDeclaration';3487 _FunctionDeclaration: void;3488 body: BlockStatement;3489 id: Identifier;3490 end: number;3491 innerComments: ?Array<Comment>;3492 leadingComments: ?Array<Comment>;3493 loc: {3494 end: {column: number, line: number},3495 start: {column: number, line: number},3496 };3497 start: number;3498 trailingComments: ?Array<Comment>;3499 async: boolean;3500 defaults: Array<?Expression>;3501 expression: boolean;3502 generator: boolean;3503 params: Array<Pattern>;3504 rest: ?Identifier;3505 returnType: ?TypeAnnotation;3506 typeParameters: ?TypeParameterDeclaration;3507};3508export type FunctionExpression = {3509 type: 'FunctionExpression';3510 _FunctionExpression: void;3511 body: BlockStatement;3512 id: ?Identifier;3513 end: number;3514 innerComments: ?Array<Comment>;3515 leadingComments: ?Array<Comment>;3516 loc: {3517 end: {column: number, line: number},3518 start: {column: number, line: number},3519 };3520 start: number;3521 trailingComments: ?Array<Comment>;3522 async: boolean;3523 defaults: Array<?Expression>;3524 expression: boolean;3525 generator: boolean;3526 params: Array<Pattern>;3527 rest: ?Identifier;3528 returnType: ?TypeAnnotation;3529 typeParameters: ?TypeParameterDeclaration;3530};3531export type Identifier = {3532 type: 'Identifier';3533 _Identifier: void;3534 name: string;3535 typeAnnotation: ?TypeAnnotation;3536 end: number;3537 innerComments: ?Array<Comment>;3538 leadingComments: ?Array<Comment>;3539 loc: {3540 end: {column: number, line: number},3541 start: {column: number, line: number},3542 };3543 start: number;3544 trailingComments: ?Array<Comment>;3545};3546export type IfStatement = {3547 type: 'IfStatement';3548 _IfStatement: void;3549 alternate: ?Statement;3550 consequent: Statement;3551 test: Expression;3552 end: number;3553 innerComments: ?Array<Comment>;3554 leadingComments: ?Array<Comment>;3555 loc: {3556 end: {column: number, line: number},3557 start: {column: number, line: number},3558 };3559 start: number;3560 trailingComments: ?Array<Comment>;3561};3562// TODO: Make this correct.3563export type ImportDefaultSpecifier = {3564 type: 'ImportDefaultSpecifier';3565 _ImportDefaultSpecifier: void;3566 local: Node;3567 end: number;3568 innerComments: ?Array<Comment>;3569 leadingComments: ?Array<Comment>;3570 loc: {3571 end: {column: number, line: number},3572 start: {column: number, line: number},3573 };3574 start: number;3575 trailingComments: ?Array<Comment>;3576};3577// TODO: Make this correct.3578export type ImportNamespaceSpecifier = {3579 type: 'ImportNamespaceSpecifier';3580 _ImportNamespaceSpecifier: void;3581 local: Node;3582 end: number;3583 innerComments: ?Array<Comment>;3584 leadingComments: ?Array<Comment>;3585 loc: {3586 end: {column: number, line: number},3587 start: {column: number, line: number},3588 };3589 start: number;3590 trailingComments: ?Array<Comment>;3591};3592// TODO: Make this correct.3593export type ImportDeclaration = {3594 type: 'ImportDeclaration';3595 _ImportDeclaration: void;3596 specifiers: Array<Node>;3597 source: Literal;3598 end: number;3599 innerComments: ?Array<Comment>;3600 leadingComments: ?Array<Comment>;3601 loc: {3602 end: {column: number, line: number},3603 start: {column: number, line: number},3604 };3605 start: number;3606 trailingComments: ?Array<Comment>;3607};3608// TODO: Make this correct.3609export type ImportSpecifier = {3610 type: 'ImportSpecifier';3611 _ImportSpecifier: void;3612 imported: Node;3613 local: Node;3614 end: number;3615 innerComments: ?Array<Comment>;3616 leadingComments: ?Array<Comment>;3617 loc: {3618 end: {column: number, line: number},3619 start: {column: number, line: number},3620 };3621 start: number;3622 trailingComments: ?Array<Comment>;3623};3624export type LabeledStatement = {3625 type: 'LabeledStatement';3626 _LabeledStatement: void;3627 body: Statement;3628 label: Identifier;3629 end: number;3630 innerComments: ?Array<Comment>;3631 leadingComments: ?Array<Comment>;3632 loc: {3633 end: {column: number, line: number},3634 start: {column: number, line: number},3635 };3636 start: number;3637 trailingComments: ?Array<Comment>;3638};3639export type Literal = {3640 type: 'Literal';3641 _Literal: void;3642 raw: string;3643 regex: ?{pattern: string, flags: string};3644 value: ?(string | boolean | number | RegExp);3645 end: number;3646 innerComments: ?Array<Comment>;3647 leadingComments: ?Array<Comment>;3648 loc: {3649 end: {column: number, line: number},3650 start: {column: number, line: number},3651 };3652 start: number;3653 trailingComments: ?Array<Comment>;3654};3655type LogicalOperator = '||' | '&&';3656export type LogicalExpression = {3657 type: 'LogicalExpression';3658 _LogicalExpression: void;3659 left: Expression;3660 operator: LogicalOperator;3661 right: Expression;3662 end: number;3663 innerComments: ?Array<Comment>;3664 leadingComments: ?Array<Comment>;3665 loc: {3666 end: {column: number, line: number},3667 start: {column: number, line: number},3668 };3669 start: number;3670 trailingComments: ?Array<Comment>;3671};3672export type MemberExpression = {3673 type: 'MemberExpression';3674 _MemberExpression: void;3675 computed: boolean;3676 object: Expression;3677 property: Node;3678 end: number;3679 innerComments: ?Array<Comment>;3680 leadingComments: ?Array<Comment>;3681 loc: {3682 end: {column: number, line: number},3683 start: {column: number, line: number},3684 };3685 start: number;3686 trailingComments: ?Array<Comment>;3687};3688// TODO: Make this correct.3689export type MetaProperty = {3690 type: 'MetaProperty';3691 _MetaProperty: void;3692 meta: Node;3693 property: Node;3694 end: number;3695 innerComments: ?Array<Comment>;3696 leadingComments: ?Array<Comment>;3697 loc: {3698 end: {column: number, line: number},3699 start: {column: number, line: number},3700 };3701 start: number;3702 trailingComments: ?Array<Comment>;3703};3704export type MethodDefinition = {3705 type: 'MethodDefinition';3706 _MethodDefinition: void;3707 computed: boolean;3708 key: Node;3709 kind: 'constructor' | 'method' | 'get' | 'set';3710 static: boolean;3711 value: FunctionExpression;3712 decorators: ?Array<Decorator>;3713 end: number;3714 innerComments: ?Array<Comment>;3715 leadingComments: ?Array<Comment>;3716 loc: {3717 end: {column: number, line: number},3718 start: {column: number, line: number},3719 };3720 start: number;3721 trailingComments: ?Array<Comment>;3722};3723export type NewExpression = {3724 type: 'NewExpression';3725 _NewExpression: void;3726 arguments: Array<Node>;3727 callee: Expression;3728 end: number;3729 innerComments: ?Array<Comment>;3730 leadingComments: ?Array<Comment>;3731 loc: {3732 end: {column: number, line: number},3733 start: {column: number, line: number},3734 };3735 start: number;3736 trailingComments: ?Array<Comment>;3737};3738export type Noop = {3739 type: 'Noop';3740 _Noop: void;3741 end: number;3742 innerComments: ?Array<Comment>;3743 leadingComments: ?Array<Comment>;3744 loc: {3745 end: {column: number, line: number},3746 start: {column: number, line: number},3747 };3748 start: number;3749 trailingComments: ?Array<Comment>;3750};3751export type ObjectExpression = {3752 type: 'ObjectExpression';3753 _ObjectExpression: void;3754 properties: Array<Node>;3755 end: number;3756 innerComments: ?Array<Comment>;3757 leadingComments: ?Array<Comment>;3758 loc: {3759 end: {column: number, line: number},3760 start: {column: number, line: number},3761 };3762 start: number;3763 trailingComments: ?Array<Comment>;3764};3765export type ObjectPattern = {3766 type: 'ObjectPattern';3767 _ObjectPattern: void;3768 properties: Array<Node>;3769 typeAnnotation: ?TypeAnnotation;3770 end: number;3771 innerComments: ?Array<Comment>;3772 leadingComments: ?Array<Comment>;3773 loc: {3774 end: {column: number, line: number},3775 start: {column: number, line: number},3776 };3777 start: number;3778 trailingComments: ?Array<Comment>;3779};3780export type Program = {3781 type: 'Program';3782 _Program: void;3783 body: Array<Statement>;3784 end: number;3785 innerComments: ?Array<Comment>;3786 leadingComments: ?Array<Comment>;3787 loc: {3788 end: {column: number, line: number},3789 start: {column: number, line: number},3790 };3791 start: number;3792 trailingComments: ?Array<Comment>;3793};3794export type Property = {3795 type: 'Property';3796 _Property: void;3797 computed: boolean;3798 key: Node;3799 kind: 'init' | 'get' | 'set';3800 method: boolean;3801 shorthand: boolean;3802 value: Node;3803 decorators: ?Array<Decorator>;3804 end: number;3805 innerComments: ?Array<Comment>;3806 leadingComments: ?Array<Comment>;3807 loc: {3808 end: {column: number, line: number},3809 start: {column: number, line: number},3810 };3811 start: number;3812 trailingComments: ?Array<Comment>;3813};3814export type RestElement = {3815 type: 'RestElement';3816 _RestElement: void;3817 argument: Pattern;3818 typeAnnotation: ?TypeAnnotation;3819 end: number;3820 innerComments: ?Array<Comment>;3821 leadingComments: ?Array<Comment>;3822 loc: {3823 end: {column: number, line: number},3824 start: {column: number, line: number},3825 };3826 start: number;3827 trailingComments: ?Array<Comment>;3828};3829export type ReturnStatement = {3830 type: 'ReturnStatement';3831 _ReturnStatement: void;3832 argument: ?Expression;3833 end: number;3834 innerComments: ?Array<Comment>;3835 leadingComments: ?Array<Comment>;3836 loc: {3837 end: {column: number, line: number},3838 start: {column: number, line: number},3839 };3840 start: number;3841 trailingComments: ?Array<Comment>;3842};3843export type SequenceExpression = {3844 type: 'SequenceExpression';3845 _SequenceExpression: void;3846 expression: Array<Expression>;3847 end: number;3848 innerComments: ?Array<Comment>;3849 leadingComments: ?Array<Comment>;3850 loc: {3851 end: {column: number, line: number},3852 start: {column: number, line: number},3853 };3854 start: number;3855 trailingComments: ?Array<Comment>;3856};3857export type SpreadElement = {3858 type: 'SpreadElement';3859 _SpreadElement: void;3860 argument: Expression;3861 end: number;3862 innerComments: ?Array<Comment>;3863 leadingComments: ?Array<Comment>;3864 loc: {3865 end: {column: number, line: number},3866 start: {column: number, line: number},3867 };3868 start: number;3869 trailingComments: ?Array<Comment>;3870};3871export type SpreadProperty = {3872 type: 'SpreadProperty';3873 _SpreadProperty: void;3874 argument: Expression;3875 end: number;3876 innerComments: ?Array<Comment>;3877 leadingComments: ?Array<Comment>;3878 loc: {3879 end: {column: number, line: number},3880 start: {column: number, line: number},3881 };3882 start: number;3883 trailingComments: ?Array<Comment>;3884};3885export type Super = {3886 type: 'Super';3887 _Super: void;3888 end: number;3889 innerComments: ?Array<Comment>;3890 leadingComments: ?Array<Comment>;3891 loc: {3892 end: {column: number, line: number},3893 start: {column: number, line: number},3894 };3895 start: number;3896 trailingComments: ?Array<Comment>;3897};3898export type SwitchCase = {3899 type: 'SwitchCase';3900 _SwitchCase: void;3901 consequent: Array<Statement>;3902 test: ?Expression;3903 end: number;3904 innerComments: ?Array<Comment>;3905 leadingComments: ?Array<Comment>;3906 loc: {3907 end: {column: number, line: number},3908 start: {column: number, line: number},3909 };3910 start: number;3911 trailingComments: ?Array<Comment>;3912};3913export type SwitchStatement = {3914 type: 'SwitchStatement';3915 _SwitchStatement: void;3916 cases: Array<SwitchCase>;3917 discriminant: Expression;3918 lexical: boolean;3919 end: number;3920 innerComments: ?Array<Comment>;3921 leadingComments: ?Array<Comment>;3922 loc: {3923 end: {column: number, line: number},3924 start: {column: number, line: number},3925 };3926 start: number;3927 trailingComments: ?Array<Comment>;3928};3929export type TaggedTemplateExpression = {3930 type: 'TaggedTemplateExpression';3931 _TaggedTemplateExpression: void;3932 quasi: TemplateLiteral;3933 tag: Expression;3934 end: number;3935 innerComments: ?Array<Comment>;3936 leadingComments: ?Array<Comment>;3937 loc: {3938 end: {column: number, line: number},3939 start: {column: number, line: number},3940 };3941 start: number;3942 trailingComments: ?Array<Comment>;3943};3944export type TemplateElement = {3945 type: 'TemplateElement';3946 _TemplateElement: void;3947 tail: boolean;3948 value: {cooked: string, raw: string};3949 end: number;3950 innerComments: ?Array<Comment>;3951 leadingComments: ?Array<Comment>;3952 loc: {3953 end: {column: number, line: number},3954 start: {column: number, line: number},3955 };3956 start: number;3957 trailingComments: ?Array<Comment>;3958};3959export type TemplateLiteral = {3960 type: 'TemplateLiteral';3961 _TemplateLiteral: void;3962 expressions: Array<Expression>;3963 quasis: Array<TemplateElement>;3964 end: number;3965 innerComments: ?Array<Comment>;3966 leadingComments: ?Array<Comment>;3967 loc: {3968 end: {column: number, line: number},3969 start: {column: number, line: number},3970 };3971 start: number;3972 trailingComments: ?Array<Comment>;3973};3974export type ThisExpression = {3975 type: 'ThisExpression';3976 _ThisExpression: void;3977 end: number;3978 innerComments: ?Array<Comment>;3979 leadingComments: ?Array<Comment>;3980 loc: {3981 end: {column: number, line: number},3982 start: {column: number, line: number},3983 };3984 start: number;3985 trailingComments: ?Array<Comment>;3986};3987export type ThrowStatement = {3988 type: 'ThrowStatement';3989 _ThrowStatement: void;3990 argument: Expression;3991 end: number;3992 innerComments: ?Array<Comment>;3993 leadingComments: ?Array<Comment>;3994 loc: {3995 end: {column: number, line: number},3996 start: {column: number, line: number},3997 };3998 start: number;3999 trailingComments: ?Array<Comment>;4000};4001export type TryStatement = {4002 type: 'TryStatement';4003 _TryStatement: void;4004 block: BlockStatement;4005 finalizer: ?BlockStatement;4006 guardedHandlers: Array<CatchClause>;4007 handler: ?CatchClause;4008 handlers: ?Array<CatchClause>;4009 end: number;4010 innerComments: ?Array<Comment>;4011 leadingComments: ?Array<Comment>;4012 loc: {4013 end: {column: number, line: number},4014 start: {column: number, line: number},4015 };4016 start: number;4017 trailingComments: ?Array<Comment>;4018};4019type UnaryOperator = '-' | '+' | '!' | '~' | 'typeof' | 'void' | 'delete';4020export type UnaryExpression = {4021 type: 'UnaryExpression';4022 _UnaryExpression: void;4023 argument: Expression;4024 operator: UnaryOperator;4025 prefix: true;4026 end: number;4027 innerComments: ?Array<Comment>;4028 leadingComments: ?Array<Comment>;4029 loc: {4030 end: {column: number, line: number},4031 start: {column: number, line: number},4032 };4033 start: number;4034 trailingComments: ?Array<Comment>;4035};4036type UpdateOperator = '++' | '--';4037export type UpdateExpression = {4038 type: 'UpdateExpression';4039 _UpdateExpression: void;4040 argument: Expression;4041 operator: UpdateOperator;4042 prefix: boolean;4043 end: number;4044 innerComments: ?Array<Comment>;4045 leadingComments: ?Array<Comment>;4046 loc: {4047 end: {column: number, line: number},4048 start: {column: number, line: number},4049 };4050 start: number;4051 trailingComments: ?Array<Comment>;4052};4053export type VariableDeclaration = {4054 type: 'VariableDeclaration';4055 _VariableDeclaration: void;4056 declarations: Array<VariableDeclarator>;4057 kind: 'var' | 'let' | 'const';4058 end: number;4059 innerComments: ?Array<Comment>;4060 leadingComments: ?Array<Comment>;4061 loc: {4062 end: {column: number, line: number},4063 start: {column: number, line: number},4064 };4065 start: number;4066 trailingComments: ?Array<Comment>;4067};4068export type VariableDeclarator = {4069 type: 'VariableDeclarator';4070 _VariableDeclarator: void;4071 id: Pattern;4072 init: ?Expression;4073 end: number;4074 innerComments: ?Array<Comment>;4075 leadingComments: ?Array<Comment>;4076 loc: {4077 end: {column: number, line: number},4078 start: {column: number, line: number},4079 };4080 start: number;4081 trailingComments: ?Array<Comment>;4082};4083export type WhileStatement = {4084 type: 'WhileStatement';4085 _WhileStatement: void;4086 body: Statement;4087 test: Expression;4088 end: number;4089 innerComments: ?Array<Comment>;4090 leadingComments: ?Array<Comment>;4091 loc: {4092 end: {column: number, line: number},4093 start: {column: number, line: number},4094 };4095 start: number;4096 trailingComments: ?Array<Comment>;4097};4098export type WithStatement = {4099 type: 'WithStatement';4100 _WithStatement: void;4101 body: Statement;4102 object: Expression;4103 end: number;4104 innerComments: ?Array<Comment>;4105 leadingComments: ?Array<Comment>;4106 loc: {4107 end: {column: number, line: number},4108 start: {column: number, line: number},4109 };4110 start: number;4111 trailingComments: ?Array<Comment>;4112};4113export type YieldExpression = {4114 type: 'YieldExpression';4115 _YieldExpression: void;4116 argument: ?Expression;4117 delegate: boolean;4118 end: number;4119 innerComments: ?Array<Comment>;4120 leadingComments: ?Array<Comment>;4121 loc: {4122 end: {column: number, line: number},4123 start: {column: number, line: number},4124 };4125 start: number;4126 trailingComments: ?Array<Comment>;4127};4128// TODO: Make this correct.4129export type ExportAllDeclaration = {4130 type: 'ExportAllDeclaration';4131 _ExportAllDeclaration: void;4132 exported: Node;4133 source: Node;4134 end: number;4135 innerComments: ?Array<Comment>;4136 leadingComments: ?Array<Comment>;4137 loc: {4138 end: {column: number, line: number},4139 start: {column: number, line: number},4140 };4141 start: number;4142 trailingComments: ?Array<Comment>;4143};4144// TODO: Make this correct.4145export type ExportDefaultDeclaration = {4146 type: 'ExportDefaultDeclaration';4147 _ExportDefaultDeclaration: void;4148 declaration: Node;4149 end: number;4150 innerComments: ?Array<Comment>;4151 leadingComments: ?Array<Comment>;4152 loc: {4153 end: {column: number, line: number},4154 start: {column: number, line: number},4155 };4156 start: number;4157 trailingComments: ?Array<Comment>;4158};4159// TODO: Make this correct.4160export type ExportNamedDeclaration = {4161 type: 'ExportNamedDeclaration';4162 _ExportNamedDeclaration: void;4163 declaration: Node;4164 source: Literal;4165 specifiers: Array<Node>;4166 end: number;4167 innerComments: ?Array<Comment>;4168 leadingComments: ?Array<Comment>;4169 loc: {4170 end: {column: number, line: number},4171 start: {column: number, line: number},4172 };4173 start: number;4174 trailingComments: ?Array<Comment>;4175};4176// TODO: Make this correct.4177export type ExportDefaultSpecifier = {4178 type: 'ExportDefaultSpecifier';4179 _ExportDefaultSpecifier: void;4180 exported: Node;4181 end: number;4182 innerComments: ?Array<Comment>;4183 leadingComments: ?Array<Comment>;4184 loc: {4185 end: {column: number, line: number},4186 start: {column: number, line: number},4187 };4188 start: number;4189 trailingComments: ?Array<Comment>;4190};4191// TODO: Make this correct.4192export type ExportNamespaceSpecifier = {4193 type: 'ExportNamespaceSpecifier';4194 _ExportNamespaceSpecifier: void;4195 exported: Node;4196 end: number;4197 innerComments: ?Array<Comment>;4198 leadingComments: ?Array<Comment>;4199 loc: {4200 end: {column: number, line: number},4201 start: {column: number, line: number},4202 };4203 start: number;4204 trailingComments: ?Array<Comment>;4205};4206// TODO: Make this correct.4207export type ExportSpecifier = {4208 type: 'ExportSpecifier';4209 _ExportSpecifier: void;4210 local: Node;4211 exported: Node;4212 end: number;4213 innerComments: ?Array<Comment>;4214 leadingComments: ?Array<Comment>;4215 loc: {4216 end: {column: number, line: number},4217 start: {column: number, line: number},4218 };4219 start: number;4220 trailingComments: ?Array<Comment>;4221};4222export type AnyTypeAnnotation = {4223 type: 'AnyTypeAnnotation';4224 _AnyTypeAnnotation: void;4225 end: number;4226 innerComments: ?Array<Comment>;4227 leadingComments: ?Array<Comment>;4228 loc: {4229 end: {column: number, line: number},4230 start: {column: number, line: number},4231 };4232 start: number;4233 trailingComments: ?Array<Comment>;4234};4235export type ArrayTypeAnnotation = {4236 type: 'ArrayTypeAnnotation';4237 _ArrayTypeAnnotation: void;4238 elementType: Type;4239 end: number;4240 innerComments: ?Array<Comment>;4241 leadingComments: ?Array<Comment>;4242 loc: {4243 end: {column: number, line: number},4244 start: {column: number, line: number},4245 };4246 start: number;4247 trailingComments: ?Array<Comment>;4248};4249export type BooleanLiteralTypeAnnotation = {4250 type: 'BooleanLiteralTypeAnnotation';4251 _BooleanLiteralTypeAnnotation: void;4252 raw: string;4253 value: boolean;4254 end: number;4255 innerComments: ?Array<Comment>;4256 leadingComments: ?Array<Comment>;4257 loc: {4258 end: {column: number, line: number},4259 start: {column: number, line: number},4260 };4261 start: number;4262 trailingComments: ?Array<Comment>;4263};4264export type BooleanTypeAnnotation = {4265 type: 'BooleanTypeAnnotation';4266 _BooleanTypeAnnotation: void;4267 end: number;4268 innerComments: ?Array<Comment>;4269 leadingComments: ?Array<Comment>;4270 loc: {4271 end: {column: number, line: number},4272 start: {column: number, line: number},4273 };4274 start: number;4275 trailingComments: ?Array<Comment>;4276};4277export type ClassImplements = {4278 type: 'ClassImplements';4279 _ClassImplements: void;4280 id: Identifier;4281 typeParameters: ?TypeParameterInstantiation;4282 superClass: ?Expression;4283 end: number;4284 innerComments: ?Array<Comment>;4285 leadingComments: ?Array<Comment>;4286 loc: {4287 end: {column: number, line: number},4288 start: {column: number, line: number},4289 };4290 start: number;4291 trailingComments: ?Array<Comment>;4292};4293export type ClassProperty = {4294 type: 'ClassProperty';4295 _ClassProperty: void;4296 computed: boolean;4297 key: Node;4298 static: boolean;4299 typeAnnotation: ?TypeAnnotation;4300 value: ?Expression;4301 decorators: Array<Decorator>;4302 end: number;4303 innerComments: ?Array<Comment>;4304 leadingComments: ?Array<Comment>;4305 loc: {4306 end: {column: number, line: number},4307 start: {column: number, line: number},4308 };4309 start: number;4310 trailingComments: ?Array<Comment>;4311};4312export type DeclareClass = {4313 type: 'DeclareClass';4314 _DeclareClass: void;4315 body: ObjectTypeAnnotation;4316 extends: Array<InterfaceExtends>;4317 id: Identifier;4318 typeParameters: ?TypeParameterDeclaration;4319 end: number;4320 innerComments: ?Array<Comment>;4321 leadingComments: ?Array<Comment>;4322 loc: {4323 end: {column: number, line: number},4324 start: {column: number, line: number},4325 };4326 start: number;4327 trailingComments: ?Array<Comment>;4328};4329// TODO: Make this correct.4330export type DeclareFunction = {4331 type: 'DeclareFunction';4332 _DeclareFunction: void;4333 id: Identifier;4334 end: number;4335 innerComments: ?Array<Comment>;4336 leadingComments: ?Array<Comment>;4337 loc: {4338 end: {column: number, line: number},4339 start: {column: number, line: number},4340 };4341 start: number;4342 trailingComments: ?Array<Comment>;4343};4344export type DeclareModule = {4345 type: 'DeclareModule';4346 _DeclareModule: void;4347 body: BlockStatement;4348 id: Node;4349 end: number;4350 innerComments: ?Array<Comment>;4351 leadingComments: ?Array<Comment>;4352 loc: {4353 end: {column: number, line: number},4354 start: {column: number, line: number},4355 };4356 start: number;4357 trailingComments: ?Array<Comment>;4358};4359// TODO: Make this correct.4360export type DeclareVariable = {4361 type: 'DeclareVariable';4362 _DeclareVariable: void;4363 id: Identifier;4364 end: number;4365 innerComments: ?Array<Comment>;4366 leadingComments: ?Array<Comment>;4367 loc: {4368 end: {column: number, line: number},4369 start: {column: number, line: number},4370 };4371 start: number;4372 trailingComments: ?Array<Comment>;4373};4374export type FunctionTypeAnnotation = {4375 type: 'FunctionTypeAnnotation';4376 _FunctionTypeAnnotation: void;4377 params: Array<FunctionTypeParam>;4378 rest: ?FunctionTypeParam;4379 returnType: Type;4380 typeParameters: ?TypeParameterDeclaration;4381 end: number;4382 innerComments: ?Array<Comment>;4383 leadingComments: ?Array<Comment>;4384 loc: {4385 end: {column: number, line: number},4386 start: {column: number, line: number},4387 };4388 start: number;4389 trailingComments: ?Array<Comment>;4390};4391export type FunctionTypeParam = {4392 type: 'FunctionTypeParam';4393 _FunctionTypeParam: void;4394 name: Identifier;4395 optional: boolean;4396 typeAnnotation: Type;4397 end: number;4398 innerComments: ?Array<Comment>;4399 leadingComments: ?Array<Comment>;4400 loc: {4401 end: {column: number, line: number},4402 start: {column: number, line: number},4403 };4404 start: number;4405 trailingComments: ?Array<Comment>;4406};4407export type GenericTypeAnnotation = {4408 type: 'GenericTypeAnnotation';4409 _GenericTypeAnnotation: void;4410 id: Node;4411 typeParameters: ?TypeParameterInstantiation;4412 end: number;4413 innerComments: ?Array<Comment>;4414 leadingComments: ?Array<Comment>;4415 loc: {4416 end: {column: number, line: number},4417 start: {column: number, line: number},4418 };4419 start: number;4420 trailingComments: ?Array<Comment>;4421};4422export type InterfaceExtends = {4423 type: 'InterfaceExtends';4424 _InterfaceExtends: void;4425 id: Identifier;4426 typeParameters: ?TypeParameterInstantiation;4427 end: number;4428 innerComments: ?Array<Comment>;4429 leadingComments: ?Array<Comment>;4430 loc: {4431 end: {column: number, line: number},4432 start: {column: number, line: number},4433 };4434 start: number;4435 trailingComments: ?Array<Comment>;4436};4437export type InterfaceDeclaration = {4438 type: 'InterfaceDeclaration';4439 _InterfaceDeclaration: void;4440 body: ObjectTypeAnnotation;4441 extends: Array<InterfaceExtends>;4442 id: Identifier;4443 typeParameters: ?TypeParameterDeclaration;4444 end: number;4445 innerComments: ?Array<Comment>;4446 leadingComments: ?Array<Comment>;4447 loc: {4448 end: {column: number, line: number},4449 start: {column: number, line: number},4450 };4451 start: number;4452 trailingComments: ?Array<Comment>;4453};4454export type IntersectionTypeAnnotation = {4455 type: 'IntersectionTypeAnnotation';4456 _IntersectionTypeAnnotation: void;4457 types: Array<Type>;4458 end: number;4459 innerComments: ?Array<Comment>;4460 leadingComments: ?Array<Comment>;4461 loc: {4462 end: {column: number, line: number},4463 start: {column: number, line: number},4464 };4465 start: number;4466 trailingComments: ?Array<Comment>;4467};4468export type MixedTypeAnnotation = {4469 type: 'MixedTypeAnnotation';4470 _MixedTypeAnnotation: void;4471 end: number;4472 innerComments: ?Array<Comment>;4473 leadingComments: ?Array<Comment>;4474 loc: {4475 end: {column: number, line: number},4476 start: {column: number, line: number},4477 };4478 start: number;4479 trailingComments: ?Array<Comment>;4480};4481export type NullableTypeAnnotation = {4482 type: 'NullableTypeAnnotation';4483 _NullableTypeAnnotation: void;4484 typeAnnotation: Type;4485 end: number;4486 innerComments: ?Array<Comment>;4487 leadingComments: ?Array<Comment>;4488 loc: {4489 end: {column: number, line: number},4490 start: {column: number, line: number},4491 };4492 start: number;4493 trailingComments: ?Array<Comment>;4494};4495export type NumberLiteralTypeAnnotation = {4496 type: 'NumberLiteralTypeAnnotation';4497 _NumberLiteralTypeAnnotation: void;4498 raw: string;4499 value: number;4500 end: number;4501 innerComments: ?Array<Comment>;4502 leadingComments: ?Array<Comment>;4503 loc: {4504 end: {column: number, line: number},4505 start: {column: number, line: number},4506 };4507 start: number;4508 trailingComments: ?Array<Comment>;4509};4510export type NumberTypeAnnotation = {4511 type: 'NumberTypeAnnotation';4512 _NumberTypeAnnotation: void;4513 end: number;4514 innerComments: ?Array<Comment>;4515 leadingComments: ?Array<Comment>;4516 loc: {4517 end: {column: number, line: number},4518 start: {column: number, line: number},4519 };4520 start: number;4521 trailingComments: ?Array<Comment>;4522};4523export type StringLiteralTypeAnnotation = {4524 type: 'StringLiteralTypeAnnotation';4525 _StringLiteralTypeAnnotation: void;4526 raw: string;4527 value: string;4528 end: number;4529 innerComments: ?Array<Comment>;4530 leadingComments: ?Array<Comment>;4531 loc: {4532 end: {column: number, line: number},4533 start: {column: number, line: number},4534 };4535 start: number;4536 trailingComments: ?Array<Comment>;4537};4538export type StringTypeAnnotation = {4539 type: 'StringTypeAnnotation';4540 _StringTypeAnnotation: void;4541 end: number;4542 innerComments: ?Array<Comment>;4543 leadingComments: ?Array<Comment>;4544 loc: {4545 end: {column: number, line: number},4546 start: {column: number, line: number},4547 };4548 start: number;4549 trailingComments: ?Array<Comment>;4550};4551export type TupleTypeAnnotation = {4552 type: 'TupleTypeAnnotation';4553 _TupleTypeAnnotation: void;4554 types: Array<Type>;4555 end: number;4556 innerComments: ?Array<Comment>;4557 leadingComments: ?Array<Comment>;4558 loc: {4559 end: {column: number, line: number},4560 start: {column: number, line: number},4561 };4562 start: number;4563 trailingComments: ?Array<Comment>;4564};4565export type TypeofTypeAnnotation = {4566 type: 'TypeofTypeAnnotation';4567 _TypeofTypeAnnotation: void;4568 argument: Type;4569 end: number;4570 innerComments: ?Array<Comment>;4571 leadingComments: ?Array<Comment>;4572 loc: {4573 end: {column: number, line: number},4574 start: {column: number, line: number},4575 };4576 start: number;4577 trailingComments: ?Array<Comment>;4578};4579export type TypeAlias = {4580 type: 'TypeAlias';4581 _TypeAlias: void;4582 id: Identifier;4583 right: Type;4584 typeParameters: ?TypeParameterDeclaration;4585 end: number;4586 innerComments: ?Array<Comment>;4587 leadingComments: ?Array<Comment>;4588 loc: {4589 end: {column: number, line: number},4590 start: {column: number, line: number},4591 };4592 start: number;4593 trailingComments: ?Array<Comment>;4594};4595export type TypeAnnotation = {4596 type: 'TypeAnnotation';4597 _TypeAnnotation: void;4598 typeAnnotation: Type;4599 end: number;4600 innerComments: ?Array<Comment>;4601 leadingComments: ?Array<Comment>;4602 loc: {4603 end: {column: number, line: number},4604 start: {column: number, line: number},4605 };4606 start: number;4607 trailingComments: ?Array<Comment>;4608};4609export type TypeCastExpression = {4610 type: 'TypeCastExpression';4611 _TypeCastExpression: void;4612 expression: Expression;4613 typeAnnotation: TypeAnnotation;4614 end: number;4615 innerComments: ?Array<Comment>;4616 leadingComments: ?Array<Comment>;4617 loc: {4618 end: {column: number, line: number},4619 start: {column: number, line: number},4620 };4621 start: number;4622 trailingComments: ?Array<Comment>;4623};4624export type TypeParameterDeclaration = {4625 type: 'TypeParameterDeclaration';4626 _TypeParameterDeclaration: void;4627 params: Array<Identifier>;4628 end: number;4629 innerComments: ?Array<Comment>;4630 leadingComments: ?Array<Comment>;4631 loc: {4632 end: {column: number, line: number},4633 start: {column: number, line: number},4634 };4635 start: number;4636 trailingComments: ?Array<Comment>;4637};4638export type TypeParameterInstantiation = {4639 type: 'TypeParameterInstantiation';4640 _TypeParameterInstantiation: void;4641 params: Array<Type>;4642 end: number;4643 innerComments: ?Array<Comment>;4644 leadingComments: ?Array<Comment>;4645 loc: {4646 end: {column: number, line: number},4647 start: {column: number, line: number},4648 };4649 start: number;4650 trailingComments: ?Array<Comment>;4651};4652export type ObjectTypeAnnotation = {4653 type: 'ObjectTypeAnnotation';4654 _ObjectTypeAnnotation: void;4655 callProperties: Array<ObjectTypeCallProperty>;4656 indexers: Array<ObjectTypeIndexer>;4657 properties: Array<ObjectTypeProperty>;4658 end: number;4659 innerComments: ?Array<Comment>;4660 leadingComments: ?Array<Comment>;4661 loc: {4662 end: {column: number, line: number},4663 start: {column: number, line: number},4664 };4665 start: number;4666 trailingComments: ?Array<Comment>;4667};4668export type ObjectTypeCallProperty = {4669 type: 'ObjectTypeCallProperty';4670 _ObjectTypeCallProperty: void;4671 static: boolean;4672 value: FunctionTypeAnnotation;4673 end: number;4674 innerComments: ?Array<Comment>;4675 leadingComments: ?Array<Comment>;4676 loc: {4677 end: {column: number, line: number},4678 start: {column: number, line: number},4679 };4680 start: number;4681 trailingComments: ?Array<Comment>;4682};4683export type ObjectTypeIndexer = {4684 type: 'ObjectTypeIndexer';4685 _ObjectTypeIndexer: void;4686 id: Identifier;4687 key: Type;4688 value: Type;4689 end: number;4690 innerComments: ?Array<Comment>;4691 leadingComments: ?Array<Comment>;4692 loc: {4693 end: {column: number, line: number},4694 start: {column: number, line: number},4695 };4696 start: number;4697 trailingComments: ?Array<Comment>;4698};4699export type ObjectTypeProperty = {4700 type: 'ObjectTypeProperty';4701 _ObjectTypeProperty: void;4702 key: Node;4703 optional: boolean;4704 value: Type;4705 end: number;4706 innerComments: ?Array<Comment>;4707 leadingComments: ?Array<Comment>;4708 loc: {4709 end: {column: number, line: number},4710 start: {column: number, line: number},4711 };4712 start: number;4713 trailingComments: ?Array<Comment>;4714};4715export type QualifiedTypeIdentifier = {4716 type: 'QualifiedTypeIdentifier';4717 _QualifiedTypeIdentifier: void;4718 id: Identifier;4719 qualification: Node;4720 end: number;4721 innerComments: ?Array<Comment>;4722 leadingComments: ?Array<Comment>;4723 loc: {4724 end: {column: number, line: number},4725 start: {column: number, line: number},4726 };4727 start: number;4728 trailingComments: ?Array<Comment>;4729};4730export type UnionTypeAnnotation = {4731 type: 'UnionTypeAnnotation';4732 _UnionTypeAnnotation: void;4733 types: Array<Type>;4734 end: number;4735 innerComments: ?Array<Comment>;4736 leadingComments: ?Array<Comment>;4737 loc: {4738 end: {column: number, line: number},4739 start: {column: number, line: number},4740 };4741 start: number;4742 trailingComments: ?Array<Comment>;4743};4744export type VoidTypeAnnotation = {4745 type: 'VoidTypeAnnotation';4746 _VoidTypeAnnotation: void;4747 end: number;4748 innerComments: ?Array<Comment>;4749 leadingComments: ?Array<Comment>;4750 loc: {4751 end: {column: number, line: number},4752 start: {column: number, line: number},4753 };4754 start: number;4755 trailingComments: ?Array<Comment>;4756};4757export type JSXAttribute = {4758 type: 'JSXAttribute';4759 _JSXAttribute: void;4760 name: Node;4761 value: ?Node;4762 end: number;4763 innerComments: ?Array<Comment>;4764 leadingComments: ?Array<Comment>;4765 loc: {4766 end: {column: number, line: number},4767 start: {column: number, line: number},4768 };4769 start: number;4770 trailingComments: ?Array<Comment>;4771};4772export type JSXClosingElement = {4773 type: 'JSXClosingElement';4774 _JSXClosingElement: void;4775 name: Node;4776 end: number;4777 innerComments: ?Array<Comment>;4778 leadingComments: ?Array<Comment>;4779 loc: {4780 end: {column: number, line: number},4781 start: {column: number, line: number},4782 };4783 start: number;4784 trailingComments: ?Array<Comment>;4785};4786export type JSXElement = {4787 type: 'JSXElement';4788 _JSXElement: void;4789 children: Array<Node>;4790 closingElement: ?JSXClosingElement;4791 openingElement: JSXOpeningElement;4792 end: number;4793 innerComments: ?Array<Comment>;4794 leadingComments: ?Array<Comment>;4795 loc: {4796 end: {column: number, line: number},4797 start: {column: number, line: number},4798 };4799 start: number;4800 trailingComments: ?Array<Comment>;4801};4802export type JSXEmptyExpression = {4803 type: 'JSXEmptyExpression';4804 _JSXEmptyExpression: void;4805 end: number;4806 innerComments: ?Array<Comment>;4807 leadingComments: ?Array<Comment>;4808 loc: {4809 end: {column: number, line: number},4810 start: {column: number, line: number},4811 };4812 start: number;4813 trailingComments: ?Array<Comment>;4814};4815export type JSXExpressionContainer = {4816 type: 'JSXExpressionContainer';4817 _JSXExpressionContainer: void;4818 expression: Expression;4819 end: number;4820 innerComments: ?Array<Comment>;4821 leadingComments: ?Array<Comment>;4822 loc: {4823 end: {column: number, line: number},4824 start: {column: number, line: number},4825 };4826 start: number;4827 trailingComments: ?Array<Comment>;4828};4829export type JSXIdentifier = {4830 type: 'JSXIdentifier';4831 _JSXIdentifier: void;4832 name: string;4833 end: number;4834 innerComments: ?Array<Comment>;4835 leadingComments: ?Array<Comment>;4836 loc: {4837 end: {column: number, line: number},4838 start: {column: number, line: number},4839 };4840 start: number;4841 trailingComments: ?Array<Comment>;4842};4843export type JSXMemberExpression = {4844 type: 'JSXMemberExpression';4845 _JSXMemberExpression: void;4846 computed: boolean;4847 object: Node;4848 property: JSXIdentifier;4849 end: number;4850 innerComments: ?Array<Comment>;4851 leadingComments: ?Array<Comment>;4852 loc: {4853 end: {column: number, line: number},4854 start: {column: number, line: number},4855 };4856 start: number;4857 trailingComments: ?Array<Comment>;4858};4859export type JSXNamespacedName = {4860 type: 'JSXNamespacedName';4861 _JSXNamespacedName: void;4862 name: JSXIdentifier;4863 namespace: JSXIdentifier;4864 end: number;4865 innerComments: ?Array<Comment>;4866 leadingComments: ?Array<Comment>;4867 loc: {4868 end: {column: number, line: number},4869 start: {column: number, line: number},4870 };4871 start: number;4872 trailingComments: ?Array<Comment>;4873};4874export type JSXOpeningElement = {4875 type: 'JSXOpeningElement';4876 _JSXOpeningElement: void;4877 attributes: Array<Node>;4878 name: Array<Node>;4879 selfClosing: boolean;4880 end: number;4881 innerComments: ?Array<Comment>;4882 leadingComments: ?Array<Comment>;4883 loc: {4884 end: {column: number, line: number},4885 start: {column: number, line: number},4886 };4887 start: number;4888 trailingComments: ?Array<Comment>;4889};4890export type JSXSpreadAttribute = {4891 type: 'JSXSpreadAttribute';4892 _JSXSpreadAttribute: void;4893 argument: Expression;4894 end: number;4895 innerComments: ?Array<Comment>;4896 leadingComments: ?Array<Comment>;4897 loc: {4898 end: {column: number, line: number},4899 start: {column: number, line: number},4900 };4901 start: number;4902 trailingComments: ?Array<Comment>;...
p2.d.ts
Source:p2.d.ts
1// Type definitions for p2.js v0.6.02// Project: https://github.com/schteppe/p2.js/3declare module p2 {4 export class AABB {5 constructor(options?: {6 upperBound?: number[];7 lowerBound?: number[];8 });9 setFromPoints(points: number[][], position: number[], angle: number, skinSize: number): void;10 copy(aabb: AABB): void;11 extend(aabb: AABB): void;12 overlaps(aabb: AABB): boolean;13 }14 export class Broadphase {15 static AABB: number;16 static BOUNDING_CIRCLE: number;17 static NAIVE: number;18 static SAP: number;19 static boundingRadiusCheck(bodyA: Body, bodyB: Body): boolean;20 static aabbCheck(bodyA: Body, bodyB: Body): boolean;21 static canCollide(bodyA: Body, bodyB: Body): boolean;22 constructor(type: number);23 type: number;24 result: Body[];25 world: World;26 boundingVolumeType: number;27 setWorld(world: World): void;28 getCollisionPairs(world: World): Body[];29 boundingVolumeCheck(bodyA: Body, bodyB: Body): boolean;30 }31 export class GridBroadphase extends Broadphase {32 constructor(options?: {33 xmin?: number;34 xmax?: number;35 ymin?: number;36 ymax?: number;37 nx?: number;38 ny?: number;39 });40 xmin: number;41 xmax: number;42 ymin: number;43 ymax: number;44 nx: number;45 ny: number;46 binsizeX: number;47 binsizeY: number;48 }49 export class NativeBroadphase extends Broadphase {50 }51 export class Narrowphase {52 contactEquations: ContactEquation[];53 frictionEquations: FrictionEquation[];54 enableFriction: boolean;55 slipForce: number;56 frictionCoefficient: number;57 surfaceVelocity: number;58 reuseObjects: boolean;59 resuableContactEquations: any[];60 reusableFrictionEquations: any[];61 restitution: number;62 stiffness: number;63 relaxation: number;64 frictionStiffness: number;65 frictionRelaxation: number;66 enableFrictionReduction: boolean;67 contactSkinSize: number;68 collidedLastStep(bodyA: Body, bodyB: Body): boolean;69 reset(): void;70 createContactEquation(bodyA: Body, bodyB: Body, shapeA: Shape, shapeB: Shape): ContactEquation;71 createFrictionFromContact(c: ContactEquation): FrictionEquation;72 }73 export class SAPBroadphase extends Broadphase {74 axisList: Body[];75 axisIndex: number;76 }77 export class Constraint {78 static DISTANCE: number;79 static GEAR: number;80 static LOCK: number;81 static PRISMATIC: number;82 static REVOLUTE: number;83 constructor(bodyA: Body, bodyB: Body, type: number, options?: {84 collideConnected?: boolean;85 wakeUpBodies?: boolean;86 });87 type: number;88 equeations: Equation[];89 bodyA: Body;90 bodyB: Body;91 collideConnected: boolean;92 update(): void;93 setStiffness(stiffness: number): void;94 setRelaxation(relaxation: number): void;95 }96 export class DistanceConstraint extends Constraint {97 constructor(bodyA: Body, bodyB: Body, type: number, options?: {98 collideConnected?: boolean;99 wakeUpBodies?: boolean;100 distance?: number;101 localAnchorA?: number[];102 localAnchorB?: number[];103 maxForce?: number;104 });105 localAnchorA: number[];106 localAnchorB: number[];107 distance: number;108 maxForce: number;109 upperLimitEnabled: boolean;110 upperLimit: number;111 lowerLimitEnabled: boolean;112 lowerLimit: number;113 position: number;114 setMaxForce(f: number): void;115 getMaxForce(): number;116 }117 export class GearConstraint extends Constraint {118 constructor(bodyA: Body, bodyB: Body, type: number, options?: {119 collideConnected?: boolean;120 wakeUpBodies?: boolean;121 angle?: number;122 ratio?: number;123 maxTorque?: number;124 });125 ratio: number;126 angle: number;127 setMaxTorque(torque: number): void;128 getMaxTorque(): number;129 }130 export class LockConstraint extends Constraint {131 constructor(bodyA: Body, bodyB: Body, type: number, options?: {132 collideConnected?: boolean;133 wakeUpBodies?: boolean;134 localOffsetB?: number[];135 localAngleB?: number;136 maxForce?: number;137 });138 setMaxForce(force: number): void;139 getMaxForce(): number;140 }141 export class PrismaticConstraint extends Constraint {142 constructor(bodyA: Body, bodyB: Body, type: number, options?: {143 collideConnected?: boolean;144 wakeUpBodies?: boolean;145 maxForce?: number;146 localAnchorA?: number[];147 localAnchorB?: number[];148 localAxisA?: number[];149 disableRotationalLock?: boolean;150 upperLimit?: number;151 lowerLimit?: number;152 });153 localAnchorA: number[];154 localAnchorB: number[];155 localAxisA: number[];156 position: number;157 velocity: number;158 lowerLimitEnabled: boolean;159 upperLimitEnabled: boolean;160 lowerLimit: number;161 upperLimit: number;162 upperLimitEquation: ContactEquation;163 lowerLimitEquation: ContactEquation;164 motorEquation: Equation;165 motorEnabled: boolean;166 motorSpeed: number;167 enableMotor(): void;168 disableMotor(): void;169 setLimits(lower: number, upper: number): void;170 }171 export class RevoluteConstraint extends Constraint {172 constructor(bodyA: Body, bodyB: Body, type: number, options?: {173 collideConnected?: boolean;174 wakeUpBodies?: boolean;175 worldPivot?: number[];176 localPivotA?: number[];177 localPivotB?: number[];178 maxForce?: number;179 });180 pivotA: number[];181 pivotB: number[];182 motorEquation: RotationalVelocityEquation;183 motorEnabled: boolean;184 angle: number;185 lowerLimitEnabled: boolean;186 upperLimitEnabled: boolean;187 lowerLimit: number;188 upperLimit: number;189 upperLimitEquation: ContactEquation;190 lowerLimitEquation: ContactEquation;191 enableMotor(): void;192 disableMotor(): void;193 motorIsEnabled(): boolean;194 setLimits(lower: number, upper: number): void;195 setMotorSpeed(speed: number): void;196 getMotorSpeed(): number;197 }198 export class AngleLockEquation extends Equation {199 constructor(bodyA: Body, bodyB: Body, options?: {200 angle?: number;201 ratio?: number;202 });203 computeGq(): number;204 setRatio(ratio: number): number;205 setMaxTorque(torque: number): number;206 }207 export class ContactEquation extends Equation {208 constructor(bodyA: Body, bodyB: Body);209 contactPointA: number[];210 penetrationVec: number[];211 contactPointB: number[];212 normalA: number[];213 restitution: number;214 firstImpact: boolean;215 shapeA: Shape;216 shapeB: Shape;217 computeB(a: number, b: number, h: number): number;218 }219 export class Equation {220 static DEFAULT_STIFFNESS: number;221 static DEFAULT_RELAXATION: number;222 constructor(bodyA: Body, bodyB: Body, minForce?: number, maxForce?: number);223 minForce: number;224 maxForce: number;225 bodyA: Body;226 bodyB: Body;227 stiffness: number;228 relaxation: number;229 G: number[];230 offset: number;231 a: number;232 b: number;233 epsilon: number;234 timeStep: number;235 needsUpdate: boolean;236 multiplier: number;237 relativeVelocity: number;238 enabled: boolean;239 gmult(G: number[], vi: number[], wi: number[], vj: number[], wj: number[]): number;240 computeB(a: number, b: number, h: number): number;241 computeGq(): number;242 computeGW(): number;243 computeGWlambda(): number;244 computeGiMf(): number;245 computeGiMGt(): number;246 addToWlambda(deltalambda: number): number;247 computeInvC(eps: number): number;248 }249 export class FrictionEquation extends Equation {250 constructor(bodyA: Body, bodyB: Body, slipForce: number);251 contactPointA: number[];252 contactPointB: number[];253 t: number[];254 shapeA: Shape;255 shapeB: Shape;256 frictionCoefficient: number;257 setSlipForce(slipForce: number): number;258 getSlipForce(): number;259 computeB(a: number, b: number, h: number): number;260 }261 export class RotationalLockEquation extends Equation {262 constructor(bodyA: Body, bodyB: Body, options?: {263 angle?: number;264 });265 angle: number;266 computeGq(): number;267 }268 export class RotationalVelocityEquation extends Equation {269 constructor(bodyA: Body, bodyB: Body);270 computeB(a: number, b: number, h: number): number;271 }272 export class EventEmitter {273 on(type: string, listener: Function, context: any): EventEmitter;274 has(type: string, listener: Function): boolean;275 off(type: string, listener: Function): EventEmitter;276 emit(event: any): EventEmitter;277 }278 export class ContactMaterialOptions {279 friction: number;280 restitution: number;281 stiffness: number;282 relaxation: number;283 frictionStiffness: number;284 frictionRelaxation: number;285 surfaceVelocity: number;286 }287 export class ContactMaterial {288 static idCounter: number;289 constructor(materialA: Material, materialB: Material, options?: ContactMaterialOptions);290 id: number;291 materialA: Material;292 materialB: Material;293 friction: number;294 restitution: number;295 stiffness: number;296 relaxation: number;297 frictionStuffness: number;298 frictionRelaxation: number;299 surfaceVelocity: number;300 contactSkinSize: number;301 }302 export class Material {303 static idCounter: number;304 constructor(id: number);305 id: number;306 }307 export class vec2 {308 static crossLength(a: number[], b: number[]): number;309 static crossVZ(out: number[], vec: number[], zcomp: number): number;310 static crossZV(out: number[], zcomp: number, vec: number[]): number;311 static rotate(out: number[], a: number[], angle: number): void;312 static rotate90cw(out: number[], a: number[]): number;313 static centroid(out: number[], a: number[], b: number[], c: number[]): number[];314 static create(): number[];315 static clone(a: number[]): number[];316 static fromValues(x: number, y: number): number[];317 static copy(out: number[], a: number[]): number[];318 static set(out: number[], x: number, y: number): number[];319 static toLocalFrame(out: number[], worldPoint: number[], framePosition: number[], frameAngle: number): void;320 static toGlobalFrame(out: number[], localPoint: number[], framePosition: number[], frameAngle: number): void;321 static add(out: number[], a: number[], b: number[]): number[];322 static subtract(out: number[], a: number[], b: number[]): number[];323 static sub(out: number[], a: number[], b: number[]): number[];324 static multiply(out: number[], a: number[], b: number[]): number[];325 static mul(out: number[], a: number[], b: number[]): number[];326 static divide(out: number[], a: number[], b: number[]): number[];327 static div(out: number[], a: number[], b: number[]): number[];328 static scale(out: number[], a: number[], b: number): number[];329 static distance(a: number[], b: number[]): number;330 static dist(a: number[], b: number[]): number;331 static squaredDistance(a: number[], b: number[]): number;332 static sqrDist(a: number[], b: number[]): number;333 static length(a: number[]): number;334 static len(a: number[]): number;335 static squaredLength(a: number[]): number;336 static sqrLen(a: number[]): number;337 static negate(out: number[], a: number[]): number[];338 static normalize(out: number[], a: number[]): number[];339 static dot(a: number[], b: number[]): number;340 static str(a: number[]): string;341 }342 export class BodyOptions {343 mass: number;344 position: number[];345 velocity: number[];346 angle: number;347 angularVelocity: number;348 force: number[];349 angularForce: number;350 fixedRotation: number;351 }352 export class Body extends EventEmitter {353 sleepyEvent: {354 type: string;355 };356 sleepEvent: {357 type: string;358 };359 wakeUpEvent: {360 type: string;361 };362 static DYNAMIC: number;363 static STATIC: number;364 static KINEMATIC: number;365 static AWAKE: number;366 static SLEEPY: number;367 static SLEEPING: number;368 constructor(options?: BodyOptions);369 id: number;370 world: World;371 shapes: Shape[];372 shapeOffsets: number[][];373 shapeAngles: number[];374 mass: number;375 invMass: number;376 inertia: number;377 invInertia: number;378 invMassSolve: number;379 invInertiaSolve: number;380 fixedRotation: number;381 position: number[];382 interpolatedPosition: number[];383 interpolatedAngle: number;384 previousPosition: number[];385 previousAngle: number;386 velocity: number[];387 vlambda: number[];388 wlambda: number[];389 angle: number;390 angularVelocity: number;391 force: number[];392 angularForce: number;393 damping: number;394 angularDamping: number;395 type: number;396 boundingRadius: number;397 aabb: AABB;398 aabbNeedsUpdate: boolean;399 allowSleep: boolean;400 wantsToSleep: boolean;401 sleepState: number;402 sleepSpeedLimit: number;403 sleepTimeLimit: number;404 gravityScale: number;405 updateSolveMassProperties(): void;406 setDensity(density: number): void;407 getArea(): number;408 getAABB(): AABB;409 updateAABB(): void;410 updateBoundingRadius(): void;411 addShape(shape: Shape, offset?: number[], angle?: number): void;412 removeShape(shape: Shape): boolean;413 updateMassProperties(): void;414 applyForce(force: number[], worldPoint: number[]): void;415 toLocalFrame(out: number[], worldPoint: number[]): void;416 toWorldFrame(out: number[], localPoint: number[]): void;417 fromPolygon(path: number[][], options?: {418 optimalDecomp?: boolean;419 skipSimpleCheck?: boolean;420 removeCollinearPoints?: any; //boolean | number421 }): boolean;422 adjustCenterOfMass(): void;423 setZeroForce(): void;424 resetConstraintVelocity(): void;425 applyDamping(dy: number): void;426 wakeUp(): void;427 sleep(): void;428 sleepTick(time: number, dontSleep: boolean, dt: number): void;429 getVelocityFromPosition(story: number[], dt: number): number[];430 getAngularVelocityFromPosition(timeStep: number): number;431 overlaps(body: Body): boolean;432 }433 export class Spring {434 constructor(bodyA: Body, bodyB: Body, options?: {435 stiffness?: number;436 damping?: number;437 localAnchorA?: number[];438 localAnchorB?: number[];439 worldAnchorA?: number[];440 worldAnchorB?: number[];441 });442 stiffness: number;443 damping: number;444 bodyA: Body;445 bodyB: Body;446 applyForce(): void;447 }448 export class LinearSpring extends Spring {449 localAnchorA: number[];450 localAnchorB: number[];451 restLength: number;452 setWorldAnchorA(worldAnchorA: number[]): void;453 setWorldAnchorB(worldAnchorB: number[]): void;454 getWorldAnchorA(result: number[]): number[];455 getWorldAnchorB(result: number[]): number[];456 applyForce(): void;457 }458 export class RotationalSpring extends Spring {459 constructor(bodyA: Body, bodyB: Body, options?: {460 restAngle?: number;461 stiffness?: number;462 damping?: number;463 });464 restAngle: number;465 }466 export class Capsule extends Shape {467 constructor(length?: number, radius?: number);468 length: number;469 radius: number;470 }471 export class Circle extends Shape {472 constructor(radius: number);473 radius: number;474 }475 export class Convex extends Shape {476 static triangleArea(a: number[], b: number[], c: number[]): number;477 constructor(vertices: number[][], axes: number[]);478 vertices: number[][];479 axes: number[];480 centerOfMass: number[];481 triangles: number[];482 boundingRadius: number;483 projectOntoLocalAxis(localAxis: number[], result: number[]): void;484 projectOntoWorldAxis(localAxis: number[], shapeOffset: number[], shapeAngle: number, result: number[]): void;485 updateCenterOfMass(): void;486 }487 export class Heightfield extends Shape {488 constructor(data: number[], options?: {489 minValue?: number;490 maxValue?: number;491 elementWidth: number;492 });493 data: number[];494 maxValue: number;495 minValue: number;496 elementWidth: number;497 }498 export class Shape {499 static idCounter: number;500 static CIRCLE: number;501 static PARTICLE: number;502 static PLANE: number;503 static CONVEX: number;504 static LINE: number;505 static RECTANGLE: number;506 static CAPSULE: number;507 static HEIGHTFIELD: number;508 constructor(type: number);509 type: number;510 id: number;511 boundingRadius: number;512 collisionGroup: number;513 collisionMask: number;514 material: Material;515 area: number;516 sensor: boolean;517 computeMomentOfInertia(mass: number): number;518 updateBoundingRadius(): number;519 updateArea(): void;520 computeAABB(out: AABB, position: number[], angle: number): void;521 }522 export class Line extends Shape {523 constructor(length?: number);524 length: number;525 }526 export class Particle extends Shape {527 }528 export class Plane extends Shape {529 }530 export class Rectangle extends Shape {531 static sameDimensions(a: Rectangle, b: Rectangle): boolean;532 constructor(width?: number, height?: number);533 width: number;534 height: number;535 }536 export class Solver extends EventEmitter {537 static GS: number;538 static ISLAND: number;539 constructor(options?: {}, type?: number);540 type: number;541 equations: Equation[];542 equationSortFunction: Equation; //Equation | boolean543 solve(dy: number, world: World): void;544 solveIsland(dy: number, island: Island): void;545 sortEquations(): void;546 addEquation(eq: Equation): void;547 addEquations(eqs: Equation[]): void;548 removeEquation(eq: Equation): void;549 removeAllEquations(): void;550 }551 export class GSSolver extends Solver {552 constructor(options?: {553 iterations?: number;554 tolerance?: number;555 });556 iterations: number;557 tolerance: number;558 useZeroRHS: boolean;559 frictionIterations: number;560 usedIterations: number;561 solve(h: number, world: World): void;562 }563 export class OverlapKeeper {564 constructor(bodyA: Body, shapeA: Shape, bodyB: Body, shapeB: Shape);565 shapeA: Shape;566 shapeB: Shape;567 bodyA: Body;568 bodyB: Body;569 tick(): void;570 setOverlapping(bodyA: Body, shapeA: Shape, bodyB: Body, shapeB: Body): void;571 bodiesAreOverlapping(bodyA: Body, bodyB: Body): boolean;572 set(bodyA: Body, shapeA: Shape, bodyB: Body, shapeB: Shape): void;573 }574 export class TupleDictionary {575 data: number[];576 keys: number[];577 getKey(id1: number, id2: number): string;578 getByKey(key: number): number;579 get(i: number, j: number): number;580 set(i: number, j: number, value: number): number;581 reset(): void;582 copy(dict: TupleDictionary): void;583 }584 export class Utils {585