/**
 * Fork https://github.com/pnpm/pnpm/blob/main/lockfile/fs/src/lockfileFormatConverters.ts
 *
 * Pnpm lockfile v9 have some breaking changes on the lockfile format. For Example, the "packages" field has been split into "packages" and "snapshots" two parts.
 * Rush should not parse the lockfile by itself, but should rely on pnpm to parse the lockfile.
 * To ensure consistency with pnpm's parsing logic, I copied the relevant logic from @pnpm/lockfile.fs to this file.
 *
 * There are some reasons for copying the relevant logic instead of depending on @pnpm/lockfile.fs directly:
 * 1. @pnpm/lockfile.fs has a exports filed in package.json, which will cause convertLockfileV9ToLockfileObject cannot be imported directly.
 * 2. @pnpm/lockfile.fs only provides asynchronous read methods, while rush requires synchronous reading of the lockfile file.
 * Perhaps this file will be deleted in the future and instead depend on @pnpm/lockfile.fs directly.
 */
import type { Lockfile, LockfileFileV9 } from '@pnpm/lockfile.types-900';
/**
 * Convert lockfile v9 object to standard lockfile object.
 *
 * This function will mutate the lockfile object. It will:
 * 1. Ensure importers['.'] exists.
 * 2. Merge snapshots and packages into packages.
 * 3. Extract specifier from importers['xxx'] into the specifiers field.
 */
export declare function convertLockfileV9ToLockfileObject(lockfile: LockfileFileV9): Lockfile;
//# sourceMappingURL=PnpmShrinkWrapFileConverters.d.ts.map