import { type PeerSatisfactionEdges } from '@pnpm/lockfile.peer-edges'; import type { LockfileObject, PackageSnapshot } from '@pnpm/lockfile.types'; import type { DependenciesField, DepPath, ProjectId } from '@pnpm/types'; export interface LockedDependency { depPath: DepPath; pkgSnapshot: PackageSnapshot; next: () => LockfileWalkerStep; } export interface LockfileWalkerStep { dependencies: LockedDependency[]; links: string[]; missing: string[]; } export interface LockfileWalkerOptions { include?: { [dependenciesField in DependenciesField]: boolean; }; skipped?: Set; resolvePeersFromWorkspaceRoot?: boolean; /** * The peer-satisfaction edges to skip. Defaults to the ones computed from * `lockfile` under `include`. Pass the edges of the unfiltered lockfile when * walking a copy whose importers were already filtered. */ peerSatisfactionEdges?: PeerSatisfactionEdges; } export declare function lockfileWalkerGroupImporterSteps(lockfile: LockfileObject, importerIds: ProjectId[], opts?: LockfileWalkerOptions): Array<{ importerId: string; step: LockfileWalkerStep; }>; export interface LockfileWalker { directDeps: Array<{ alias: string; depPath: DepPath; }>; step: LockfileWalkerStep; } export declare function lockfileWalker(lockfile: LockfileObject, importerIds: ProjectId[], opts?: LockfileWalkerOptions): LockfileWalker;