// @generated by protobuf-ts 2.9.1 with parameter output_legacy_commonjs,client_grpc1,server_none,output_javascript_es2020
// @generated from protobuf file "workload.proto" (syntax proto3)
// tslint:disable
import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
import type { IBinaryWriter } from "@protobuf-ts/runtime";
import type { BinaryReadOptions } from "@protobuf-ts/runtime";
import type { IBinaryReader } from "@protobuf-ts/runtime";
import type { PartialMessage } from "@protobuf-ts/runtime";
import { MessageType } from "@protobuf-ts/runtime";
import { Struct } from "./google/protobuf/struct";
/**
 * The X509SVIDRequest message conveys parameters for requesting an X.509-SVID.
 * There are currently no request parameters.
 *
 * @generated from protobuf message X509SVIDRequest
 */
export interface X509SVIDRequest {
}
/**
 * The X509SVIDResponse message carries X.509-SVIDs and related information,
 * including a set of global CRLs and a list of bundles the workload may use
 * for federating with foreign trust domains.
 *
 * @generated from protobuf message X509SVIDResponse
 */
export interface X509SVIDResponse {
    /**
     * Required. A list of X509SVID messages, each of which includes a single
     * X.509-SVID, its private key, and the bundle for the trust domain.
     *
     * @generated from protobuf field: repeated X509SVID svids = 1;
     */
    svids: X509SVID[];
    /**
     * Optional. ASN.1 DER encoded certificate revocation lists.
     *
     * @generated from protobuf field: repeated bytes crl = 2;
     */
    crl: Uint8Array[];
    /**
     * Optional. CA certificate bundles belonging to foreign trust domains that
     * the workload should trust, keyed by the SPIFFE ID of the foreign trust
     * domain. Bundles are ASN.1 DER encoded.
     *
     * @generated from protobuf field: map<string, bytes> federated_bundles = 3;
     */
    federatedBundles: {
        [key: string]: Uint8Array;
    };
}
/**
 * The X509SVID message carries a single SVID and all associated information,
 * including the X.509 bundle for the trust domain.
 *
 * @generated from protobuf message X509SVID
 */
export interface X509SVID {
    /**
     * Required. The SPIFFE ID of the SVID in this entry
     *
     * @generated from protobuf field: string spiffe_id = 1;
     */
    spiffeId: string;
    /**
     * Required. ASN.1 DER encoded certificate chain. MAY include
     * intermediates, the leaf certificate (or SVID itself) MUST come first.
     *
     * @generated from protobuf field: bytes x509_svid = 2;
     */
    x509Svid: Uint8Array;
    /**
     * Required. ASN.1 DER encoded PKCS#8 private key. MUST be unencrypted.
     *
     * @generated from protobuf field: bytes x509_svid_key = 3;
     */
    x509SvidKey: Uint8Array;
    /**
     * Required. ASN.1 DER encoded X.509 bundle for the trust domain.
     *
     * @generated from protobuf field: bytes bundle = 4;
     */
    bundle: Uint8Array;
    /**
     * Optional. An operator-specified string used to provide guidance on how this
     * identity should be used by a workload when more than one SVID is returned.
     * For example, `internal` and `external` to indicate an SVID for internal or
     * external use, respectively.
     *
     * @generated from protobuf field: string hint = 5;
     */
    hint: string;
}
/**
 * The X509BundlesRequest message conveys parameters for requesting X.509
 * bundles. There are currently no such parameters.
 *
 * @generated from protobuf message X509BundlesRequest
 */
export interface X509BundlesRequest {
}
/**
 * The X509BundlesResponse message carries a set of global CRLs and a map of
 * trust bundles the workload should trust.
 *
 * @generated from protobuf message X509BundlesResponse
 */
export interface X509BundlesResponse {
    /**
     * Optional. ASN.1 DER encoded certificate revocation lists.
     *
     * @generated from protobuf field: repeated bytes crl = 1;
     */
    crl: Uint8Array[];
    /**
     * Required. CA certificate bundles belonging to trust domains that the
     * workload should trust, keyed by the SPIFFE ID of the trust domain.
     * Bundles are ASN.1 DER encoded.
     *
     * @generated from protobuf field: map<string, bytes> bundles = 2;
     */
    bundles: {
        [key: string]: Uint8Array;
    };
}
/**
 * @generated from protobuf message JWTSVIDRequest
 */
