import { Token } from 'sucrase/dist/parser/tokenizer'; import { TokenType as tt } from 'sucrase/dist/parser/tokenizer/types'; import { Identifier, ClassDeclaration, FunctionDeclaration, VariableDeclaration, VariableDeclarator, Parameter, ObjectPattern, ArrayPattern, Expression, ExportAllDeclaration, ExportDefaultDeclaration, ExportNamedDeclaration, ExportSpecifier, ImportDeclaration, ImportSpecifier } from './types'; export declare class Scanner { private tokens; binding: Map; topLevelDeclarations: Array; exportDeclarations: Array; importDeclarations: ImportDeclaration[]; constructor(source: string, tokens: Token[]); scan(): void; processRoot(): void; processExportDeclaration(): void; processImportDeclaration(): void; processTopLevelVariableDeclaration(): void; processTopLevelIdentifierDeclaration(): void; scanClassDeclaration(startIndex: number): ClassDeclaration; scanFunctionDeclaration(startIndex: number): FunctionDeclaration; scanAssignmentExpression(startIndex: number): Expression; scanDeclaration(startIndex: number): FunctionDeclaration | ClassDeclaration | VariableDeclaration | null; parseFormalParameters(startIndex: number): [Parameter[], number] | null; parseVariableDeclarator(startIndex: number): [VariableDeclarator, number] | null; parseObjectBindingPattern(startIndex: number): [ObjectPattern, number] | null; parseArrayBindingPattern(startIndex: number): [ArrayPattern, number] | null; parseNamedExports(startIndex: number): [ExportSpecifier[], number] | null; parseNamedImports(startIndex: number): [ImportSpecifier[], number] | null; parseNamedModules(startIndex: number): [[Identifier, Identifier][], number] | null; skipComputedPropertyName(startIndex: number): number; skipAssignmentExpression(startIndex: number): number; skipToken(startIndex: number, rule: { accepts: tt[]; until?: undefined; } | { until: tt[]; accepts?: undefined; }): number; }