| export interface Node { | |
|   start: number | |
|   end: number | |
|   type: string | |
|   range?: [number, number] | |
|   loc?: SourceLocation | null | |
| } | |
| 
 | |
| export interface SourceLocation { | |
|   source?: string | null | |
|   start: Position | |
|   end: Position | |
| } | |
| 
 | |
| export interface Position { | |
|   /** 1-based */ | |
|   line: number | |
|   /** 0-based */ | |
|   column: number | |
| } | |
| 
 | |
| export interface Identifier extends Node { | |
|   type: "Identifier" | |
|   name: string | |
| } | |
| 
 | |
| export interface Literal extends Node { | |
|   type: "Literal" | |
|   value?: string | boolean | null | number | RegExp | bigint | |
|   raw?: string | |
|   regex?: { | |
|     pattern: string | |
|     flags: string | |
|   } | |
|   bigint?: string | |
| } | |
| 
 | |
| export interface Program extends Node { | |
|   type: "Program" | |
|   body: Array<Statement | ModuleDeclaration> | |
|   sourceType: "script" | "module" | |
| } | |
| 
 | |
| export interface Function extends Node { | |
|   id?: Identifier | null | |
|   params: Array<Pattern> | |
|   body: BlockStatement | Expression | |
|   generator: boolean | |
|   expression: boolean | |
|   async: boolean | |
| } | |
| 
 | |
| export interface ExpressionStatement extends Node { | |
|   type: "ExpressionStatement" | |
|   expression: Expression | Literal | |
|   directive?: string | |
| } | |
| 
 | |
| export interface BlockStatement extends Node { | |
|   type: "BlockStatement" | |
|   body: Array<Statement> | |
| } | |
| 
 | |
| export interface EmptyStatement extends Node { | |
|   type: "EmptyStatement" | |
| } | |
| 
 | |
| export interface DebuggerStatement extends Node { | |
|   type: "DebuggerStatement" | |
| } | |
| 
 | |
| export interface WithStatement extends Node { | |
|   type: "WithStatement" | |
|   object: Expression | |
|   body: Statement | |
| } | |
| 
 | |
| export interface ReturnStatement extends Node { | |
|   type: "ReturnStatement" | |
|   argument?: Expression | null | |
| } | |
| 
 | |
| export interface LabeledStatement extends Node { | |
|   type: "LabeledStatement" | |
|   label: Identifier | |
|   body: Statement | |
| } | |
| 
 | |
| export interface BreakStatement extends Node { | |
|   type: "BreakStatement" | |
|   label?: Identifier | null | |
| } | |
| 
 | |
| export interface ContinueStatement extends Node { | |
|   type: "ContinueStatement" | |
|   label?: Identifier | null | |
| } | |
| 
 | |
| export interface IfStatement extends Node { | |
|   type: "IfStatement" | |
|   test: Expression | |
|   consequent: Statement | |
|   alternate?: Statement | null | |
| } | |
| 
 | |
| export interface SwitchStatement extends Node { | |
|   type: "SwitchStatement" | |
|   discriminant: Expression | |
|   cases: Array<SwitchCase> | |
| } | |
| 
 | |
| export interface SwitchCase extends Node { | |
|   type: "SwitchCase" | |
|   test?: Expression | null | |
|   consequent: Array<Statement> | |
| } | |
| 
 | |
| export interface ThrowStatement extends Node { | |
|   type: "ThrowStatement" | |
|   argument: Expression | |
| } | |
| 
 | |
| export interface TryStatement extends Node { | |
|   type: "TryStatement" | |
|   block: BlockStatement | |
|   handler?: CatchClause | null | |
|   finalizer?: BlockStatement | null | |
| } | |
| 
 | |
| export interface CatchClause extends Node { | |
|   type: "CatchClause" | |
|   param?: Pattern | null | |
|   body: BlockStatement | |
| } | |
| 
 | |
| export interface WhileStatement extends Node { | |
|   type: "WhileStatement" | |
|   test: Expression | |
|   body: Statement | |
| } | |
| 
 | |
| export interface DoWhileStatement extends Node { | |
|   type: "DoWhileStatement" | |
|   body: Statement | |
|   test: Expression | |
| } | |
| 
 | |
