import { type Catalogs } from '@pnpm/catalogs.types'; import { type LockfileObject } from '@pnpm/lockfile.types'; import { type DependenciesField, type PeerDependencyIssuesByProjects, type PinnedVersion, type ProjectManifest } from '@pnpm/types'; import { getWantedDependencies, type WantedDependency } from './getWantedDependencies.js'; import { type UpdateMatchingFunction } from './resolveDependencies.js'; import { type Importer, type LinkedDependency, type ResolveDependenciesOptions, type ResolvedPackage } from './resolveDependencyTree.js'; import { type DependenciesByProjectId, type GenericDependenciesGraphWithResolvedChildren, type GenericDependenciesGraphNodeWithResolvedChildren } from './resolvePeers.js'; export type DependenciesGraph = GenericDependenciesGraphWithResolvedChildren; export type DependenciesGraphNode = GenericDependenciesGraphNodeWithResolvedChildren & ResolvedPackage; export { getWantedDependencies, type LinkedDependency, type ResolvedPackage, type PinnedVersion, type UpdateMatchingFunction, type WantedDependency, }; export interface ImporterToResolve extends Importer<{ isNew?: boolean; nodeExecPath?: string; pinnedVersion?: PinnedVersion; updateSpec?: boolean; preserveNonSemverVersionSpec?: boolean; }> { peer?: boolean; pinnedVersion?: PinnedVersion; binsDir: string; manifest: ProjectManifest; originalManifest?: ProjectManifest; update?: boolean; updateMatching?: UpdateMatchingFunction; updatePackageManifest: boolean; targetDependenciesField?: DependenciesField; } export interface ResolveDependenciesResult { dependenciesByProjectId: DependenciesByProjectId; dependenciesGraph: GenericDependenciesGraphWithResolvedChildren; updatedCatalogs?: Catalogs | undefined; outdatedDependencies: { [pkgId: string]: string; }; linkedDependenciesByProjectId: Record; newLockfile: LockfileObject; peerDependencyIssuesByProjects: PeerDependencyIssuesByProjects; waitTillAllFetchingsFinish: () => Promise; wantedToBeSkippedPackageIds: Set; } export declare function resolveDependencies(importers: ImporterToResolve[], opts: ResolveDependenciesOptions & { defaultUpdateDepth: number; dedupePeerDependents?: boolean; dedupePeers?: boolean; dedupeDirectDeps?: boolean; dedupeInjectedDeps?: boolean; excludeLinksFromLockfile?: boolean; preserveWorkspaceProtocol: boolean; saveWorkspaceProtocol: 'rolling' | boolean; lockfileIncludeTarballUrl?: boolean; allowUnusedPatches?: boolean; enableGlobalVirtualStore?: boolean; }): Promise;