import _m0 from "protobufjs/minimal.js";
export declare const protobufPackage = "";
export declare enum SevSNPCertType {
    ARK = 0,
    ASK = 1,
    VCEK = 2
}
export declare function sevSNPCertTypeFromJSON(object: any): SevSNPCertType;
export declare function sevSNPCertTypeToJSON(object: SevSNPCertType): string;
export declare enum SevSnpCertificateFormat {
    PEM = 0,
    DER = 1
}
export declare function sevSnpCertificateFormatFromJSON(object: any): SevSnpCertificateFormat;
export declare function sevSnpCertificateFormatToJSON(object: SevSnpCertificateFormat): string;
export interface SnpCert {
    type: SevSNPCertType;
    cert: Uint8Array;
    format: SevSnpCertificateFormat;
}
export interface SNPReport {
    rawReport: Uint8Array;
    cpuSig: number;
    cores: number;
    cmdLineHash: Uint8Array;
    build: string;
}
export interface SNPReportWithChain {
    snpReport: SNPReport | undefined;
    certs: SnpCert[];
}
export declare const SnpCert: {
    encode(message: SnpCert, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SnpCert;
    fromJSON(object: any): SnpCert;
    toJSON(message: SnpCert): unknown;
    create<I extends {
        type?: SevSNPCertType | undefined;
        cert?: Uint8Array | undefined;
        format?: SevSnpCertificateFormat | undefined;
    } & {
        type?: SevSNPCertType | undefined;
        cert?: Uint8Array | undefined;
        format?: SevSnpCertificateFormat | undefined;
    } & { [K in Exclude<keyof I, keyof SnpCert>]: never; }>(base?: I | undefined): SnpCert;
    fromPartial<I_1 extends {
        type?: SevSNPCertType | undefined;
        cert?: Uint8Array | undefined;
        format?: SevSnpCertificateFormat | undefined;
    } & {
        type?: SevSNPCertType | undefined;
        cert?: Uint8Array | undefined;
        format?: SevSnpCertificateFormat | undefined;
    } & { [K_1 in Exclude<keyof I_1, keyof SnpCert>]: never; }>(object: I_1): SnpCert;
};
export declare const SNPReport: {
    encode(message: SNPReport, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SNPReport;
    fromJSON(object: any): SNPReport;
    toJSON(message: SNPReport): unknown;
    create<I extends {
        rawReport?: Uint8Array | undefined;
        cpuSig?: number | undefined;
        cores?: number | undefined;
        cmdLineHash?: Uint8Array | undefined;
        build?: string | undefined;
    } & {
        rawReport?: Uint8Array | undefined;
        cpuSig?: number | undefined;
        cores?: number | undefined;
        cmdLineHash?: Uint8Array | undefined;
        build?: string | undefined;
    } & { [K in Exclude<keyof I, keyof SNPReport>]: never; }>(base?: I | undefined): SNPReport;
    fromPartial<I_1 extends {
        rawReport?: Uint8Array | undefined;
        cpuSig?: number | undefined;
        cores?: number | undefined;
        cmdLineHash?: Uint8Array | undefined;
        build?: string | undefined;
    } & {
        rawReport?: Uint8Array | undefined;
        cpuSig?: number | undefined;
        cores?: number | undefined;
        cmdLineHash?: Uint8Array | undefined;
        build?: string | undefined;
    } & { [K_1 in Exclude<keyof I_1, keyof SNPReport>]: never; }>(object: I_1): SNPReport;
};
export declare const SNPReportWithChain: {
    encode(message: SNPReportWithChain, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SNPReportWithChain;
    fromJSON(object: any): SNPReportWithChain;
    toJSON(message: SNPReportWithChain): unknown;
    create<I extends {
        snpReport?: {
            rawReport?: Uint8Array | undefined;
            cpuSig?: number | undefined;
            cores?: number | undefined;
            cmdLineHash?: Uint8Array | undefined;
            build?: string | undefined;
        } | undefined;
        certs?: {
            type?: SevSNPCertType | undefined;
            cert?: Uint8Array | undefined;
            format?: SevSnpCertificateFormat | undefined;
        }[] | undefined;
    } & {
        snpReport?: ({
            rawReport?: Uint8Array | undefined;
            cpuSig?: number | undefined;
            cores?: number | undefined;
            cmdLineHash?: Uint8Array | undefined;
            build?: string | undefined;
        } & {
            rawReport?: Uint8Array | undefined;
            cpuSig?: number | undefined;
            cores?: number | undefined;
            cmdLineHash?: Uint8Array | undefined;
            build?: string | undefined;
        } & { [K in Exclude<keyof I["snpReport"], keyof SNPReport>]: never; }) | undefined;
        certs?: ({
            type?: SevSNPCertType | undefined;
            cert?: Uint8Array | undefined;
            format?: SevSnpCertificateFormat | undefined;
        }[] & ({
            type?: SevSNPCertType | undefined;
            cert?: Uint8Array | undefined;
            format?: SevSnpCertificateFormat | undefined;
        } & {
            type?: SevSNPCertType | undefined;
            cert?: Uint8Array | undefined;
            format?: SevSnpCertificateFormat | undefined;
        } & { [K_1 in Exclude<keyof I["certs"][number], keyof SnpCert>]: never; })[] & { [K_2 in Exclude<keyof I["certs"], keyof {
            type?: SevSNPCertType | undefined;
            cert?: Uint8Array | undefined;
            format?: SevSnpCertificateFormat | undefined;
        }[]>]: never; }) | undefined;
    } & { [K_3 in Exclude<keyof I, keyof SNPReportWithChain>]: never; }>(base?: I | undefined): SNPReportWithChain;
    fromPartial<I_1 extends {
        snpReport?: {
            rawReport?: Uint8Array | undefined;
            cpuSig?: number | undefined;
            cores?: number | undefined;
            cmdLineHash?: Uint8Array | undefined;
            build?: string | undefined;
        } | undefined;
        certs?: {
            type?: SevSNPCertType | undefined;
            cert?: Uint8Array | undefined;
            format?: SevSnpCertificateFormat | undefined;
        }[] | undefined;
    } & {
        snpReport?: ({
            rawReport?: Uint8Array | undefined;
            cpuSig?: number | undefined;
            cores?: number | undefined;
            cmdLineHash?: Uint8Array | undefined;
            build?: string | undefined;
        } & {
            rawReport?: Uint8Array | undefined;
            cpuSig?: number | undefined;
            cores?: number | undefined;
            cmdLineHash?: Uint8Array | undefined;
            build?: string | undefined;
        } & { [K_4 in Exclude<keyof I_1["snpReport"], keyof SNPReport>]: never; }) | undefined;
        certs?: ({
            type?: SevSNPCertType | undefined;
            cert?: Uint8Array | undefined;
            format?: SevSnpCertificateFormat | undefined;
        }[] & ({
            type?: SevSNPCertType | undefined;
            cert?: Uint8Array | undefined;
            format?: SevSnpCertificateFormat | undefined;
        } & {
            type?: SevSNPCertType | undefined;
            cert?: Uint8Array | undefined;
            format?: SevSnpCertificateFormat | undefined;
        } & { [K_5 in Exclude<keyof I_1["certs"][number], keyof SnpCert>]: never; })[] & { [K_6 in Exclude<keyof I_1["certs"], keyof {
            type?: SevSNPCertType | undefined;
            cert?: Uint8Array | undefined;
            format?: SevSnpCertificateFormat | undefined;
        }[]>]: never; }) | undefined;
    } & { [K_7 in Exclude<keyof I_1, keyof SNPReportWithChain>]: never; }>(object: I_1): SNPReportWithChain;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & {
    [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
};
export {};
