export type PackageManagerId = 'bun' | 'npm' | 'pnpm' | 'yarn'; export interface PackageManagerDefinition { id: PackageManagerId; label: string; packageManagerField: string; installCommand: string; frozenInstallCommand: string; } export declare const PACKAGE_MANAGER_IDS: PackageManagerId[]; export declare const PACKAGE_MANAGERS: Readonly>; export declare function getPackageManager(id: string): PackageManagerDefinition; /** * Parse a normalized package-manager id from a package.json `packageManager` field. * * @param packageManagerField Raw field value such as `pnpm@8.3.1`. * @returns A supported package manager id, or null when the field is missing or unsupported. */ export declare function parsePackageManagerField(packageManagerField: string | undefined): PackageManagerId | null; /** * Infer the package manager used by a project from package.json and lockfile signals. * * `packageManager` fields take precedence over lockfiles, then lockfile and PnP * markers are checked in Bun, pnpm, Yarn, npm order. npm remains the fallback so * generated projects without explicit metadata keep the historical CLI default. * * @param projectDir Project root to inspect. * @param packageManagerField Optional already-read package.json field. * @returns The inferred package manager id. */ export declare function inferPackageManagerId(projectDir: string, packageManagerField?: string): PackageManagerId; export declare function getPackageManagerSelectOptions(): Array<{ label: string; value: PackageManagerId; hint: string; }>; export declare function formatRunScript(packageManagerId: PackageManagerId, scriptName: string, extraArgs?: string): string; export declare function formatInstallCommand(packageManagerId: PackageManagerId): string; /** * Format a package-manager-specific devDependency install command. * * @param packageManagerId Package manager identifier. * @param packages Package specifiers to add as devDependencies. * @returns Command string suitable for shell execution. */ export declare function formatAddDevDependenciesCommand(packageManagerId: PackageManagerId, packages: string[]): string; /** * Format a package-manager-specific one-off package execution command. * * @param packageManagerId Package manager identifier. * @param packageName Executable package name. * @param extraArgs Optional extra CLI arguments appended after the package name. * @returns Command string suitable for shell execution. */ export declare function formatPackageExecCommand(packageManagerId: PackageManagerId, packageName: string, extraArgs?: string): string; export declare function transformPackageManagerText(content: string, packageManagerId: PackageManagerId): string;