/** * Solidity AST indexer — consumes Hardhat build-info JSON to produce a * richer devgraph: representation than the regex-based pass in indexer.ts. * * Input: `/artifacts/build-info/*.json` (Hardhat combined solc input/output). * Output: `Quad[]` extending the existing Contract/Function/Event vocabulary with: * - StateVariable / Event / Error / Modifier as first-class classes * - visibility, stateMutability, functionKind, isAbstract, isConstant, * isImmutable, isVirtual, contractKind, license, solidityVersion, docstring * - usesModifier (Function → Modifier), emitsEvent legacy string kept for * back-compat, plus emits (Function → Event) when the body emits a known * event definition * - calls (Function → Function) within the same build-info via AST node id * resolution — covers internal calls; cross-contract calls resolve when * the callee is in the same build-info * * URI scheme (stable across regex and AST passes for Contract / Function): * - Contract: symbol:/contract/ * - Function: symbol:/fn/# * - Event: symbol:/event/# * - Error: symbol:/error/# * - Modifier: symbol:/modifier/# * - StateVariable: symbol:/var/# * * The AST id suffix on functions disambiguates overloads and anonymous kinds * (constructor/receive/fallback) while leaving a stable, reproducible URI. */ import { Quad } from './indexer.js'; export interface SolidityAstIndexResult { quads: Quad[]; contractCount: number; functionCount: number; eventCount: number; errorCount: number; modifierCount: number; stateVariableCount: number; sourceCount: number; skippedDependencyCount: number; } export declare function indexSolidityBuildInfo(repoRoot: string, pkgDir: string, pkgName: string): Promise; //# sourceMappingURL=indexer-solidity-ast.d.ts.map