import type { DependencyManifest } from '@pnpm/types'; export type PackageFiles = Map; export interface PackageFileInfo { checkedAt?: number; digest: string; mode: number; size: number; } export type SideEffects = Map; export interface SideEffectsDiff { deleted?: string[]; added?: PackageFiles; } export type ResolvedFrom = 'store' | 'local-dir' | 'remote'; export type FilesMap = Map; export interface PackageFilesResponse { resolvedFrom: ResolvedFrom; filesMap: FilesMap; packageImportMethod?: 'auto' | 'hardlink' | 'copy' | 'clone' | 'clone-or-copy'; sideEffectsMaps?: Map; requiresBuild: boolean; } export interface ImportPackageOpts { disableRelinkLocalDirDeps?: boolean; requiresBuild?: boolean; sideEffectsCacheKey?: string; filesResponse: PackageFilesResponse; force: boolean; keepModulesDir?: boolean; safeToSkip?: boolean; } export type ImportPackageFunction = (to: string, opts: ImportPackageOpts) => { isBuilt: boolean; importMethod: undefined | string; }; export type ImportPackageFunctionAsync = (to: string, opts: ImportPackageOpts) => Promise<{ isBuilt: boolean; importMethod: undefined | string; }>; export type FileType = 'exec' | 'nonexec'; export type FilesIndex = Map; export interface FileWriteResult { checkedAt: number; filePath: string; digest: string; } export interface AddToStoreResult { filesIndex: FilesIndex; manifest?: DependencyManifest; } export interface Cafs { storeDir: string; addFilesFromDir: (dir: string) => AddToStoreResult; addFilesFromTarball: (buffer: Buffer, readManifest?: boolean, ignore?: (filename: string) => boolean) => AddToStoreResult; addFile: (buffer: Buffer, mode: number) => FileWriteResult; getFilePathByModeInCafs: (digest: string, mode: number) => string; importPackage: ImportPackageFunction; tempDir: () => Promise; }