Best Python code snippet using tappy_python
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        static appendArray<T>(a: Array<T>, b: Array<T>): Array<T>;586        static chanceRoll(chance: number): boolean;587        static defaults(options: any, defaults: any): any;588        static extend(a: any, b: any): void;589        static randomChoice(choice1: any, choice2: any): any;590        static rotateArray(matrix: any[], direction: any): any[];591        static splice<T>(array: Array<T>, index: number, howMany: number): void;592        static shuffle<T>(array: T[]): T[];593        static transposeArray<T>(array: T[]): T[];594    }595    export class Island {596        equations: Equation[];597        bodies: Body[];598        reset(): void;599        getBodies(result: any): Body[];600        wantsToSleep(): boolean;601        sleep(): boolean;602    }603    export class IslandManager extends Solver {604        static getUnvisitedNode(nodes: Node[]): IslandNode; // IslandNode | boolean605        equations: Equation[];606        islands: Island[];607        nodes: IslandNode[];608        visit(node: IslandNode, bds: Body[], eqs: Equation[]): void;609        bfs(root: IslandNode, bds: Body[], eqs: Equation[]): void;610        split(world: World): Island[];611    }612    export class IslandNode {613        constructor(body: Body);614        body: Body;615        neighbors: IslandNode[];616        equations: Equation[];617        visited: boolean;618        reset(): void;619    }620    export class World extends EventEmitter {621        postStepEvent: {622            type: string;623        };624        addBodyEvent: {625            type: string;626        };627        removeBodyEvent: {628            type: string;629        };630        addSpringEvent: {631            type: string;632        };633        impactEvent: {634            type: string;635            bodyA: Body;636            bodyB: Body;637            shapeA: Shape;638            shapeB: Shape;639            contactEquation: ContactEquation;640        };641        postBroadphaseEvent: {642            type: string;643            pairs: Body[];644        };645        beginContactEvent: {646            type: string;647            shapeA: Shape;648            shapeB: Shape;649            bodyA: Body;650            bodyB: Body;651            contactEquations: ContactEquation[];652        };653        endContactEvent: {654            type: string;655            shapeA: Shape;656            shapeB: Shape;657            bodyA: Body;658            bodyB: Body;659        };660        preSolveEvent: {661            type: string;662            contactEquations: ContactEquation[];663            frictionEquations: FrictionEquation[];664        };665        static NO_SLEEPING: number;666        static BODY_SLEEPING: number;667        static ISLAND_SLEEPING: number;668        static integrateBody(body: Body, dy: number): void;669        constructor(options?: {670            solver?: Solver;671            gravity?: number[];672            broadphase?: Broadphase;673            islandSplit?: boolean;674            doProfiling?: boolean;675        });676        springs: Spring[];677        bodies: Body[];678        solver: Solver;679        narrowphase: Narrowphase;680        islandManager: IslandManager;681        gravity: number[];682        frictionGravity: number;683        useWorldGravityAsFrictionGravity: boolean;684        useFrictionGravityOnZeroGravity: boolean;685        doProfiling: boolean;686        lastStepTime: number;687        broadphase: Broadphase;688        constraints: Constraint[];689        defaultMaterial: Material;690        defaultContactMaterial: ContactMaterial;691        lastTimeStep: number;692        applySpringForces: boolean;693        applyDamping: boolean;694        applyGravity: boolean;695        solveConstraints: boolean;696        contactMaterials: ContactMaterial[];697        time: number;698        stepping: boolean;699        islandSplit: boolean;700        emitImpactEvent: boolean;701        sleepMode: number;702        addConstraint(c: Constraint): void;703        addContactMaterial(contactMaterial: ContactMaterial): void;704        removeContactMaterial(cm: ContactMaterial): void;705        getContactMaterial(materialA: Material, materialB: Material): ContactMaterial; // ContactMaterial | boolean706        removeConstraint(c: Constraint): void;707        step(dy: number, timeSinceLastCalled?: number, maxSubSteps?: number): void;708        runNarrowphase(np: Narrowphase, bi: Body, si: Shape, xi: any[], ai: number, bj: Body, sj: Shape, xj: any[], aj: number, cm: number, glen: number): void;709        addSpring(s: Spring): void;710        removeSpring(s: Spring): void;711        addBody(body: Body): void;712        removeBody(body: Body): void;713        getBodyByID(id: number): Body; //Body | boolean714        disableBodyCollision(bodyA: Body, bodyB: Body): void;715        enableBodyCollision(bodyA: Body, bodyB: Body): void;716        clear(): void;717        clone(): World;718        hitTest(worldPoint: number[], bodies: Body[], precision: number): Body[];719        setGlobalEquationParameters(parameters: {720            relaxation?: number;721            stiffness?: number;722        }): void;723        setGlobalStiffness(stiffness: number): void;724        setGlobalRelaxation(relaxation: number): void;725    }...santet.py
Source:santet.py  
1from time import sleep2from userbot import CMD_HELP3from userbot.events import register4@register(outgoing=True, pattern=r'^\.santet(?: |$)(.*)')5async def typewriter(typew):6    typew.pattern_match.group(1)7    await typew.edit("`Lord Telah Mengaktifkan Perintah Santet Online ã`")8    sleep(2)9    await typew.edit("`Mencari Nama Orang Ini...`")10    sleep(1)11    await typew.edit("`Santet Online Segera Dilakukan`")12    sleep(1)13    await typew.edit("0%")14    number = 115    await typew.edit(str(number) + "%   â")16    number = number + 117    sleep(0.03)18    await typew.edit(str(number) + "%   â")19    number = number + 120    sleep(0.03)21    await typew.edit(str(number) + "%   â")22    number = number + 123    sleep(0.03)24    await typew.edit(str(number) + "%   â")25    number = number + 126    sleep(0.03)27    await typew.edit(str(number) + "%   â")28    number = number + 129    sleep(0.03)30    await typew.edit(str(number) + "%   â")31    number = number + 132    sleep(0.03)33    await typew.edit(str(number) + "%   ââ")34    number = number + 135    sleep(0.03)36    await typew.edit(str(number) + "%   ââ")37    number = number + 138    sleep(0.03)39    await typew.edit(str(number) + "%   ââ")40    number = number + 141    sleep(0.03)42    await typew.edit(str(number) + "%   ââ")43    number = number + 144    sleep(0.03)45    await typew.edit(str(number) + "%   ââ")46    number = number + 147    sleep(0.03)48    await typew.edit(str(number) + "%   ââ")49    number = number + 150    sleep(0.03)51    await typew.edit(str(number) + "%   âââ")52    number = number + 153    sleep(0.03)54    await typew.edit(str(number) + "%   âââ")55    number = number + 156    sleep(0.03)57    await typew.edit(str(number) + "%   âââ")58    number = number + 159    sleep(0.03)60    await typew.edit(str(number) + "%   âââ")61    number = number + 162    sleep(0.03)63    await typew.edit(str(number) + "%   âââ")64    number = number + 165    sleep(0.03)66    await typew.edit(str(number) + "%   âââ")67    number = number + 168    sleep(0.03)69    await typew.edit(str(number) + "%   ââââ")70    number = number + 171    sleep(0.03)72    await typew.edit(str(number) + "%   ââââ")73    number = number + 174    sleep(0.03)75    await typew.edit(str(number) + "%   ââââ")76    number = number + 177    sleep(0.03)78    await typew.edit(str(number) + "%   ââââ")79    number = number + 180    sleep(0.03)81    await typew.edit(str(number) + "%   ââââ")82    number = number + 183    sleep(0.03)84    await typew.edit(str(number) + "%   ââââ")85    number = number + 186    sleep(0.03)87    await typew.edit(str(number) + "%   âââââ")88    number = number + 189    sleep(0.03)90    await typew.edit(str(number) + "%   âââââ")91    number = number + 192    sleep(0.03)93    await typew.edit(str(number) + "%   âââââ")94    number = number + 195    sleep(0.03)96    await typew.edit(str(number) + "%   âââââ")97    number = number + 198    sleep(0.03)99    await typew.edit(str(number) + "%   âââââ")100    number = number + 1101    sleep(0.03)102    await typew.edit(str(number) + "%   âââââ")103    number = number + 1104    sleep(0.03)105    await typew.edit(str(number) + "%   ââââââ")106    number = number + 1107    sleep(0.03)108    await typew.edit(str(number) + "%   ââââââ")109    number = number + 1110    sleep(0.03)111    await typew.edit(str(number) + "%   ââââââ")112    number = number + 1113    sleep(0.03)114    await typew.edit(str(number) + "%   ââââââ")115    number = number + 1116    sleep(0.03)117    await typew.edit(str(number) + "%   ââââââ")118    number = number + 1119    sleep(0.03)120    await typew.edit(str(number) + "%   ââââââ")121    number = number + 1122    sleep(0.03)123    await typew.edit(str(number) + "%   âââââââ")124    number = number + 1125    sleep(0.03)126    await typew.edit(str(number) + "%   âââââââ")127    number = number + 1128    sleep(0.03)129    await typew.edit(str(number) + "%   âââââââ")130    number = number + 1131    sleep(0.03)132    await typew.edit(str(number) + "%   âââââââ")133    number = number + 1134    sleep(0.03)135    await typew.edit(str(number) + "%   âââââââ")136    number = number + 1137    sleep(0.03)138    await typew.edit(str(number) + "%   âââââââ")139    number = number + 1140    sleep(0.03)141    await typew.edit(str(number) + "%   ââââââââ")142    number = number + 1143    sleep(0.03)144    await typew.edit(str(number) + "%   ââââââââ")145    number = number + 1146    sleep(0.03)147    await typew.edit(str(number) + "%   ââââââââ")148    number = number + 1149    sleep(0.03)150    await typew.edit(str(number) + "%   ââââââââ")151    number = number + 1152    sleep(0.03)153    await typew.edit(str(number) + "%   ââââââââ")154    number = number + 1155    sleep(0.03)156    await typew.edit(str(number) + "%   ââââââââ")157    number = number + 1158    sleep(0.03)159    await typew.edit(str(number) + "%   âââââââââ")160    number = number + 1161    sleep(0.03)162    await typew.edit(str(number) + "%   âââââââââ")163    number = number + 1164    sleep(0.03)165    await typew.edit(str(number) + "%   âââââââââ")166    number = number + 1167    sleep(0.03)168    await typew.edit(str(number) + "%   âââââââââ")169    number = number + 1170    sleep(0.03)171    await typew.edit(str(number) + "%   âââââââââ")172    number = number + 1173    sleep(0.03)174    await typew.edit(str(number) + "%   âââââââââ")175    number = number + 1176    sleep(0.03)177    await typew.edit(str(number) + "%   ââââââââââ")178    number = number + 1179    sleep(0.03)180    await typew.edit(str(number) + "%   ââââââââââ")181    number = number + 1182    sleep(0.03)183    await typew.edit(str(number) + "%   ââââââââââ")184    number = number + 1185    sleep(0.03)186    await typew.edit(str(number) + "%   ââââââââââ")187    number = number + 1188    sleep(0.03)189    await typew.edit(str(number) + "%   ââââââââââ")190    number = number + 1191    sleep(0.03)192    await typew.edit(str(number) + "%   ââââââââââ")193    number = number + 1194    sleep(0.03)195    await typew.edit(str(number) + "%   âââââââââââ")196    number = number + 1197    sleep(0.03)198    await typew.edit(str(number) + "%   âââââââââââ")199    number = number + 1200    sleep(0.03)201    await typew.edit(str(number) + "%   âââââââââââ")202    number = number + 1203    sleep(0.03)204    await typew.edit(str(number) + "%   âââââââââââ")205    number = number + 1206    sleep(0.03)207    await typew.edit(str(number) + "%   âââââââââââ")208    number = number + 1209    sleep(0.03)210    await typew.edit(str(number) + "%   âââââââââââ")211    number = number + 1212    sleep(0.03)213    await typew.edit(str(number) + "%   ââââââââââââ")214    number = number + 1215    sleep(0.03)216    await typew.edit(str(number) + "%   ââââââââââââ")217    number = number + 1218    sleep(0.03)219    await typew.edit(str(number) + "%   ââââââââââââ")220    number = number + 1221    sleep(0.03)222    await typew.edit(str(number) + "%   ââââââââââââ")223    number = number + 1224    sleep(0.03)225    await typew.edit(str(number) + "%   ââââââââââââ")226    number = number + 1227    sleep(0.03)228    await typew.edit(str(number) + "%   ââââââââââââ")229    number = number + 1230    sleep(0.03)231    await typew.edit(str(number) + "%   âââââââââââââ")232    number = number + 1233    sleep(0.03)234    await typew.edit(str(number) + "%   âââââââââââââ")235    number = number + 1236    sleep(0.03)237    await typew.edit(str(number) + "%   âââââââââââââ")238    number = number + 1239    sleep(0.03)240    await typew.edit(str(number) + "%   âââââââââââââ")241    number = number + 1242    sleep(0.03)243    await typew.edit(str(number) + "%   âââââââââââââ")244    number = number + 1245    sleep(0.03)246    await typew.edit(str(number) + "%   âââââââââââââ")247    number = number + 1248    sleep(0.03)249    await typew.edit(str(number) + "%   ââââââââââââââ")250    number = number + 1251    sleep(0.03)252    await typew.edit(str(number) + "%   ââââââââââââââ")253    number = number + 1254    sleep(0.03)255    await typew.edit(str(number) + "%   ââââââââââââââ")256    number = number + 1257    sleep(0.03)258    await typew.edit(str(number) + "%   ââââââââââââââ")259    number = number + 1260    sleep(0.03)261    await typew.edit(str(number) + "%   ââââââââââââââ")262    number = number + 1263    sleep(0.03)264    await typew.edit(str(number) + "%   ââââââââââââââ")265    number = number + 1266    sleep(0.03)267    await typew.edit(str(number) + "%   âââââââââââââââ")268    number = number + 1269    sleep(0.03)270    await typew.edit(str(number) + "%   âââââââââââââââ")271    number = number + 1272    sleep(0.03)273    await typew.edit(str(number) + "%   âââââââââââââââ")274    number = number + 1275    sleep(0.03)276    await typew.edit(str(number) + "%   âââââââââââââââ")277    number = number + 1278    sleep(0.03)279    await typew.edit(str(number) + "%   âââââââââââââââ")280    number = number + 1281    sleep(0.03)282    await typew.edit(str(number) + "%   âââââââââââââââ")283    number = number + 1284    sleep(0.03)285    await typew.edit(str(number) + "%   ââââââââââââââââ")286    number = number + 1287    sleep(0.03)288    await typew.edit(str(number) + "%   ââââââââââââââââ")289    number = number + 1290    sleep(0.03)291    await typew.edit(str(number) + "%   ââââââââââââââââ")292    number = number + 1293    sleep(0.03)294    await typew.edit(str(number) + "%   ââââââââââââââââ")295    number = number + 1296    sleep(0.03)297    await typew.edit(str(number) + "%   ââââââââââââââââ")298    number = number + 1299    sleep(0.03)300    await typew.edit(str(number) + "%   ââââââââââââââââ")301    number = number + 1302    sleep(0.03)303    await typew.edit(str(number) + "%   âââââââââââââââââ")304    number = number + 1305    sleep(0.03)306    await typew.edit(str(number) + "%   âââââââââââââââââ")307    number = number + 1308    sleep(0.03)309    await typew.edit(str(number) + "%   âââââââââââââââââ")310    number = number + 1311    sleep(0.03)312    await typew.edit(str(number) + "%   âââââââââââââââââ")313    sleep(1)314    await typew.edit("`Target Berhasil Tersantet Online:v`")315CMD_HELP.update({316    'santetonline':317    '`.santet`\318        \nUsage: Santet Online Buat Bercanda.'...moment_v2.x.x.js
Source:moment_v2.x.x.js  
1// flow-typed signature: d27e8d860d7f10896908c023574a6bd42// flow-typed version: e56c0337dc/moment_v2.x.x/flow_>=v0.104.x3type moment$MomentOptions = {4  y?: number | string,5  year?: number | string,6  years?: number | string,7  M?: number | string,8  month?: number | string,9  months?: number | string,10  d?: number | string,11  day?: number | string,12  days?: number | string,13  date?: number | string,14  h?: number | string,15  hour?: number | string,16  hours?: number | string,17  m?: number | string,18  minute?: number | string,19  minutes?: number | string,20  s?: number | string,21  second?: number | string,22  seconds?: number | string,23  ms?: number | string,24  millisecond?: number | string,25  milliseconds?: number | string,26  ...27};28type moment$MomentObject = {29  years: number,30  months: number,31  date: number,32  hours: number,33  minutes: number,34  seconds: number,35  milliseconds: number,36  ...37};38type moment$MomentCreationData = {39  input: string,40  format: string,41  locale: {...},42  isUTC: boolean,43  strict: boolean,44  ...45};46type moment$CalendarFormat = string | ((moment: moment$Moment) => string);47type moment$CalendarFormats = {48  sameDay?: moment$CalendarFormat,49  nextDay?: moment$CalendarFormat,50  nextWeek?: moment$CalendarFormat,51  lastDay?: moment$CalendarFormat,52  lastWeek?: moment$CalendarFormat,53  sameElse?: moment$CalendarFormat,54  ...55};56type moment$Inclusivity = "()" | "[)" | "()" | "(]" | "[]";57declare class moment$LocaleData {58  months(moment: moment$Moment): string;59  monthsShort(moment: moment$Moment): string;60  monthsParse(month: string): number;61  weekdays(moment: moment$Moment): string;62  weekdaysShort(moment: moment$Moment): string;63  weekdaysMin(moment: moment$Moment): string;64  weekdaysParse(weekDay: string): number;65  longDateFormat(dateFormat: string): string;66  isPM(date: string): boolean;67  meridiem(hours: number, minutes: number, isLower: boolean): string;68  calendar(69    key:70      | "sameDay"71      | "nextDay"72      | "lastDay"73      | "nextWeek"74      | "prevWeek"75      | "sameElse",76    moment: moment$Moment77  ): string;78  relativeTime(79    number: number,80    withoutSuffix: boolean,81    key: "s" | "m" | "mm" | "h" | "hh" | "d" | "dd" | "M" | "MM" | "y" | "yy",82    isFuture: boolean83  ): string;84  pastFuture(diff: any, relTime: string): string;85  ordinal(number: number): string;86  preparse(str: string): any;87  postformat(str: string): any;88  week(moment: moment$Moment): string;89  invalidDate(): string;90  firstDayOfWeek(): number;91  firstDayOfYear(): number;92}93declare class moment$MomentDuration {94  humanize(suffix?: boolean): string;95  milliseconds(): number;96  asMilliseconds(): number;97  seconds(): number;98  asSeconds(): number;99  minutes(): number;100  asMinutes(): number;101  hours(): number;102  asHours(): number;103  days(): number;104  asDays(): number;105  months(): number;106  asWeeks(): number;107  weeks(): number;108  asMonths(): number;109  years(): number;110  asYears(): number;111  add(value: number | moment$MomentDuration | {...}, unit?: string): this;112  subtract(value: number | moment$MomentDuration | {...}, unit?: string): this;113  as(unit: string): number;114  get(unit: string): number;115  toJSON(): string;116  toISOString(): string;117  isValid(): boolean;118}119declare class moment$Moment {120  static ISO_8601: string;121  static (string?: ?string): moment$Moment;122  static (123    initDate:124      | moment$MomentOptions125      | number126      | Date127      | Array<number>128      | moment$Moment129      | string130      | null131      | void132      | []133      | {...}134  ): moment$Moment;135  static (array: []): moment$Moment;136  static (object: {...}): moment$Moment;137  static (string: ?string, format: string | Array<string>): moment$Moment;138  static (139    string: ?string,140    format: string | Array<string>,141    strict: boolean142  ): moment$Moment;143  static (144    string: ?string,145    format: string | Array<string>,146    locale: string147  ): moment$Moment;148  static (149    string: ?string,150    format: string | Array<string>,151    locale: string,152    strict: boolean153  ): moment$Moment;154  static unix(seconds: number): moment$Moment;155  static utc(): moment$Moment;156  static utc(157    initDate:158      | moment$MomentOptions159      | number160      | Date161      | Array<number>162      | moment$Moment163      | string164      | null165      | void166  ): moment$Moment;167  static utc(string: string, format: string | Array<string>): moment$Moment;168  static utc(169    string: string,170    format: string | Array<string>,171    strict: boolean172  ): moment$Moment;173  static utc(174    string: string,175    format: string | Array<string>,176    locale: string177  ): moment$Moment;178  static utc(179    string: string,180    format: string | Array<string>,181    locale: string,182    strict: boolean183  ): moment$Moment;184  static parseZone(): moment$Moment;185  static parseZone(rawDate: string | null | void): moment$Moment;186  static parseZone(187    rawDate: string,188    format: string | Array<string>189  ): moment$Moment;190  static parseZone(191    rawDate: string,192    format: string | Array<string>,193    strict: boolean194  ): moment$Moment;195  static parseZone(196    rawDate: string,197    format: string | Array<string>,198    locale: string199  ): moment$Moment;200  static parseZone(201    rawDate: string,202    format: string | Array<string>,203    locale: string,204    strict: boolean205  ): moment$Moment;206  isValid(): boolean;207  invalidAt(): 0 | 1 | 2 | 3 | 4 | 5 | 6;208  creationData(): moment$MomentCreationData;209  millisecond(number: number): this;210  milliseconds(number: number): this;211  millisecond(): number;212  milliseconds(): number;213  second(number: number): this;214  seconds(number: number): this;215  second(): number;216  seconds(): number;217  minute(number: number): this;218  minutes(number: number): this;219  minute(): number;220  minutes(): number;221  hour(number: number): this;222  hours(number: number): this;223  hour(): number;224  hours(): number;225  date(number: number): this;226  dates(number: number): this;227  date(): number;228  dates(): number;229  day(day: number | string): this;230  days(day: number | string): this;231  day(): number;232  days(): number;233  weekday(number: number): this;234  weekday(): number;235  isoWeekday(day: number | string): this;236  isoWeekday(): number;237  dayOfYear(day: number): this;238  dayOfYear(): number;239  week(number: number): this;240  weeks(number: number): this;241  week(): number;242  weeks(): number;243  isoWeek(number: number): this;244  isoWeeks(number: number): this;245  isoWeek(): number;246  isoWeeks(): number;247  month(number: number): this;248  months(number: number): this;249  month(): number;250  months(): number;251  quarter(number: number): this;252  quarter(): number;253  year(number: number): this;254  years(number: number): this;255  year(): number;256  years(): number;257  weekYear(number: number): this;258  weekYear(): number;259  isoWeekYear(number: number): this;260  isoWeekYear(): number;261  weeksInYear(): number;262  isoWeeksInYear(): number;263  get(string: string): number;264  set(unit: string, value: number): this;265  set(options: { [unit: string]: number, ... }): this;266  static max(...dates: Array<moment$Moment>): moment$Moment;267  static max(dates: Array<moment$Moment>): moment$Moment;268  static min(...dates: Array<moment$Moment>): moment$Moment;269  static min(dates: Array<moment$Moment>): moment$Moment;270  add(271    value: number | moment$MomentDuration | moment$Moment | {...},272    unit?: string273  ): this;274  subtract(275    value: number | moment$MomentDuration | moment$Moment | string | {...},276    unit?: string277  ): this;278  startOf(unit: string): this;279  endOf(unit: string): this;280  local(): this;281  utc(): this;282  utcOffset(283    offset: number | string,284    keepLocalTime?: boolean,285    keepMinutes?: boolean286  ): this;287  utcOffset(): number;288  format(format?: string): string;289  fromNow(removeSuffix?: boolean): string;290  from(291    value: moment$Moment | string | number | Date | Array<number>,292    removePrefix?: boolean293  ): string;294  toNow(removePrefix?: boolean): string;295  to(296    value: moment$Moment | string | number | Date | Array<number>,297    removePrefix?: boolean298  ): string;299  calendar(refTime?: any, formats?: moment$CalendarFormats): string;300  diff(301    date: moment$Moment | string | number | Date | Array<number>,302    format?: string,303    floating?: boolean304  ): number;305  valueOf(): number;306  unix(): number;307  daysInMonth(): number;308  toDate(): Date;309  toArray(): Array<number>;310  toJSON(): string;311  toISOString(keepOffset?: boolean): string;312  toObject(): moment$MomentObject;313  isBefore(314    date?: moment$Moment | string | number | Date | Array<number>,315    units?: ?string316  ): boolean;317  isSame(318    date?: moment$Moment | string | number | Date | Array<number>,319    units?: ?string320  ): boolean;321  isAfter(322    date?: moment$Moment | string | number | Date | Array<number>,323    units?: ?string324  ): boolean;325  isSameOrBefore(326    date?: moment$Moment | string | number | Date | Array<number>,327    units?: ?string328  ): boolean;329  isSameOrAfter(330    date?: moment$Moment | string | number | Date | Array<number>,331    units?: ?string332  ): boolean;333  isBetween(334    from: moment$Moment | string | number | Date | Array<number>,335    to: moment$Moment | string | number | Date | Array<number>,336    units?: string,337    inclusivity?: moment$Inclusivity338  ): boolean;339  isDST(): boolean;340  isDSTShifted(): boolean;341  isLeapYear(): boolean;342  clone(): moment$Moment;343  static isMoment(obj: any): boolean;344  static isDate(obj: any): boolean;345  static updateLocale(locale: string, localeData?: ?{...}): void;346  static defineLocale(locale: string, localeData?: ?{...}): void;347  static locale(locale?: string, localeData?: {...}): string;348  static locale(locales: Array<string>): string;349  locale(locale: string, customization?: {...} | null): moment$Moment;350  locale(): string;351  static months(): Array<string>;352  static monthsShort(): Array<string>;353  static now(): number;354  static weekdays(): Array<string>;355  static weekdaysShort(): Array<string>;356  static weekdaysMin(): Array<string>;357  static months(): string;358  static monthsShort(): string;359  static weekdays(): string;360  static weekdaysShort(): string;361  static weekdaysMin(): string;362  static localeData(key?: string): moment$LocaleData;363  localeData(): moment$LocaleData;364  static duration(365    value: number | {...} | string,366    unit?: string367  ): moment$MomentDuration;368  static isDuration(obj: any): boolean;369  static normalizeUnits(unit: string): string;370  static invalid(object: any): moment$Moment;371}372declare module "moment" {373  declare module.exports: Class<moment$Moment>;...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