| export interface ForStatement extends Node { | |
|   type: "ForStatement" | |
|   init?: VariableDeclaration | Expression | null | |
|   test?: Expression | null | |
|   update?: Expression | null | |
|   body: Statement | |
| } | |
| 
 | |
| export interface ForInStatement extends Node { | |
|   type: "ForInStatement" | |
|   left: VariableDeclaration | Pattern | |
|   right: Expression | |
|   body: Statement | |
| } | |
| 
 | |
| export interface FunctionDeclaration extends Function { | |
|   type: "FunctionDeclaration" | |
|   id: Identifier | |
|   body: BlockStatement | |
| } | |
| 
 | |
| export interface VariableDeclaration extends Node { | |
|   type: "VariableDeclaration" | |
|   declarations: Array<VariableDeclarator> | |
|   kind: "var" | "let" | "const" | |
| } | |
| 
 | |
| export interface VariableDeclarator extends Node { | |
|   type: "VariableDeclarator" | |
|   id: Pattern | |
|   init?: Expression | null | |
| } | |
| 
 | |
| export interface ThisExpression extends Node { | |
|   type: "ThisExpression" | |
| } | |
| 
 | |
| export interface ArrayExpression extends Node { | |
|   type: "ArrayExpression" | |
|   elements: Array<Expression | SpreadElement | null> | |
| } | |
| 
 | |
| export interface ObjectExpression extends Node { | |
|   type: "ObjectExpression" | |
|   properties: Array<Property | SpreadElement> | |
| } | |
| 
 | |
| export interface Property extends Node { | |
|   type: "Property" | |
|   key: Expression | |
|   value: Expression | |
|   kind: "init" | "get" | "set" | |
|   method: boolean | |
|   shorthand: boolean | |
|   computed: boolean | |
| } | |
| 
 | |
| export interface FunctionExpression extends Function { | |
|   type: "FunctionExpression" | |
|   body: BlockStatement | |
| } | |
| 
 | |
| export interface UnaryExpression extends Node { | |
|   type: "UnaryExpression" | |
|   operator: UnaryOperator | |
|   prefix: boolean | |
|   argument: Expression | |
| } | |
| 
 | |
| export type UnaryOperator = "-" | "+" | "!" | "~" | "typeof" | "void" | "delete" | |
| 
 | |
| export interface UpdateExpression extends Node { | |
|   type: "UpdateExpression" | |
|   operator: UpdateOperator | |
|   argument: Expression | |
|   prefix: boolean | |
| } | |
| 
 | |
| export type UpdateOperator = "++" | "--" | |
| 
 | |
| export interface BinaryExpression extends Node { | |
|   type: "BinaryExpression" | |
|   operator: BinaryOperator | |
|   left: Expression | PrivateIdentifier | |
|   right: Expression | |
| } | |
| 
 | |
| export type BinaryOperator = "==" | "!=" | "===" | "!==" | "<" | "<=" | ">" | ">=" | "<<" | ">>" | ">>>" | "+" | "-" | "*" | "/" | "%" | "|" | "^" | "&" | "in" | "instanceof" | "**" | |
| 
 | |
| export interface AssignmentExpression extends Node { | |
|   type: "AssignmentExpression" | |
|   operator: AssignmentOperator | |
|   left: Pattern | |
|   right: Expression | |
| } | |
| 
 | |
| export type AssignmentOperator = "=" | "+=" | "-=" | "*=" | "/=" | "%=" | "<<=" | ">>=" | ">>>=" | "|=" | "^=" | "&=" | "**=" | "||=" | "&&=" | "??=" | |
| 
 | |
| export interface LogicalExpression extends Node { | |
|   type: "LogicalExpression" | |
|   operator: LogicalOperator | |
|   left: Expression | |
|   right: Expression | |
| } | |
| 
 | |
| export type LogicalOperator = "||" | "&&" | "??" | |
| 
 | |
| export interface MemberExpression extends Node { | |
|   type: "MemberExpression" | |
|   object: Expression | Super | |
|   property: Expression | PrivateIdentifier | |
|   computed: boolean | |
|   optional: boolean | |
| } | |
| 
 | |
