/** * Type-attested cross-package METHOD target resolution (ADR-0033 follow-up). * * For a method call `recv.m()` the boundary extractor needs the TYPE-resolved * target file (not a syntactic name) to emit a cross-package boundary call. This * mirrors the symbol resolution `resolvePropertyAccessCall` does, but returns the * `m` decl's SOURCE file (the package's `dist/*.d.ts` mapped to source) rather * than a catalog hash — so the cross-shard linker can pin it post-merge against * the merged catalog, identically in both engines. */ import ts from 'typescript'; /** * The project-relative SOURCE file a method call's callee resolves to, when that * callee's declaration is a workspace package's built `dist/*.d.ts` — `null` * otherwise. `null` when: not a property-access call; the checker has no symbol; * the decl is SOURCE (the in-shard/inline pass handles it) or a non-workspace * `.d.ts` (`node_modules`, `lib.dom`, a non-`dist` ambient). The dist→src mapping * follows the tsc `outDir:dist` / `rootDir:src` convention; a wrong mapping just * fails to match an occurrence at the linker and declines (never fabricates). */ export declare function methodTargetFile(node: ts.Node, checker: ts.TypeChecker, projectDirAbs: string): string | null; /** * Decode a pnpm-injected workspace `.d.ts` path to its workspace SOURCE path, or * `null`. `rel` is a `/node_modules/`-bearing, `/dist/`-bearing `.d.ts` path; the * mapping recovers the `/src/.ts` the EXACT build resolves to, * from the `@file+` segment pnpm writes into the `.pnpm` dir * name (`/`→`+`, optional trailing `_`). Pure `indexOf`/`slice` — no * unbounded-backtracking regex (sonarjs/slow-regex). A non-injected `node_modules` * `.d.ts` (no `@file+`) returns `null` — a real npm dependency, not a workspace pkg. */ export declare function decodeInjectedDist(rel: string): string | null; //# sourceMappingURL=method-target.d.ts.map