import { VirtualFS } from '../virtual-fs';
import type { InstallOptions, InstallRequest, InstallResult, PackageManagerSettings, SerializedInstallResult } from './types';
/**
 * Normalize a package.json bin field into a consistent Record<string, string>.
 * Handles both string form ("bin": "cli.js") and object form ("bin": {"cmd": "cli.js"}).
 */
export declare function normalizeBin(pkgName: string, bin?: Record<string, string> | string): Record<string, string>;
/**
 * Parse a package specifier into name and version.
 * Examples: "express", "express@4.18.2", "@types/node@18"
 */
export declare function parsePackageSpec(spec: string): {
    name: string;
    version?: string;
};
export declare function serializeInstallResult(result: InstallResult): SerializedInstallResult;
export declare function deserializeInstallResult(result: SerializedInstallResult): InstallResult;
export declare function toSerializableInstallOptions(options: InstallOptions): Omit<InstallOptions, 'onProgress'>;
export declare function executeInstallRequest(vfs: VirtualFS, settings: PackageManagerSettings, request: InstallRequest, options?: InstallOptions): Promise<InstallResult>;
export declare function listInstalledPackages(vfs: VirtualFS, cwd: string): Record<string, string>;
//# sourceMappingURL=core.d.ts.map