import _m0 from "protobufjs/minimal";
export declare const protobufPackage = "yandex.cloud.containerregistry.v1";
/** A ScanResult resource. */
export interface ScanResult {
    $type: "yandex.cloud.containerregistry.v1.ScanResult";
    /** Output only. ID of the ScanResult. */
    id: string;
    /** Output only. ID of the Image that the ScanResult belongs to. */
    imageId: string;
    /** Output only. The timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format when the scan been finished. */
    scannedAt?: Date;
    /** Output only. The status of the ScanResult. */
    status: ScanResult_Status;
    /** Output only. Summary information about vulnerabilities found. */
    vulnerabilities?: VulnerabilityStats;
}
export declare enum ScanResult_Status {
    STATUS_UNSPECIFIED = 0,
    /** RUNNING - Image scan is in progress. */
    RUNNING = 1,
    /** READY - Image has been scanned and result is ready. */
    READY = 2,
    /** ERROR - Image scan is failed. */
    ERROR = 3,
    UNRECOGNIZED = -1
}
export declare function scanResult_StatusFromJSON(object: any): ScanResult_Status;
export declare function scanResult_StatusToJSON(object: ScanResult_Status): string;
/** A VulnerabilityStats resource. */
export interface VulnerabilityStats {
    $type: "yandex.cloud.containerregistry.v1.VulnerabilityStats";
    /** Count of CRITICAL vulnerabilities. */
    critical: number;
    /** Count of HIGH vulnerabilities. */
    high: number;
    /** Count of MEDIUM vulnerabilities. */
    medium: number;
    /** Count of LOW vulnerabilities. */
    low: number;
    /** Count of NEGLIGIBLE vulnerabilities. */
    negligible: number;
    /** Count of other vulnerabilities. */
    undefined: number;
}
/** A Vulnerability resource. */
export interface Vulnerability {
    $type: "yandex.cloud.containerregistry.v1.Vulnerability";
    /** Output only. Severity of the Vulnerability. */
    severity: Vulnerability_Severity;
    package?: PackageVulnerability | undefined;
}
export declare enum Vulnerability_Severity {
    SEVERITY_UNSPECIFIED = 0,
    /**
     * CRITICAL - Critical severity is a world-burning problem, exploitable for nearly all users.
     * Includes remote root privilege escalations, or massive data loss.
     */
    CRITICAL = 1,
    /**
     * HIGH - High severity is a real problem, exploitable for many users in a default installation.
     * Includes serious remote denial of services, local root privilege escalations, or data loss.
     */
    HIGH = 2,
    /**
     * MEDIUM - Medium severity is a real security problem, and is exploitable for many users.
     * Includes network daemon denial of service attacks, cross-site scripting, and gaining user privileges.
     * Updates should be made soon for this priority of issue.
     */
    MEDIUM = 3,
    /**
     * LOW - Low severity is a security problem, but is hard to exploit due to environment, requires a user-assisted attack,
     * a small install base, or does very little damage. These tend to be included in security updates only when
     * higher priority issues require an update, or if many low priority issues have built up.
     */
    LOW = 4,
    /**
     * NEGLIGIBLE - Negligible severity is technically a security problem, but is only theoretical in nature, requires a very special situation,
     * has almost no install base, or does no real damage. These tend not to get backport from upstream,
     * and will likely not be included in security updates unless there is an easy fix and some other issue causes an update.
     */
    NEGLIGIBLE = 5,
    /**
     * UNDEFINED - Unknown severity is either a security problem that has not been assigned to a priority yet or
     * a priority that our system did not recognize.
     */
    UNDEFINED = 6,
    UNRECOGNIZED = -1
}
export declare function vulnerability_SeverityFromJSON(object: any): Vulnerability_Severity;
export declare function vulnerability_SeverityToJSON(object: Vulnerability_Severity): string;
/** A PackageVulnerability resource. */
export interface PackageVulnerability {
    $type: "yandex.cloud.containerregistry.v1.PackageVulnerability";
    /** Name of vulnerability in CVE database. */
    name: string;
    /** URL to the page with description of vulnerability. */
    link: string;
    /** The package name where vulnerability has been found. */
    package: string;
    /** The package manager name. Ex.: yum, rpm, dpkg. */
    source: string;
    /** The version of the package where vulnerability has been found. */
    version: string;
    /** The version of the package where vulnerability has been fixed. */
    fixedBy: string;
}
export declare const ScanResult: {
    $type: "yandex.cloud.containerregistry.v1.ScanResult";
    encode(message: ScanResult, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number | undefined): ScanResult;
    fromJSON(object: any): ScanResult;
    toJSON(message: ScanResult): unknown;
    fromPartial<I extends {
        id?: string | undefined;
        status?: ScanResult_Status | undefined;
        imageId?: string | undefined;
        scannedAt?: Date | undefined;
        vulnerabilities?: {
            undefined?: number | undefined;
            critical?: number | undefined;
            high?: number | undefined;
            medium?: number | undefined;
            low?: number | undefined;
            negligible?: number | undefined;
        } | undefined;
    } & {
        id?: string | undefined;
        status?: ScanResult_Status | undefined;
        imageId?: string | undefined;
        scannedAt?: Date | undefined;
        vulnerabilities?: ({
            undefined?: number | undefined;
            critical?: number | undefined;
            high?: number | undefined;
            medium?: number | undefined;
            low?: number | undefined;
            negligible?: number | undefined;
        } & {
            undefined?: number | undefined;
            critical?: number | undefined;
            high?: number | undefined;
            medium?: number | undefined;
            low?: number | undefined;
            negligible?: number | undefined;
        } & Record<Exclude<keyof I["vulnerabilities"], "undefined" | "$type" | "critical" | "high" | "medium" | "low" | "negligible">, never>) | undefined;
    } & Record<Exclude<keyof I, "$type" | "id" | "status" | "imageId" | "scannedAt" | "vulnerabilities">, never>>(object: I): ScanResult;
};
export declare const VulnerabilityStats: {
    $type: "yandex.cloud.containerregistry.v1.VulnerabilityStats";
    encode(message: VulnerabilityStats, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number | undefined): VulnerabilityStats;
    fromJSON(object: any): VulnerabilityStats;
    toJSON(message: VulnerabilityStats): unknown;
    fromPartial<I extends {
        undefined?: number | undefined;
        critical?: number | undefined;
        high?: number | undefined;
        medium?: number | undefined;
        low?: number | undefined;
        negligible?: number | undefined;
    } & {
        undefined?: number | undefined;
        critical?: number | undefined;
        high?: number | undefined;
        medium?: number | undefined;
        low?: number | undefined;
        negligible?: number | undefined;
    } & Record<Exclude<keyof I, "undefined" | "$type" | "critical" | "high" | "medium" | "low" | "negligible">, never>>(object: I): VulnerabilityStats;
};
export declare const Vulnerability: {
    $type: "yandex.cloud.containerregistry.v1.Vulnerability";
    encode(message: Vulnerability, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number | undefined): Vulnerability;
    fromJSON(object: any): Vulnerability;
    toJSON(message: Vulnerability): unknown;
    fromPartial<I extends {
        severity?: Vulnerability_Severity | undefined;
        package?: {
            link?: string | undefined;
            name?: string | undefined;
            source?: string | undefined;
            package?: string | undefined;
            version?: string | undefined;
            fixedBy?: string | undefined;
        } | undefined;
    } & {
        severity?: Vulnerability_Severity | undefined;
        package?: ({
            link?: string | undefined;
            name?: string | undefined;
            source?: string | undefined;
            package?: string | undefined;
            version?: string | undefined;
            fixedBy?: string | undefined;
        } & {
            link?: string | undefined;
            name?: string | undefined;
            source?: string | undefined;
            package?: string | undefined;
            version?: string | undefined;
            fixedBy?: string | undefined;
        } & Record<Exclude<keyof I["package"], "$type" | "link" | "name" | "source" | "package" | "version" | "fixedBy">, never>) | undefined;
    } & Record<Exclude<keyof I, "$type" | "severity" | "package">, never>>(object: I): Vulnerability;
};
export declare const PackageVulnerability: {
    $type: "yandex.cloud.containerregistry.v1.PackageVulnerability";
    encode(message: PackageVulnerability, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number | undefined): PackageVulnerability;
    fromJSON(object: any): PackageVulnerability;
    toJSON(message: PackageVulnerability): unknown;
    fromPartial<I extends {
        link?: string | undefined;
        name?: string | undefined;
        source?: string | undefined;
        package?: string | undefined;
        version?: string | undefined;
        fixedBy?: string | undefined;
    } & {
        link?: string | undefined;
        name?: string | undefined;
        source?: string | undefined;
        package?: string | undefined;
        version?: string | undefined;
        fixedBy?: string | undefined;
    } & Record<Exclude<keyof I, "$type" | "link" | "name" | "source" | "package" | "version" | "fixedBy">, never>>(object: I): PackageVulnerability;
};
declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in Exclude<keyof T, "$type">]?: DeepPartial<T[K]>;
} : Partial<T>;
declare type KeysOfUnion<T> = T extends T ? keyof T : never;
export declare type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & Record<Exclude<keyof I, KeysOfUnion<P> | "$type">, never>;
export {};