| export interface ConditionalExpression extends Node { | |
|   type: "ConditionalExpression" | |
|   test: Expression | |
|   alternate: Expression | |
|   consequent: Expression | |
| } | |
| 
 | |
| export interface CallExpression extends Node { | |
|   type: "CallExpression" | |
|   callee: Expression | Super | |
|   arguments: Array<Expression | SpreadElement> | |
|   optional: boolean | |
| } | |
| 
 | |
| export interface NewExpression extends Node { | |
|   type: "NewExpression" | |
|   callee: Expression | |
|   arguments: Array<Expression | SpreadElement> | |
| } | |
| 
 | |
| export interface SequenceExpression extends Node { | |
|   type: "SequenceExpression" | |
|   expressions: Array<Expression> | |
| } | |
| 
 | |
| export interface ForOfStatement extends Node { | |
|   type: "ForOfStatement" | |
|   left: VariableDeclaration | Pattern | |
|   right: Expression | |
|   body: Statement | |
|   await: boolean | |
| } | |
| 
 | |
| export interface Super extends Node { | |
|   type: "Super" | |
| } | |
| 
 | |
| export interface SpreadElement extends Node { | |
|   type: "SpreadElement" | |
|   argument: Expression | |
| } | |
| 
 | |
| export interface ArrowFunctionExpression extends Function { | |
|   type: "ArrowFunctionExpression" | |
| } | |
| 
 | |
| export interface YieldExpression extends Node { | |
|   type: "YieldExpression" | |
|   argument?: Expression | null | |
|   delegate: boolean | |
| } | |
| 
 | |
| export interface TemplateLiteral extends Node { | |
|   type: "TemplateLiteral" | |
|   quasis: Array<TemplateElement> | |
|   expressions: Array<Expression> | |
| } | |
| 
 | |
| export interface TaggedTemplateExpression extends Node { | |
|   type: "TaggedTemplateExpression" | |
|   tag: Expression | |
|   quasi: TemplateLiteral | |
| } | |
| 
 | |
| export interface TemplateElement extends Node { | |
|   type: "TemplateElement" | |
|   tail: boolean | |
|   value: { | |
|     cooked?: string | null | |
|     raw: string | |
|   } | |
| } | |
| 
 | |
| export interface AssignmentProperty extends Node { | |
|   type: "Property" | |
|   key: Expression | |
|   value: Pattern | |
|   kind: "init" | |
|   method: false | |
|   shorthand: boolean | |
|   computed: boolean | |
| } | |
| 
 | |
| export interface ObjectPattern extends Node { | |
|   type: "ObjectPattern" | |
|   properties: Array<AssignmentProperty | RestElement> | |
| } | |
| 
 | |
| export interface ArrayPattern extends Node { | |
|   type: "ArrayPattern" | |
|   elements: Array<Pattern | null> | |
| } | |
| 
 | |
| export interface RestElement extends Node { | |
|   type: "RestElement" | |
|   argument: Pattern | |
| } | |
| 
 | |
| export interface AssignmentPattern extends Node { | |
|   type: "AssignmentPattern" | |
|   left: Pattern | |
|   right: Expression | |
| } | |
| 
 | |
| export interface Class extends Node { | |
|   id?: Identifier | null | |
|   superClass?: Expression | null | |
|   body: ClassBody | |
| } | |
| 
 | |
| export interface ClassBody extends Node { | |
|   type: "ClassBody" | |
|   body: Array<MethodDefinition | PropertyDefinition | StaticBlock> | |
| } | |
| 
 | |
| export interface MethodDefinition extends Node { | |
|   type: "MethodDefinition" | |
|   key: Expression | PrivateIdentifier | |
|   value: FunctionExpression | |
|   kind: "constructor" | "method" | "get" | "set" | |
|   computed: boolean | |
|   static: boolean | |
| } | |
| 
 | |
| export interface ClassDeclaration extends Class { | |
|   type: "ClassDeclaration" | |
|   id: Identifier | |
| } | |
| 
 | |
| export interface ClassExpression extends Class { | |
|   type: "ClassExpression" | |
| } | |
| 
 | |
| export interface MetaProperty extends Node { | |
|   type: "MetaProperty" | |
|   meta: Identifier | |
|   property: Identifier | |
| } | |
| 
 | |
