import { type LockfileObject } from '@pnpm/lockfile.fs'; import { type DependenciesField, type DependencyManifest, type Finder, type Registries } from '@pnpm/types'; export interface DependentNode { name: string; displayName?: string; version: string; dependents?: DependentNode[]; circular?: true; deduped?: true; /** Short hash distinguishing peer-dep variants of the same name@version */ peersSuffixHash?: string; /** For importer leaf nodes: which dep field */ depField?: DependenciesField; } export interface DependentsTree { name: string; displayName?: string; version: string; /** Resolved filesystem path to this package */ path?: string; /** Short hash distinguishing peer-dep variants of the same name@version */ peersSuffixHash?: string; /** Message returned by the finder function, if any */ searchMessage?: string; dependents: DependentNode[]; } export interface ImporterInfo { name: string; version: string; } export declare function buildDependentsTree(packages: string[], projectPaths: string[], opts: { lockfileDir: string; include?: { [field in DependenciesField]?: boolean; }; modulesDir?: string; registries?: Registries; finders?: Finder[]; importerInfoMap: Map; lockfile: LockfileObject; nameFormatter?: (info: { name: string; version: string; manifest: DependencyManifest; }) => string | undefined; }): Promise;