export type Report = {
    auditReportVersion: 2;
    vulnerabilities: {
        [name: PackageName]: Dependency;
    };
    metadata: {
        vulnerabilities: {
            info: number;
            low: number;
            moderate: number;
            high: number;
            critical: number;
            total: number;
        };
        dependencies: {
            prod: number;
            dev: number;
            optional: number;
            peer: number;
            peerOptional: number;
            total: number;
        };
    };
};
export type Severity = "info" | "low" | "moderate" | "high" | "critical";
export type PackageName = string & {
    _package: never;
};
export type Dependency = {
    name: PackageName;
    severity: Severity;
    isDirect: boolean;
    via: Array<Vulnerability | PackageName>;
    effects: PackageName[];
    range: string;
    nodes: string[];
    fixAvailable: boolean;
};
export type Vulnerability = {
    source: number;
    name: PackageName;
    dependency: PackageName;
    title: string;
    url: string;
    severity: Severity;
    cwe: string[];
    cvss: {
        score: number;
        vectorString: string;
    };
    range: string;
};
export declare function collectVulnerabilities(report: Report, rootDependency: PackageName): Vulnerability[];
export declare function run(): Promise<Report>;