| export interface ImportDeclaration extends Node { | |
|   type: "ImportDeclaration" | |
|   specifiers: Array<ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier> | |
|   source: Literal | |
|   attributes: Array<ImportAttribute> | |
| } | |
| 
 | |
| export interface ImportSpecifier extends Node { | |
|   type: "ImportSpecifier" | |
|   imported: Identifier | Literal | |
|   local: Identifier | |
| } | |
| 
 | |
| export interface ImportDefaultSpecifier extends Node { | |
|   type: "ImportDefaultSpecifier" | |
|   local: Identifier | |
| } | |
| 
 | |
| export interface ImportNamespaceSpecifier extends Node { | |
|   type: "ImportNamespaceSpecifier" | |
|   local: Identifier | |
| } | |
| 
 | |
| export interface ImportAttribute extends Node { | |
|   type: "ImportAttribute" | |
|   key: Identifier | Literal | |
|   value: Literal | |
| } | |
| 
 | |
| export interface ExportNamedDeclaration extends Node { | |
|   type: "ExportNamedDeclaration" | |
|   declaration?: Declaration | null | |
|   specifiers: Array<ExportSpecifier> | |
|   source?: Literal | null | |
|   attributes: Array<ImportAttribute> | |
| } | |
| 
 | |
| export interface ExportSpecifier extends Node { | |
|   type: "ExportSpecifier" | |
|   exported: Identifier | Literal | |
|   local: Identifier | Literal | |
| } | |
| 
 | |
| export interface AnonymousFunctionDeclaration extends Function { | |
|   type: "FunctionDeclaration" | |
|   id: null | |
|   body: BlockStatement | |
| } | |
| 
 | |
| export interface AnonymousClassDeclaration extends Class { | |
|   type: "ClassDeclaration" | |
|   id: null | |
| } | |
| 
 | |
| export interface ExportDefaultDeclaration extends Node { | |
|   type: "ExportDefaultDeclaration" | |
|   declaration: AnonymousFunctionDeclaration | FunctionDeclaration | AnonymousClassDeclaration | ClassDeclaration | Expression | |
| } | |
| 
 | |
| export interface ExportAllDeclaration extends Node { | |
|   type: "ExportAllDeclaration" | |
|   source: Literal | |
|   exported?: Identifier | Literal | null | |
|   attributes: Array<ImportAttribute> | |
| } | |
| 
 | |
| export interface AwaitExpression extends Node { | |
|   type: "AwaitExpression" | |
|   argument: Expression | |
| } | |
| 
 | |
| export interface ChainExpression extends Node { | |
|   type: "ChainExpression" | |
|   expression: MemberExpression | CallExpression | |
| } | |
| 
 | |
| export interface ImportExpression extends Node { | |
|   type: "ImportExpression" | |
|   source: Expression | |
|   options: Expression | null | |
| } | |
| 
 | |
| export interface ParenthesizedExpression extends Node { | |
|   type: "ParenthesizedExpression" | |
|   expression: Expression | |
| } | |
| 
 | |
| export interface PropertyDefinition extends Node { | |
|   type: "PropertyDefinition" | |
|   key: Expression | PrivateIdentifier | |
|   value?: Expression | null | |
|   computed: boolean | |
|   static: boolean | |
| } | |
| 
 | |
| export interface PrivateIdentifier extends Node { | |
|   type: "PrivateIdentifier" | |
|   name: string | |
| } | |
| 
 | |
| export interface StaticBlock extends Node { | |
|   type: "StaticBlock" | |
|   body: Array<Statement> | |
| } | |
| 
 | |
| export type Statement =  | |
| | ExpressionStatement | |
| | BlockStatement | |
| | EmptyStatement | |
| | DebuggerStatement | |
| | WithStatement | |
| | ReturnStatement | |
| | LabeledStatement | |
| | BreakStatement | |
| | ContinueStatement | |
| | IfStatement | |
| | SwitchStatement | |
| | ThrowStatement | |
| | TryStatement | |
| | WhileStatement | |
| | DoWhileStatement | |
| | ForStatement | |
| | ForInStatement | |
| | ForOfStatement | |
| | Declaration | |
| 
 | |
