import { type Debugger } from 'debug'; import { Graph, GraphNode } from '../graph/index.js'; import { Package } from './package.js'; import type { PackageNode } from '../types.js'; export type DiscoverOptions = { ignore: string[]; crawlDeps: boolean; crawlDevDeps: boolean; include: string[]; }; export type ProjectGraphOptions = { basePath: string; eager?: boolean; entrypoint?: string; }; export declare class ProjectGraph { #private; basePath: string; protected entrypoint: string | undefined; protected discoveredPackages: Map; protected visited: Set; debug: Debugger; constructor(srcDir: string, options: ProjectGraphOptions); get rootDir(): string; get graph(): Graph; get sourceType(): string; addPackageToGraph(p: Package, crawlModules: boolean | undefined, crawlDeps: boolean, crawlDevDeps: boolean): GraphNode; hasDiscoveredEdges(pkg: Package): boolean; discoverEdgesFromDependencies(source: GraphNode, crawlDeps: boolean, crawlDevDeps: boolean): void; findInternalPackageDependencies(pkg: Package, crawlDeps: boolean, crawlDevDeps: boolean): Array; protected discoveryByEntrypoint(entrypoint: string): Package; isRootPackage(somePackage: Package): boolean; /** * To allow entering the package graph at any node in the graph * we must first look for and build any packages that may be part * of a workspace. In doing so we generate the observable set of * packages any given node in the graph may reference in code and * it's package.json */ protected discoverWorkspacePackages(ignoredPackages?: string[], ignoredPaths?: string[]): void; discover(options: DiscoverOptions): Array; } //# sourceMappingURL=project-graph.d.ts.map