import { type DepsStateCache } from '@pnpm/calc-dep-state'; import { type InstallationResultStats } from '@pnpm/headless'; import { type LockfileObject } from '@pnpm/lockfile.fs'; import { type IncludedDependencies } from '@pnpm/modules-yaml'; import { type DependenciesGraph, type LinkedDependency } from '@pnpm/resolve-dependencies'; import { type StoreController } from '@pnpm/store-controller-types'; import { type AllowBuild, type DepPath, type HoistedDependencies, type Registries } from '@pnpm/types'; import { type ImporterToUpdate } from './index.js'; export interface LinkPackagesOptions { allowBuild?: AllowBuild; currentLockfile: LockfileObject; dedupeDirectDeps: boolean; dependenciesByProjectId: Record>; disableRelinkLocalDirDeps?: boolean; force: boolean; depsStateCache: DepsStateCache; enableGlobalVirtualStore: boolean; extraNodePaths: string[]; hoistedDependencies: HoistedDependencies; hoistedModulesDir: string; hoistPattern?: string[]; ignoreScripts: boolean; publicHoistPattern?: string[]; include: IncludedDependencies; linkedDependenciesByProjectId: Record; lockfileDir: string; makePartialCurrentLockfile: boolean; outdatedDependencies: Record; pruneStore: boolean; pruneVirtualStore: boolean; registries: Registries; rootModulesDir: string; sideEffectsCacheRead: boolean; symlink: boolean; skipped: Set; storeController: StoreController; virtualStoreDir: string; virtualStoreDirMaxLength: number; wantedLockfile: LockfileObject; wantedToBeSkippedPackageIds: Set; hoistWorkspacePackages?: boolean; } export interface LinkPackagesResult { currentLockfile: LockfileObject; newDepPaths: DepPath[]; newHoistedDependencies: HoistedDependencies; removedDepPaths: Set; stats: InstallationResultStats; } export declare function linkPackages(projects: ImporterToUpdate[], depGraph: DependenciesGraph, opts: LinkPackagesOptions): Promise;