| export type Declaration =  | |
| | FunctionDeclaration | |
| | VariableDeclaration | |
| | ClassDeclaration | |
| 
 | |
| export type Expression =  | |
| | Identifier | |
| | Literal | |
| | ThisExpression | |
| | ArrayExpression | |
| | ObjectExpression | |
| | FunctionExpression | |
| | UnaryExpression | |
| | UpdateExpression | |
| | BinaryExpression | |
| | AssignmentExpression | |
| | LogicalExpression | |
| | MemberExpression | |
| | ConditionalExpression | |
| | CallExpression | |
| | NewExpression | |
| | SequenceExpression | |
| | ArrowFunctionExpression | |
| | YieldExpression | |
| | TemplateLiteral | |
| | TaggedTemplateExpression | |
| | ClassExpression | |
| | MetaProperty | |
| | AwaitExpression | |
| | ChainExpression | |
| | ImportExpression | |
| | ParenthesizedExpression | |
| 
 | |
| export type Pattern =  | |
| | Identifier | |
| | MemberExpression | |
| | ObjectPattern | |
| | ArrayPattern | |
| | RestElement | |
| | AssignmentPattern | |
| 
 | |
| export type ModuleDeclaration =  | |
| | ImportDeclaration | |
| | ExportNamedDeclaration | |
| | ExportDefaultDeclaration | |
| | ExportAllDeclaration | |
| 
 | |
| export type AnyNode = Statement | Expression | Declaration | ModuleDeclaration | Literal | Program | SwitchCase | CatchClause | Property | Super | SpreadElement | TemplateElement | AssignmentProperty | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | ClassBody | MethodDefinition | MetaProperty | ImportAttribute | ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ExportSpecifier | AnonymousFunctionDeclaration | AnonymousClassDeclaration | PropertyDefinition | PrivateIdentifier | StaticBlock | VariableDeclarator | |
| 
 | |
| export function parse(input: string, options: Options): Program | |
| 
 | |
| export function parseExpressionAt(input: string, pos: number, options: Options): Expression | |
| 
 | |
| export function tokenizer(input: string, options: Options): { | |
|   getToken(): Token | |
|   [Symbol.iterator](): Iterator<Token> | |
| } | |
| 
 | |
| export type ecmaVersion = 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | "latest" | |
| 
 | |
