import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
import type { Oauth2Definition, Oauth2DefinitionJson } from "./oauth2_service_pb";
import type { TlsDefinition, TlsDefinitionJson } from "./tls_service_pb";
import type { VariableDefinition, VariableDefinitionJson } from "./variable_service_pb";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file mochabugapis/adapt/plugins/v1/service_definition.proto.
 */
export declare const file_mochabugapis_adapt_plugins_v1_service_definition: GenFile;
/**
 * The service definition
 *
 * @generated from message mochabugapis.adapt.plugins.v1.ServiceDefinition
 */
export type ServiceDefinition = Message<"mochabugapis.adapt.plugins.v1.ServiceDefinition"> & {
    /**
     * 'name' is the identifier of the service, referenced in code
     *
     * @generated from field: string name = 1;
     */
    name: string;
    /**
     * 'label' is a human-friendly label shown in the UI
     *
     * @generated from field: string label = 2;
     */
    label: string;
    /**
     * 'description' is an optional detailed description of the service
     *
     * @generated from field: optional string description = 3;
     */
    description?: string;
    /**
     * The actual type of service that the definition is
     *
     * @generated from oneof mochabugapis.adapt.plugins.v1.ServiceDefinition.type
     */
    type: {
        /**
         * Variable service containing arbitrary JSON
         *
         * @generated from field: mochabugapis.adapt.plugins.v1.VariableDefinition variable = 4;
         */
        value: VariableDefinition;
        case: "variable";
    } | {
        /**
         * TLS service
         *
         * @generated from field: mochabugapis.adapt.plugins.v1.TlsDefinition tls = 5;
         */
        value: TlsDefinition;
        case: "tls";
    } | {
        /**
         * An OAuth2 service
         *
         * @generated from field: mochabugapis.adapt.plugins.v1.Oauth2Definition oauth2 = 6;
         */
        value: Oauth2Definition;
        case: "oauth2";
    } | {
        case: undefined;
        value?: undefined;
    };
};
/**
 * The service definition
 *
 * @generated from message mochabugapis.adapt.plugins.v1.ServiceDefinition
 */
export type ServiceDefinitionJson = {
    /**
     * 'name' is the identifier of the service, referenced in code
     *
     * @generated from field: string name = 1;
     */
    name?: string;
    /**
     * 'label' is a human-friendly label shown in the UI
     *
     * @generated from field: string label = 2;
     */
    label?: string;
    /**
     * 'description' is an optional detailed description of the service
     *
     * @generated from field: optional string description = 3;
     */
    description?: string;
    /**
     * Variable service containing arbitrary JSON
     *
     * @generated from field: mochabugapis.adapt.plugins.v1.VariableDefinition variable = 4;
     */
    variable?: VariableDefinitionJson;
    /**
     * TLS service
     *
     * @generated from field: mochabugapis.adapt.plugins.v1.TlsDefinition tls = 5;
     */
    tls?: TlsDefinitionJson;
    /**
     * An OAuth2 service
     *
     * @generated from field: mochabugapis.adapt.plugins.v1.Oauth2Definition oauth2 = 6;
     */
    oauth2?: Oauth2DefinitionJson;
};
/**
 * Describes the message mochabugapis.adapt.plugins.v1.ServiceDefinition.
 * Use `create(ServiceDefinitionSchema)` to create a new message.
 */
export declare const ServiceDefinitionSchema: GenMessage<ServiceDefinition, {
    jsonType: ServiceDefinitionJson;
}>;
//# sourceMappingURL=service_definition_pb.d.ts.map