import * as ts from "typescript"; import { SymbolTable } from "./table"; import { TreeVisitor } from "../utils/visitor"; export declare class SymbolTableBuilder extends TreeVisitor { private readonly program; private table; static build(sourceFile: ts.SourceFile, program: ts.Program): SymbolTable; private constructor(); protected visitIdentifier(node: ts.Identifier): void; protected visitBinaryExpression(node: ts.BinaryExpression): void; protected visitVariableDeclaration(node: ts.VariableDeclaration): void; protected visitPropertyDeclaration(node: ts.PropertyDeclaration): void; protected visitParameterDeclaration(node: ts.ParameterDeclaration): void; protected visitFunctionDeclaration(node: ts.FunctionDeclaration): void; protected visitClassDeclaration(node: ts.ClassDeclaration): void; protected visitEnumDeclaration(node: ts.EnumDeclaration): void; protected visitInterfaceDeclaration(node: ts.InterfaceDeclaration): void; protected visitNamedImports(node: ts.NamedImports): void; protected visitNamespaceImport(node: ts.NamespaceImport): void; protected visitImportEqualsDeclaration(node: ts.ImportEqualsDeclaration): void; protected visitExportAssignment(node: ts.ExportAssignment): void; protected visitPrefixUnaryExpression(node: ts.PrefixUnaryExpression): void; protected visitPostfixUnaryExpression(node: ts.PostfixUnaryExpression): void; protected visitModuleDeclaration(node: ts.ModuleDeclaration): void; private registerWriteUsageForAssignment; private addVariable; private registerUsageIfMissing; }