| export interface Options { | |
|   /** | |
|    * `ecmaVersion` indicates the ECMAScript version to parse. Can be a | |
|    * number, either in year (`2022`) or plain version number (`6`) form, | |
|    * or `"latest"` (the latest the library supports). This influences | |
|    * support for strict mode, the set of reserved words, and support for | |
|    * new syntax features. | |
|    */ | |
|   ecmaVersion: ecmaVersion | |
| 
 | |
|   /** | |
|    * `sourceType` indicates the mode the code should be parsed in. | |
|    * Can be either `"script"` or `"module"`. This influences global | |
|    * strict mode and parsing of `import` and `export` declarations. | |
|    */ | |
|   sourceType?: "script" | "module" | |
| 
 | |
|   /** | |
|    * a callback that will be called when a semicolon is automatically inserted. | |
|    * @param lastTokEnd the position of the comma as an offset | |
|    * @param lastTokEndLoc location if {@link locations} is enabled | |
|    */ | |
|   onInsertedSemicolon?: (lastTokEnd: number, lastTokEndLoc?: Position) => void | |
| 
 | |
|   /** | |
|    * similar to `onInsertedSemicolon`, but for trailing commas | |
|    * @param lastTokEnd the position of the comma as an offset | |
|    * @param lastTokEndLoc location if `locations` is enabled | |
|    */ | |
|   onTrailingComma?: (lastTokEnd: number, lastTokEndLoc?: Position) => void | |
| 
 | |
|   /** | |
|    * By default, reserved words are only enforced if ecmaVersion >= 5. | |
|    * Set `allowReserved` to a boolean value to explicitly turn this on | |
|    * an off. When this option has the value "never", reserved words | |
|    * and keywords can also not be used as property names. | |
|    */ | |
|   allowReserved?: boolean | "never" | |
| 
 | |
|   /**  | |
|    * When enabled, a return at the top level is not considered an error. | |
|    */ | |
|   allowReturnOutsideFunction?: boolean | |
| 
 | |
|   /** | |
|    * When enabled, import/export statements are not constrained to | |
|    * appearing at the top of the program, and an import.meta expression | |
|    * in a script isn't considered an error. | |
|    */ | |
|   allowImportExportEverywhere?: boolean | |
| 
 | |
|   /** | |
|    * By default, `await` identifiers are allowed to appear at the top-level scope only if {@link ecmaVersion} >= 2022. | |
|    * When enabled, await identifiers are allowed to appear at the top-level scope, | |
|    * but they are still not allowed in non-async functions. | |
|    */ | |
|   allowAwaitOutsideFunction?: boolean | |
| 
 | |
|   /** | |
|    * When enabled, super identifiers are not constrained to | |
|    * appearing in methods and do not raise an error when they appear elsewhere. | |
|    */ | |
|   allowSuperOutsideMethod?: boolean | |
| 
 | |
|   /** | |
|    * When enabled, hashbang directive in the beginning of file is | |
|    * allowed and treated as a line comment. Enabled by default when | |
|    * {@link ecmaVersion} >= 2023. | |
|    */ | |
|   allowHashBang?: boolean | |
| 
 | |
|   /** | |
|    * By default, the parser will verify that private properties are | |
|    * only used in places where they are valid and have been declared. | |
|    * Set this to false to turn such checks off. | |
|    */ | |
|   checkPrivateFields?: boolean | |
| 
 | |
|   /** | |
|    * When `locations` is on, `loc` properties holding objects with | |
|    * `start` and `end` properties as {@link Position} objects will be attached to the | |
|    * nodes. | |
|    */ | |
|   locations?: boolean | |
| 
 | |
|   /** | |
|    * a callback that will cause Acorn to call that export function with object in the same | |
|    * format as tokens returned from `tokenizer().getToken()`. Note | |
|    * that you are not allowed to call the parser from the | |
|    * callback—that will corrupt its internal state. | |
|    */ | |
|   onToken?: ((token: Token) => void) | Token[] | |
| 
 | |
| 
 | |
|   /** | |
|    * This takes a export function or an array. | |
|    *  | |
|    * When a export function is passed, Acorn will call that export function with `(block, text, start, | |
|    * end)` parameters whenever a comment is skipped. `block` is a | |
|    * boolean indicating whether this is a block (`/* *\/`) comment, | |
|    * `text` is the content of the comment, and `start` and `end` are | |
|    * character offsets that denote the start and end of the comment. | |
|    * When the {@link locations} option is on, two more parameters are | |
|    * passed, the full locations of {@link Position} export type of the start and | |
|    * end of the comments. | |
|    *  | |
|    * When a array is passed, each found comment of {@link Comment} export type is pushed to the array. | |
|    *  | |
|    * Note that you are not allowed to call the | |
|    * parser from the callback—that will corrupt its internal state. | |
|    */ | |
|   onComment?: (( | |
|     isBlock: boolean, text: string, start: number, end: number, startLoc?: Position, | |
|     endLoc?: Position | |
|   ) => void) | Comment[] | |
| 
 | |
|   /** | |
|    * Nodes have their start and end characters offsets recorded in | |
|    * `start` and `end` properties (directly on the node, rather than | |
|    * the `loc` object, which holds line/column data. To also add a | |
|    * [semi-standardized][range] `range` property holding a `[start, | |
|    * end]` array with the same numbers, set the `ranges` option to | |
|    * `true`. | |
|    */ | |
|   ranges?: boolean | |
| 
 | |
|   /** | |
|    * It is possible to parse multiple files into a single AST by | |
|    * passing the tree produced by parsing the first file as | |
|    * `program` option in subsequent parses. This will add the | |
|    * toplevel forms of the parsed file to the `Program` (top) node | |
|    * of an existing parse tree. | |
|    */ | |
|   program?: Node | |
| 
 | |
|   /** | |
|    * When {@link locations} is on, you can pass this to record the source | |
|    * file in every node's `loc` object. | |
|    */ | |
|   sourceFile?: string | |
| 
 | |
|   /** | |
|    * This value, if given, is stored in every node, whether {@link locations} is on or off. | |
|    */ | |
|   directSourceFile?: string | |
| 
 | |
|   /** | |
|    * When enabled, parenthesized expressions are represented by | |
|    * (non-standard) ParenthesizedExpression nodes | |
|    */ | |
|   preserveParens?: boolean | |
| } | |
|    | |
| export class Parser { | |
|   options: Options | |
|   input: string | |
|    | |
|   protected constructor(options: Options, input: string, startPos?: number) | |
|   parse(): Program | |
|    | |
|   static parse(input: string, options: Options): Program | |
|   static parseExpressionAt(input: string, pos: number, options: Options): Expression | |
|   static tokenizer(input: string, options: Options): { | |
|     getToken(): Token | |
|     [Symbol.iterator](): Iterator<Token> | |
|   } | |
|   static extend(...plugins: ((BaseParser: typeof Parser) => typeof Parser)[]): typeof Parser | |
| } | |
| 
 | |
