import type { AspectLoaderMain } from '@teambit/aspect-loader'; import type { ComponentMap } from '@teambit/component'; import { type DependenciesGraph } from '@teambit/objects'; import type { Logger } from '@teambit/logger'; import type { PathAbsolute } from '@teambit/toolbox.path.path'; import type { PeerDependencyRules, ProjectManifest } from '@pnpm/types'; import type { PackageManager, PackageManagerInstallOptions, PackageImportMethod } from './package-manager'; import type { WorkspacePolicy } from './policy'; import type { DependencyResolverMain } from './dependency-resolver.main.runtime'; export type DepInstallerContext = { inCapsule?: boolean; }; export type InstallArgs = { rootDir: string | undefined; rootPolicy: WorkspacePolicy; componentDirectoryMap: ComponentMap; options: InstallOptions; packageManagerOptions: PackageManagerInstallOptions; }; export type InstallOptions = { installTeambitBit: boolean; packageManagerConfigRootDir?: string; resolveVersionsFromDependenciesOnly?: boolean; linkedDependencies?: Record>; forcedHarmonyVersion?: string; excludeExtensionsDependencies?: boolean; dedupeInjectedDeps?: boolean; dependenciesGraph?: DependenciesGraph; }; export type GetComponentManifestsOptions = { componentDirectoryMap: ComponentMap; rootPolicy: WorkspacePolicy; rootDir: string; resolveVersionsFromDependenciesOnly?: boolean; referenceLocalPackages?: boolean; includeAllEnvPeers?: boolean; hasRootComponents?: boolean; excludeExtensionsDependencies?: boolean; } & Pick; export type PreInstallSubscriber = (installer: DependencyInstaller, installArgs: InstallArgs) => Promise; export type PreInstallSubscriberList = Array; export type PostInstallSubscriber = (installer: DependencyInstaller, installArgs: InstallArgs) => Promise; export type PostInstallSubscriberList = Array; export declare class DependencyInstaller { /** * package manager instance. */ private packageManager; private aspectLoader; private logger; private dependencyResolver; private rootDir?; private cacheRootDir?; private preInstallSubscriberList?; private postInstallSubscriberList?; private nodeLinker?; private packageImportMethod?; private sideEffectsCache?; private nodeVersion?; private engineStrict?; private peerDependencyRules?; private neverBuiltDependencies?; private allowScripts?; private dangerouslyAllowAllScripts?; private preferOffline?; private minimumReleaseAge?; private minimumReleaseAgeExclude?; private installingContext; constructor( /** * package manager instance. */ packageManager: PackageManager, aspectLoader: AspectLoaderMain, logger: Logger, dependencyResolver: DependencyResolverMain, rootDir?: (string | PathAbsolute) | undefined, cacheRootDir?: (string | PathAbsolute) | undefined, preInstallSubscriberList?: PreInstallSubscriberList | undefined, postInstallSubscriberList?: PostInstallSubscriberList | undefined, nodeLinker?: "hoisted" | "isolated" | undefined, packageImportMethod?: PackageImportMethod | undefined, sideEffectsCache?: boolean | undefined, nodeVersion?: string | undefined, engineStrict?: boolean | undefined, peerDependencyRules?: PeerDependencyRules | undefined, neverBuiltDependencies?: string[] | undefined, allowScripts?: Record | undefined, dangerouslyAllowAllScripts?: boolean | undefined, preferOffline?: boolean | undefined, minimumReleaseAge?: number | undefined, minimumReleaseAgeExclude?: string[] | undefined, installingContext?: DepInstallerContext); install(rootDir: string | undefined, rootPolicy: WorkspacePolicy, componentDirectoryMap: ComponentMap, options?: InstallOptions, packageManagerOptions?: PackageManagerInstallOptions): Promise<{ dependenciesChanged: boolean; }>; installComponents(rootDir: string | undefined, manifests: Record, rootPolicy: WorkspacePolicy, componentDirectoryMap: ComponentMap, options?: InstallOptions, packageManagerOptions?: PackageManagerInstallOptions): Promise<{ dependenciesChanged: boolean; }>; pruneModules(rootDir: string): Promise; /** * Compute all the component manifests (a.k.a. package.json files) that should be passed to the package manager * in order to install the dependencies. */ getComponentManifests({ componentDirectoryMap, rootPolicy, rootDir, dedupe, dependencyFilterFn, copyPeerToRuntimeOnComponents, copyPeerToRuntimeOnRoot, installPeersFromEnvs, resolveEnvPeersFromRoot, resolveVersionsFromDependenciesOnly, referenceLocalPackages, includeAllEnvPeers, hasRootComponents, excludeExtensionsDependencies, }: GetComponentManifestsOptions): Promise<{ manifests: Record; peerOverrides: Record; }>; private cleanCompsNodeModules; private runPrePostSubscribers; }