type t =
| T_NUMBER of {
kind: number_type,
raw: string,
}
| T_BIGINT of {
kind: bigint_type,
raw: string,
}
| T_STRING((Loc.t, string, string, bool))
| T_TEMPLATE_PART((Loc.t, string, string, bool, bool))
| T_IDENTIFIER of {
loc: Loc.t,
value: string,
raw: string,
}
| T_REGEXP(Loc.t, string, string)
| T_LCURLY
| T_RCURLY
| T_LCURLYBAR
| T_RCURLYBAR
| T_LPAREN
| T_RPAREN
| T_LBRACKET
| T_RBRACKET
| T_SEMICOLON
| T_COMMA
| T_PERIOD
| T_ARROW
| T_ELLIPSIS
| T_AT
| T_POUND
| T_FUNCTION
| T_IF
| T_IN
| T_INSTANCEOF
| T_RETURN
| T_SWITCH
| T_THIS
| T_THROW
| T_TRY
| T_VAR
| T_WHILE
| T_WITH
| T_CONST
| T_LET
| T_NULL
| T_FALSE
| T_TRUE
| T_BREAK
| T_CASE
| T_CATCH
| T_CONTINUE
| T_DEFAULT
| T_DO
| T_FINALLY
| T_FOR
| T_CLASS
| T_EXTENDS
| T_STATIC
| T_ELSE
| T_NEW
| T_DELETE
| T_TYPEOF
| T_VOID
| T_ENUM
| T_EXPORT
| T_IMPORT
| T_SUPER
| T_IMPLEMENTS
| T_INTERFACE
| T_PACKAGE
| T_PRIVATE
| T_PROTECTED
| T_PUBLIC
| T_YIELD
| T_DEBUGGER
| T_DECLARE
| T_TYPE
| T_OPAQUE
| T_OF
| T_ASYNC
| T_AWAIT
| T_CHECKS
| T_RSHIFT3_ASSIGN
| T_RSHIFT_ASSIGN
| T_LSHIFT_ASSIGN
| T_BIT_XOR_ASSIGN
| T_BIT_OR_ASSIGN
| T_BIT_AND_ASSIGN
| T_MOD_ASSIGN
| T_DIV_ASSIGN
| T_MULT_ASSIGN
| T_EXP_ASSIGN
| T_MINUS_ASSIGN
| T_PLUS_ASSIGN
| T_NULLISH_ASSIGN
| T_AND_ASSIGN
| T_OR_ASSIGN
| T_ASSIGN
| T_PLING_PERIOD
| T_PLING_PLING
| T_PLING
| T_COLON
| T_OR
| T_AND
| T_BIT_OR
| T_BIT_XOR
| T_BIT_AND
| T_EQUAL
| T_NOT_EQUAL
| T_STRICT_EQUAL
| T_STRICT_NOT_EQUAL
| T_LESS_THAN_EQUAL
| T_GREATER_THAN_EQUAL
| T_LESS_THAN
| T_GREATER_THAN
| T_LSHIFT
| T_RSHIFT
| T_RSHIFT3
| T_PLUS
| T_MINUS
| T_DIV
| T_MULT
| T_EXP
| T_MOD
| T_NOT
| T_BIT_NOT
| T_INCR
| T_DECR
| T_INTERPRETER(Loc.t, string)
| T_ERROR(string)
| T_EOF
| T_JSX_IDENTIFIER of {
raw: string,
loc: Loc.t,
}
| T_JSX_CHILD_TEXT(Loc.t, string, string)
| T_JSX_QUOTE_TEXT(Loc.t, string, string)
| T_ANY_TYPE
| T_MIXED_TYPE
| T_EMPTY_TYPE
| T_BOOLEAN_TYPE(bool_or_boolean)
| T_NUMBER_TYPE
| T_BIGINT_TYPE
| T_NUMBER_SINGLETON_TYPE of {
kind: number_type,
value: float,
raw: string,
}
| T_BIGINT_SINGLETON_TYPE of {
kind: bigint_type,
value: option(int64),
raw: string,
}
| T_STRING_TYPE
| T_VOID_TYPE
| T_SYMBOL_TYPE
| T_UNKNOWN_TYPE
| T_NEVER_TYPE
| T_UNDEFINED_TYPE
| T_KEYOF
| T_READONLY
| T_INFER
| T_IS
| T_ASSERTS
| T_RENDERS_QUESTION
| T_RENDERS_STAR
;
and bool_or_boolean =
| BOOL
| BOOLEAN
;
and number_type =
| BINARY
| LEGACY_OCTAL
| LEGACY_NON_OCTAL
| OCTAL
| NORMAL
;
and bigint_type =
| BIG_BINARY
| BIG_OCTAL
| BIG_NORMAL
;
let equal: t => t => bool;
let token_to_string: t => string;
let value_of_token: t => string;
let quote_token_value: string => string;
let explanation_of_token: ?use_article:bool => t => string;