| export const defaultOptions: Options | |
| 
 | |
| export function getLineInfo(input: string, offset: number): Position | |
| 
 | |
| export class TokenType { | |
|   label: string | |
|   keyword: string | undefined | |
| } | |
| 
 | |
| export const tokTypes: { | |
|   num: TokenType | |
|   regexp: TokenType | |
|   string: TokenType | |
|   name: TokenType | |
|   privateId: TokenType | |
|   eof: TokenType | |
| 
 | |
|   bracketL: TokenType | |
|   bracketR: TokenType | |
|   braceL: TokenType | |
|   braceR: TokenType | |
|   parenL: TokenType | |
|   parenR: TokenType | |
|   comma: TokenType | |
|   semi: TokenType | |
|   colon: TokenType | |
|   dot: TokenType | |
|   question: TokenType | |
|   questionDot: TokenType | |
|   arrow: TokenType | |
|   template: TokenType | |
|   invalidTemplate: TokenType | |
|   ellipsis: TokenType | |
|   backQuote: TokenType | |
|   dollarBraceL: TokenType | |
| 
 | |
|   eq: TokenType | |
|   assign: TokenType | |
|   incDec: TokenType | |
|   prefix: TokenType | |
|   logicalOR: TokenType | |
|   logicalAND: TokenType | |
|   bitwiseOR: TokenType | |
|   bitwiseXOR: TokenType | |
|   bitwiseAND: TokenType | |
|   equality: TokenType | |
|   relational: TokenType | |
|   bitShift: TokenType | |
|   plusMin: TokenType | |
|   modulo: TokenType | |
|   star: TokenType | |
|   slash: TokenType | |
|   starstar: TokenType | |
|   coalesce: TokenType | |
| 
 | |
|   _break: TokenType | |
|   _case: TokenType | |
|   _catch: TokenType | |
|   _continue: TokenType | |
|   _debugger: TokenType | |
|   _default: TokenType | |
|   _do: TokenType | |
|   _else: TokenType | |
|   _finally: TokenType | |
|   _for: TokenType | |
|   _function: TokenType | |
|   _if: TokenType | |
|   _return: TokenType | |
|   _switch: TokenType | |
|   _throw: TokenType | |
|   _try: TokenType | |
|   _var: TokenType | |
|   _const: TokenType | |
|   _while: TokenType | |
|   _with: TokenType | |
|   _new: TokenType | |
|   _this: TokenType | |
|   _super: TokenType | |
|   _class: TokenType | |
|   _extends: TokenType | |
|   _export: TokenType | |
|   _import: TokenType | |
|   _null: TokenType | |
|   _true: TokenType | |
|   _false: TokenType | |
|   _in: TokenType | |
|   _instanceof: TokenType | |
|   _typeof: TokenType | |
|   _void: TokenType | |
|   _delete: TokenType | |
| } | |
| 
 | |
| export interface Comment { | |
|   type: "Line" | "Block" | |
|   value: string | |
|   start: number | |
|   end: number | |
|   loc?: SourceLocation | |
|   range?: [number, number] | |
| } | |
| 
 | |
| export class Token { | |
|   type: TokenType | |
|   start: number | |
|   end: number | |
|   loc?: SourceLocation | |
|   range?: [number, number] | |
| } | |
| 
 | |
| export const version: string
 |