import Graph from 'graphology'; import { SyntaxNode } from 'web-tree-sitter'; import { EdgeKind } from './edge/EdgeKind'; import { ImportWithRefs } from './model/ImportWithRefs'; import { Symbol } from './model/Symbol'; import { TextRange } from './model/TextRange'; import { LocalDef } from './node/LocalDef'; import { LocalImport } from './node/LocalImport'; import { LocalScope, ScopeStack } from './node/LocalScope'; import { NodeKind } from './node/NodeKind'; import { Reference } from './node/Reference'; import { LanguageProfile } from "../../code-context/base/LanguageProfile"; import { ScopeDebug } from "../../test/ScopeDebug"; export type NodeIndex = string; export declare class ScopeGraph { graph: Graph; private rootIndex; private languageProfile; constructor(rootNode: SyntaxNode, languageProfile: LanguageProfile); getNode(node: NodeIndex): NodeKind; getEdge(edge: string): EdgeKind; insertLocalScope(scope: LocalScope): void; insertLocalDef(localDef: LocalDef): void; insertHoistedDef(localDef: LocalDef): void; insertGlobalDef(localDef: LocalDef): void; insertLocalImport(import_: LocalImport): void; insertRef(reference: Reference, sourceCode: string): void; scopeStack(start: NodeIndex): ScopeStack; private scopeByRange; private parentScope; hoverableRanges(): TextRange[]; definitions(referenceNode: NodeIndex): NodeIndex[]; imports(referenceNode: NodeIndex): NodeIndex[]; references(definitionNode: NodeIndex): NodeIndex[]; nodeByRange(startByte: number, endByte: number): NodeIndex | undefined; debug(src: NodeIndex, language: LanguageProfile): ScopeDebug; nodeByPosition(line: number, column: number): NodeIndex | undefined; allLocalDefs(): NodeKind[]; allImportsBySource(src: string): string[]; allImports(src: string): ImportWithRefs[]; symbols(): Symbol[]; symbolNameOf(idx: NodeIndex): string | undefined; }