import type { InterruptEffect, SymbolKind, SymbolTable } from "../symbolTable.js"; import type { AgencyProgram, FunctionParameter } from "../types.js"; import type { SourceLocation, VariableType } from "../types.js"; export type SemanticSymbol = { name: string; originalName: string; kind: SymbolKind; source: "local" | "imported"; filePath: string; loc?: SourceLocation; parameters?: FunctionParameter[]; returnType?: VariableType | null; aliasedType?: VariableType; importPath?: string; interruptEffects?: InterruptEffect[]; }; export type SemanticIndex = Record; export declare function buildSemanticIndex(program: AgencyProgram, fsPath: string, symbolTable: SymbolTable, interruptEffectsByFunction?: Record): SemanticIndex; export declare function lookupSemanticSymbol(source: string, line: number, character: number, index: SemanticIndex): SemanticSymbol | null; export declare function formatSemanticHover(symbol: SemanticSymbol): string;