/** * Entry-point inference (shared by orphan-subtree, test-only-reachable). * * A function is an entry point if: * 1. It's the bin entry (declared in package.json `bin`). * 2. It's a Tool registration's commands handler. * 3. Its name matches a heuristic list (main, start, register, init, etc.). * 4. Its `` is reachable (top-level statements always run). * 5. It's exported AND has no *external* in-project caller (someone * outside the project might call it). A self-recursive edge does not * count as a caller here: an exported public function whose only * in-project caller is itself (e.g. a recursive renderer consumed * only across a package boundary, where the cross-package call edge * does not resolve) is still an external entry point — counting its * own recursion as a "caller" would wrongly hide it (and its whole * file-local helper subtree) as an orphan. * * v0.2 ships heuristics 3, 4, 5; 1 and 2 are project-specific and * deferred until cross-package call resolution is reliable. */ import type { Catalog, Indexes } from '../types.js'; export interface EntryPoint { readonly bodyHash: string; readonly reason: 'module-init' | 'name-match' | 'no-callers-exported'; } export declare function inferEntryPoints(catalog: Catalog, indexes: Indexes): readonly EntryPoint[]; //# sourceMappingURL=_entry-points.d.ts.map