Jsx_parser.JSXmodule Parse: Parser_common.PARSERlet tag_component_trailing_comments: 
  Js_parser__Parser_env.env =>
  list(Flow_ast.Comment.t(Loc.t));let spread_attribute: 
  Parser_env.env =>
  (Loc.t, Flow_ast.JSX.SpreadAttribute.t'(Loc.t, Loc.t));let expression_container_contents: 
  Parser_env.env =>
  Flow_ast.JSX.ExpressionContainer.expression(Loc.t, Loc.t);let expression_container: 
  Parser_env.env =>
  (Loc.t, Flow_ast.JSX.ExpressionContainer.t(Loc.t, Loc.t));let expression_container_or_spread_child: 
  Parser_env.env =>
  (Loc.t, Flow_ast.JSX.child'(Loc.t, Loc.t));let identifier: Parser_env.env => (Loc.t, Flow_ast.JSX.Identifier.t'(Loc.t));let name: Parser_env.env => Flow_ast.JSX.name(Loc.t, Loc.t);let attribute: 
  Parser_env.env =>
  (Loc.t, Flow_ast.JSX.Attribute.t'(Loc.t, Loc.t));let opening_element: 
  Parser_env.env =>
  (Loc.t, result([> `Element(Flow_ast.JSX.Opening.t'(Loc.t, Loc.t))
                 | `Fragment ],
                  [> `Element(Flow_ast.JSX.Opening.t'(Loc.t, Loc.t))
                  | `Fragment ]));let closing_element: 
  Parser_env.env =>
  (Loc.t, [> `Element(Flow_ast.JSX.Closing.t'(Loc.t, Loc.t)) | `Fragment ]);let child: Parser_env.env => Flow_ast.JSX.child(Loc.t, Loc.t);let element: 
  Parser_env.env =>
  (Loc.t, [ `Element(Flow_ast.JSX.element(Loc.t, Loc.t))
          | `Fragment(Flow_ast.JSX.fragment(Loc.t, Loc.t)) ]);let element_or_fragment: 
  Parser_env.env =>
  (Loc.t, [ `Element(Flow_ast.JSX.element(Loc.t, Loc.t))
          | `Fragment(Flow_ast.JSX.fragment(Loc.t, Loc.t)) ]);