/**
 * @file The `EditablePackageJson` class factory. Split out of
 *   `packages/edit.ts` for size hygiene. Wraps `@npmcli/package-json` with
 *   Socket-specific knobs: path tracking, a `_canSave` guard for content-only
 *   instances, async + sync save paths that honor `EditablePackageJsonOptions`
 *   formatting.
 *
 *   - `getEditablePackageJsonClass` — lazy class accessor (Webpack-safe)
 */
import type { EditablePackageJsonOptions, NormalizeOptions } from './types';
import type { EditablePackageJsonInstance } from './edit';
/**
 * Private constructor interface for the lazily-built `EditablePackageJson`
 * class. Not exported because consumers go through
 * `getEditablePackageJsonClass()`.
 */
interface EditablePackageJsonConstructor {
    new (): EditablePackageJsonInstance;
    fixSteps: unknown[];
    normalizeSteps: unknown[];
    prepareSteps: unknown[];
    create(path: string, opts?: EditablePackageJsonOptions): Promise<EditablePackageJsonInstance>;
    fix(path: string, opts?: unknown): Promise<EditablePackageJsonInstance>;
    load(path: string, opts?: EditablePackageJsonOptions): Promise<EditablePackageJsonInstance>;
    normalize(path: string, opts?: NormalizeOptions): Promise<EditablePackageJsonInstance>;
    prepare(path: string, opts?: unknown): Promise<EditablePackageJsonInstance>;
}
/**
 * Get the EditablePackageJson class for package.json manipulation.
 *
 * @example
 *   ;```typescript
 *   const EditablePackageJson = getEditablePackageJsonClass()
 *   const pkg = await EditablePackageJson.load('/tmp/my-project')
 *   console.log(pkg.content.name)
 *   ```
 */
export declare function getEditablePackageJsonClass(): EditablePackageJsonConstructor;
export {};