export interface JWTSVIDRequest {
    /**
     * Required. The audience(s) the workload intends to authenticate against.
     *
     * @generated from protobuf field: repeated string audience = 1;
     */
    audience: string[];
    /**
     * Optional. The requested SPIFFE ID for the JWT-SVID. If unset, all
     * JWT-SVIDs to which the workload is entitled are requested.
     *
     * @generated from protobuf field: string spiffe_id = 2;
     */
    spiffeId: string;
}
/**
 * The JWTSVIDResponse message conveys JWT-SVIDs.
 *
 * @generated from protobuf message JWTSVIDResponse
 */
export interface JWTSVIDResponse {
    /**
     * Required. The list of returned JWT-SVIDs.
     *
     * @generated from protobuf field: repeated JWTSVID svids = 1;
     */
    svids: JWTSVID[];
}
/**
 * The JWTSVID message carries the JWT-SVID token and associated metadata.
 *
 * @generated from protobuf message JWTSVID
 */
export interface JWTSVID {
    /**
     * Required. The SPIFFE ID of the JWT-SVID.
     *
     * @generated from protobuf field: string spiffe_id = 1;
     */
    spiffeId: string;
    /**
     * Required. Encoded JWT using JWS Compact Serialization.
     *
     * @generated from protobuf field: string svid = 2;
     */
    svid: string;
    /**
     * Optional. An operator-specified string used to provide guidance on how this
     * identity should be used by a workload when more than one SVID is returned.
     * For example, `internal` and `external` to indicate an SVID for internal or
     * external use, respectively.
     *
     * @generated from protobuf field: string hint = 3;
     */
    hint: string;
}
/**
 * The JWTBundlesRequest message conveys parameters for requesting JWT bundles.
 * There are currently no such parameters.
 *
 * @generated from protobuf message JWTBundlesRequest
 */
export interface JWTBundlesRequest {
}
/**
 * The JWTBundlesReponse conveys JWT bundles.
 *
 * @generated from protobuf message JWTBundlesResponse
 */
export interface JWTBundlesResponse {
    /**
     * Required. JWK encoded JWT bundles, keyed by the SPIFFE ID of the trust
     * domain.
     *
     * @generated from protobuf field: map<string, bytes> bundles = 1;
     */
    bundles: {
        [key: string]: Uint8Array;
    };
}
/**
 * The ValidateJWTSVIDRequest message conveys request parameters for
 * JWT-SVID validation.
 *
 * @generated from protobuf message ValidateJWTSVIDRequest
 */
export interface ValidateJWTSVIDRequest {
    /**
     * Required. The audience of the validating party. The JWT-SVID must
     * contain an audience claim which contains this value in order to
     * succesfully validate.
     *
     * @generated from protobuf field: string audience = 1;
     */
    audience: string;
    /**
     * Required. The JWT-SVID to validate, encoded using JWS Compact
     * Serialization.
     *
     * @generated from protobuf field: string svid = 2;
     */
    svid: string;
}
/**
 * The ValidateJWTSVIDReponse message conveys the JWT-SVID validation results.
 *
 * @generated from protobuf message ValidateJWTSVIDResponse
 */
