import type { PackageJSONType, AbbreviatedPackageJSONType } from '../../repository/PackageRepository.ts';
export interface BugVersionAdvice {
    /**
     * fixed version
     */
    version: string;
    /**
     * reason for fixed
     */
    reason: string;
}
export type BugVersionPackage = Record<string, BugVersionAdvice>;
export type BugVersionPackages = Record<string, BugVersionPackage>;
export type MixedBugVersionPackageType = PackageJSONType | AbbreviatedPackageJSONType;
export declare class BugVersion {
    private readonly data;
    constructor(data: BugVersionPackages);
    /**
     * List all package names that have bugs
     */
    listAllPackagesHasBugs(): string[];
    listBugVersions(pkgName: string): string[];
    hasBugVersions(pkgName: string): boolean;
    /**
     * get fix version advice for a package version
     */
    fixVersion(pkgName: string, version: string): BugVersionAdvice | undefined;
    fixManifest(bugVersionManifest: MixedBugVersionPackageType, fixVersionManifest: MixedBugVersionPackageType): MixedBugVersionPackageType | undefined;
}
