/**
 * @file `parsePackageJson(content)` — parses a `package.json` string into a
 *   `ParsedManifest`. On socket-btm's smol Node binary this routes to
 *   `node:smol-manifest`'s native `parseManifest(content, 'npm')`; on stock
 *   Node it runs the JS impl below. Both return byte-equivalent frozen shapes.
 *   Throws `ManifestError` with code `ERR_INVALID_JSON` on JSON parse failure.
 *   Anything else is non-throwing: missing/extra fields, weird types in
 *   dep-record values, etc. are accepted — `package.json` in the wild is messy,
 *   and downstream consumers can re-validate if they care.
 */
import type { DepType, ManifestDep, ParsedManifest } from '../manifest/types';
export declare function addDeps(dependencies: ManifestDep[], obj: unknown, type: DepType): void;
export declare function asOptionalString(value: unknown): string | undefined;
export declare function jsParsePackageJson(content: string): ParsedManifest;
export declare function resolveRepository(value: unknown): string | undefined;
export declare const parsePackageJson: (content: string) => ParsedManifest;
