import { PackageJson, Simplify } from 'type-fest';
import { EggContext } from '@eggjs/tegg';
import { Static } from '@sinclair/typebox';
import { AbstractController } from '../AbstractController';
type PackageVersion = Simplify<PackageJson.PackageJsonStandard & {
    name: 'string';
    version: 'string';
    deprecated?: 'string';
    readme?: 'string';
    dist?: {
        shasum: string;
        integrity: string;
        [key: string]: string | number;
    };
}>;
declare const FullPackageRule: import("@sinclair/typebox").TObject<{
    name: import("@sinclair/typebox").TString;
    versions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
    _attachments: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
    description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    'dist-tags': import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>>;
    readme: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
}>;
type FullPackage = Omit<Static<typeof FullPackageRule>, 'versions' | '_attachments'> & {
    versions: {
        [key: string]: PackageVersion;
    };
} & {
    _attachments: {
        [key: string]: {
            content_type: string;
            data: string;
            length: number;
        };
    };
};
export declare class SavePackageVersionController extends AbstractController {
    private readonly packageManagerService;
    private readonly registryManagerService;
    private readonly cacheAdapter;
    save(ctx: EggContext, fullname: string, pkg: FullPackage): Promise<{
        ok: boolean;
    } | {
        ok: boolean;
        rev: string;
    }>;
    private saveDeprecatedVersions;
    private validateNpmCommand;
}
export {};
