/** * Derive the public API surface from data the analyzer already produced. * * Default (conservative, per spec-05): a symbol is "public" if it is exported * from the *package entry point(s)* (TS/JS), following re-exports to their * definition for an accurate kind/line. Public methods of an exported class are * included too (e.g. `BillingService.refund`). For files in languages the * export extractor does not cover, we fall back to "top-level non-underscore * function" (matching the Python `__all__`/non-underscore convention). * * `--include-private` drops the public filter entirely and emits every * file-level export plus every function/method node (a much larger list). * * Sources: * - dependency-graph.json `exports[]` — name/kind/line/isReExport per file. * - the call graph — public methods of exported classes, with lines. * * We do NOT add new language parsers here (spec-05 scope). * TODO(spec-05-followup): surface exported types/interfaces with line numbers. */ import type { FunctionNode, ClassNode } from '../../../core/analyzer/call-graph.js'; export interface ExportEntry { name: string; kind: string; line: number; isType?: boolean; isDefault?: boolean; isReExport?: boolean; reExportSource?: string; } export interface PublicSymbol { name: string; kind: string; file: string; line: number; } export interface DerivePublicSymbolsArgs { nodes: FunctionNode[]; classes: ClassNode[]; exportsByFile: Map; /** Repo-relative entry-point source files (from package.json), TS/JS. */ entryFiles: string[]; includePrivate: boolean; } export declare function derivePublicSymbols(args: DerivePublicSymbolsArgs): PublicSymbol[]; //# sourceMappingURL=public-symbols.d.ts.map