import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
import type { File, FileJson } from "./file_pb";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file mochabugapis/adapt/plugins/v1/tls_service.proto.
 */
export declare const file_mochabugapis_adapt_plugins_v1_tls_service: GenFile;
/**
 * TlsConfig configures the TLS behavior for the connection.
 * It supports two modes:
 * 1. MTLS: True Mutual TLS where both the client and server present and validate each other's certificates.
 * 2. SERVER_ONLY: Server-only validation where only the server presents a certificate, and the client validates it.
 *
 * @generated from message mochabugapis.adapt.plugins.v1.TlsDefinition
 */
export type TlsDefinition = Message<"mochabugapis.adapt.plugins.v1.TlsDefinition"> & {
    /**
     * Select the TLS mode for the connection.
     *
     * @generated from field: mochabugapis.adapt.plugins.v1.TlsDefinition.Mode mode = 1;
     */
    mode: TlsDefinition_Mode;
};
/**
 * TlsConfig configures the TLS behavior for the connection.
 * It supports two modes:
 * 1. MTLS: True Mutual TLS where both the client and server present and validate each other's certificates.
 * 2. SERVER_ONLY: Server-only validation where only the server presents a certificate, and the client validates it.
 *
 * @generated from message mochabugapis.adapt.plugins.v1.TlsDefinition
 */
export type TlsDefinitionJson = {
    /**
     * Select the TLS mode for the connection.
     *
     * @generated from field: mochabugapis.adapt.plugins.v1.TlsDefinition.Mode mode = 1;
     */
    mode?: TlsDefinition_ModeJson;
};
/**
 * Describes the message mochabugapis.adapt.plugins.v1.TlsDefinition.
 * Use `create(TlsDefinitionSchema)` to create a new message.
 */
export declare const TlsDefinitionSchema: GenMessage<TlsDefinition, {
    jsonType: TlsDefinitionJson;
}>;
/**
 * Mode specifies which TLS configuration to use.
 *
 * @generated from enum mochabugapis.adapt.plugins.v1.TlsDefinition.Mode
 */
export declare enum TlsDefinition_Mode {
    /**
     * Default value. Invalid.
     *
     * @generated from enum value: MODE_UNSPECIFIED = 0;
     */
    UNSPECIFIED = 0,
    /**
     * MTLS requires both the client and server to present valid certificates.
     *
     * @generated from enum value: MODE_MTLS = 1;
     */
    MTLS = 1,
    /**
     * SERVER_ONLY requires only the server to present a certificate, and the client performs validation.
     *
     * @generated from enum value: MODE_SERVER_ONLY = 2;
     */
    SERVER_ONLY = 2
}
/**
 * Mode specifies which TLS configuration to use.
 *
 * @generated from enum mochabugapis.adapt.plugins.v1.TlsDefinition.Mode
 */
export type TlsDefinition_ModeJson = "MODE_UNSPECIFIED" | "MODE_MTLS" | "MODE_SERVER_ONLY";
/**
 * Describes the enum mochabugapis.adapt.plugins.v1.TlsDefinition.Mode.
 */
export declare const TlsDefinition_ModeSchema: GenEnum<TlsDefinition_Mode, TlsDefinition_ModeJson>;
/**
 * The actual TLS configuration
 *
 * @generated from message mochabugapis.adapt.plugins.v1.TlsConfig
 */
export type TlsConfig = Message<"mochabugapis.adapt.plugins.v1.TlsConfig"> & {
    /**
     * The ca bundle in PEM format
     * The content of the file must be PEM format after decoding
     * If a certificate chain is presented. The server certificate must be the first one
     *
     * @generated from field: mochabugapis.adapt.plugins.v1.File ca_bundle = 1;
     */
    caBundle?: File;
    /**
     * The certificate in PEM format
     * The content of the file must be PEM format after decoding
     * If a certificate chain is presented. The server certificate must be the first one
     *
     * @generated from field: optional mochabugapis.adapt.plugins.v1.File certificate = 2;
     */
    certificate?: File;
    /**
     * The private key in PEM format
     * The content of the file must be PEM format after decoding
     * The content must contain a PRIVATE KEY block
     *
     * @generated from field: optional mochabugapis.adapt.plugins.v1.File private_key = 3;
     */
    privateKey?: File;
};
/**
 * The actual TLS configuration
 *
 * @generated from message mochabugapis.adapt.plugins.v1.TlsConfig
 */
export type TlsConfigJson = {
    /**
     * The ca bundle in PEM format
     * The content of the file must be PEM format after decoding
     * If a certificate chain is presented. The server certificate must be the first one
     *
     * @generated from field: mochabugapis.adapt.plugins.v1.File ca_bundle = 1;
     */
    caBundle?: FileJson;
    /**
     * The certificate in PEM format
     * The content of the file must be PEM format after decoding
     * If a certificate chain is presented. The server certificate must be the first one
     *
     * @generated from field: optional mochabugapis.adapt.plugins.v1.File certificate = 2;
     */
    certificate?: FileJson;
    /**
     * The private key in PEM format
     * The content of the file must be PEM format after decoding
     * The content must contain a PRIVATE KEY block
     *
     * @generated from field: optional mochabugapis.adapt.plugins.v1.File private_key = 3;
     */
    privateKey?: FileJson;
};
/**
 * Describes the message mochabugapis.adapt.plugins.v1.TlsConfig.
 * Use `create(TlsConfigSchema)` to create a new message.
 */
export declare const TlsConfigSchema: GenMessage<TlsConfig, {
    jsonType: TlsConfigJson;
}>;
//# sourceMappingURL=tls_service_pb.d.ts.map