export interface ValidateJWTSVIDResponse {
    /**
     * Required. The SPIFFE ID of the validated JWT-SVID.
     *
     * @generated from protobuf field: string spiffe_id = 1;
     */
    spiffeId: string;
    /**
     * Required. Claims contained within the payload of the validated JWT-SVID.
     * This includes both SPIFFE-required and non-required claims.
     *
     * @generated from protobuf field: google.protobuf.Struct claims = 2;
     */
    claims?: Struct;
}
declare class X509SVIDRequest$Type extends MessageType<X509SVIDRequest> {
    constructor();
    create(value?: PartialMessage<X509SVIDRequest>): X509SVIDRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: X509SVIDRequest): X509SVIDRequest;
    internalBinaryWrite(message: X509SVIDRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message X509SVIDRequest
 */
export declare const X509SVIDRequest: X509SVIDRequest$Type;
declare class X509SVIDResponse$Type extends MessageType<X509SVIDResponse> {
    constructor();
    create(value?: PartialMessage<X509SVIDResponse>): X509SVIDResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: X509SVIDResponse): X509SVIDResponse;
    private binaryReadMap3;
    internalBinaryWrite(message: X509SVIDResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message X509SVIDResponse
 */
export declare const X509SVIDResponse: X509SVIDResponse$Type;
declare class X509SVID$Type extends MessageType<X509SVID> {
    constructor();
    create(value?: PartialMessage<X509SVID>): X509SVID;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: X509SVID): X509SVID;
    internalBinaryWrite(message: X509SVID, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message X509SVID
 */
export declare const X509SVID: X509SVID$Type;
declare class X509BundlesRequest$Type extends MessageType<X509BundlesRequest> {
    constructor();
    create(value?: PartialMessage<X509BundlesRequest>): X509BundlesRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: X509BundlesRequest): X509BundlesRequest;
    internalBinaryWrite(message: X509BundlesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message X509BundlesRequest
 */
export declare const X509BundlesRequest: X509BundlesRequest$Type;
declare class X509BundlesResponse$Type extends MessageType<X509BundlesResponse> {
    constructor();
    create(value?: PartialMessage<X509BundlesResponse>): X509BundlesResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: X509BundlesResponse): X509BundlesResponse;
    private binaryReadMap2;
    internalBinaryWrite(message: X509BundlesResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message X509BundlesResponse
 */
export declare const X509BundlesResponse: X509BundlesResponse$Type;
declare class JWTSVIDRequest$Type extends MessageType<JWTSVIDRequest> {
    constructor();
    create(value?: PartialMessage<JWTSVIDRequest>): JWTSVIDRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: JWTSVIDRequest): JWTSVIDRequest;
    internalBinaryWrite(message: JWTSVIDRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message JWTSVIDRequest
 */
export declare const JWTSVIDRequest: JWTSVIDRequest$Type;
declare class JWTSVIDResponse$Type extends MessageType<JWTSVIDResponse> {
    constructor();
    create(value?: PartialMessage<JWTSVIDResponse>): JWTSVIDResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: JWTSVIDResponse): JWTSVIDResponse;
    internalBinaryWrite(message: JWTSVIDResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message JWTSVIDResponse
 */
export declare const JWTSVIDResponse: JWTSVIDResponse$Type;
declare class JWTSVID$Type extends MessageType<JWTSVID> {
    constructor();
    create(value?: PartialMessage<JWTSVID>): JWTSVID;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: JWTSVID): JWTSVID;
    internalBinaryWrite(message: JWTSVID, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message JWTSVID
 */
export declare const JWTSVID: JWTSVID$Type;
declare class JWTBundlesRequest$Type extends MessageType<JWTBundlesRequest> {
    constructor();
    create(value?: PartialMessage<JWTBundlesRequest>): JWTBundlesRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: JWTBundlesRequest): JWTBundlesRequest;
    internalBinaryWrite(message: JWTBundlesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message JWTBundlesRequest
 */
export declare const JWTBundlesRequest: JWTBundlesRequest$Type;
declare class JWTBundlesResponse$Type extends MessageType<JWTBundlesResponse> {
    constructor();
    create(value?: PartialMessage<JWTBundlesResponse>): JWTBundlesResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: JWTBundlesResponse): JWTBundlesResponse;
    private binaryReadMap1;
    internalBinaryWrite(message: JWTBundlesResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message JWTBundlesResponse
 */
export declare const JWTBundlesResponse: JWTBundlesResponse$Type;
declare class ValidateJWTSVIDRequest$Type extends MessageType<ValidateJWTSVIDRequest> {
    constructor();
    create(value?: PartialMessage<ValidateJWTSVIDRequest>): ValidateJWTSVIDRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ValidateJWTSVIDRequest): ValidateJWTSVIDRequest;
    internalBinaryWrite(message: ValidateJWTSVIDRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message ValidateJWTSVIDRequest
 */
export declare const ValidateJWTSVIDRequest: ValidateJWTSVIDRequest$Type;
declare class ValidateJWTSVIDResponse$Type extends MessageType<ValidateJWTSVIDResponse> {
    constructor();
    create(value?: PartialMessage<ValidateJWTSVIDResponse>): ValidateJWTSVIDResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ValidateJWTSVIDResponse): ValidateJWTSVIDResponse;
    internalBinaryWrite(message: ValidateJWTSVIDResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message ValidateJWTSVIDResponse
 */
export declare const ValidateJWTSVIDResponse: ValidateJWTSVIDResponse$Type;
/**
 * @generated ServiceType for protobuf service SpiffeWorkloadAPI
 */
export declare const SpiffeWorkloadAPI: any;
export {};
