import { type DepPath, type PeerDependencyIssuesByProjects, type ProjectRootDir } from '@pnpm/types'; import { type NodeId } from './nextNodeId.js'; import { type PeerDependencies, type DependenciesTree, type ResolvedPackage } from './resolveDependencies.js'; import { type ResolvedImporters } from './resolveDependencyTree.js'; export interface BaseGenericDependenciesGraphNode { modules: string; dir: string; depPath: DepPath; depth: number; peerDependencies?: PeerDependencies; transitivePeerDependencies: Set; installable: boolean; isBuilt?: boolean; isPure: boolean; resolvedPeerNames: Set; requiresBuild?: boolean; } export interface GenericDependenciesGraphNode extends BaseGenericDependenciesGraphNode { childrenNodeIds: Record; } export interface GenericDependenciesGraphNodeWithResolvedChildren extends BaseGenericDependenciesGraphNode { children: Record; } export type PartialResolvedPackage = Pick; export interface GenericDependenciesGraph { [depPath: DepPath]: T & GenericDependenciesGraphNode; } export interface GenericDependenciesGraphWithResolvedChildren { [depPath: DepPath]: T & GenericDependenciesGraphNodeWithResolvedChildren; } export interface ProjectToResolve { directNodeIdsByAlias: Map; topParents: Array<{ name: string; version: string; alias?: string; }>; rootDir: ProjectRootDir; id: string; } export type DependenciesByProjectId = Record>; export declare function resolvePeers(opts: { allPeerDepNames: Set; projects: ProjectToResolve[]; dependenciesTree: DependenciesTree; virtualStoreDir: string; virtualStoreDirMaxLength: number; lockfileDir: string; resolvePeersFromWorkspaceRoot?: boolean; dedupePeerDependents?: boolean; dedupePeers?: boolean; dedupeInjectedDeps?: boolean; resolvedImporters: ResolvedImporters; peersSuffixMaxLength: number; }): Promise<{ dependenciesGraph: GenericDependenciesGraphWithResolvedChildren; dependenciesByProjectId: DependenciesByProjectId; peerDependencyIssuesByProjects: PeerDependencyIssuesByProjects; }>;