import ts from 'typescript';
/**
 * Cache shared across per-package programs within one analysis run.
 * `node_modules` declaration files are immutable for the duration of a run
 * and dominate parse time in a monorepo, so reusing their SourceFiles across
 * packages is the main performance lever. All packages in a monorepo share
 * the same base tsconfig, so caching per fileName (ignoring per-package
 * option differences) is safe in practice.
 */
export interface SharedProgramCache {
    sourceFiles: Map<string, ts.SourceFile>;
}
export declare function createSharedProgramCache(): SharedProgramCache;
/**
 * Builds a `ts.Program` rooted at the package's public entry points, using
 * the package's own tsconfig for module resolution. Only the entry-reachable
 * file graph is loaded (`files` + empty `include`), which keeps per-package
 * programs small. Returns undefined when the package has no tsconfig.
 */
export declare function createExposureProgram(workspaceDir: string, entryPoints: string[], cache?: SharedProgramCache): ts.Program | undefined;
//# sourceMappingURL=program.d.ts.map