// @generated by protoc-gen-es v2.5.0 with parameter "target=js+dts,import_extension=js,json_types=true"
// @generated from file arg_services/quality/v1beta/expert.proto (package arg_services.quality.v1beta, syntax proto3)
/* eslint-disable */

import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import type { JsonObject, Message } from "@bufbuild/protobuf";
import type { StructJson } from "@bufbuild/protobuf/wkt";

/**
 * Describes the file arg_services/quality/v1beta/expert.proto.
 */
export declare const file_arg_services_quality_v1beta_expert: GenFile;

/**
 * @generated from message arg_services.quality.v1beta.ExpertSuitableRequest
 */
export declare type ExpertSuitableRequest = Message<"arg_services.quality.v1beta.ExpertSuitableRequest"> & {
  /**
   * The premise to be validated
   *
   * @generated from field: string premise = 1;
   */
  premise: string;

  /**
   * Google scholar id of the expert
   *
   * @generated from field: string scholar_id = 2;
   */
  scholarId: string;

  /**
   * key: feature name, value: text of the feature
   *
   * @generated from field: map<string, string> features = 3;
   */
  features: { [key: string]: string };

  /**
   * Implementation-specific information can be encoded here
   *
   * @generated from field: google.protobuf.Struct extras = 15;
   */
  extras?: JsonObject;
};

/**
 * @generated from message arg_services.quality.v1beta.ExpertSuitableRequest
 */
export declare type ExpertSuitableRequestJson = {
  /**
   * The premise to be validated
   *
   * @generated from field: string premise = 1;
   */
  premise?: string;

  /**
   * Google scholar id of the expert
   *
   * @generated from field: string scholar_id = 2;
   */
  scholarId?: string;

  /**
   * key: feature name, value: text of the feature
   *
   * @generated from field: map<string, string> features = 3;
   */
  features?: { [key: string]: string };

  /**
   * Implementation-specific information can be encoded here
   *
   * @generated from field: google.protobuf.Struct extras = 15;
   */
  extras?: StructJson;
};

/**
 * Describes the message arg_services.quality.v1beta.ExpertSuitableRequest.
 * Use `create(ExpertSuitableRequestSchema)` to create a new message.
 */
export declare const ExpertSuitableRequestSchema: GenMessage<ExpertSuitableRequest, {jsonType: ExpertSuitableRequestJson}>;

/**
 * @generated from message arg_services.quality.v1beta.ExpertSuitableResponse
 */
export declare type ExpertSuitableResponse = Message<"arg_services.quality.v1beta.ExpertSuitableResponse"> & {
  /**
   * @generated from field: arg_services.quality.v1beta.SuitabilityType type = 1;
   */
  type: SuitabilityType;

  /**
   * @generated from field: repeated arg_services.quality.v1beta.SuitabilityPrediction predictions = 2;
   */
  predictions: SuitabilityPrediction[];

  /**
   * Implementation-specific information can be encoded here
   *
   * @generated from field: google.protobuf.Struct extras = 15;
   */
  extras?: JsonObject;
};

/**
 * @generated from message arg_services.quality.v1beta.ExpertSuitableResponse
 */
export declare type ExpertSuitableResponseJson = {
  /**
   * @generated from field: arg_services.quality.v1beta.SuitabilityType type = 1;
   */
  type?: SuitabilityTypeJson;

  /**
   * @generated from field: repeated arg_services.quality.v1beta.SuitabilityPrediction predictions = 2;
   */
  predictions?: SuitabilityPredictionJson[];

  /**
   * Implementation-specific information can be encoded here
   *
   * @generated from field: google.protobuf.Struct extras = 15;
   */
  extras?: StructJson;
};

/**
 * Describes the message arg_services.quality.v1beta.ExpertSuitableResponse.
 * Use `create(ExpertSuitableResponseSchema)` to create a new message.
 */
export declare const ExpertSuitableResponseSchema: GenMessage<ExpertSuitableResponse, {jsonType: ExpertSuitableResponseJson}>;

/**
 * @generated from message arg_services.quality.v1beta.SuitabilityPrediction
 */
export declare type SuitabilityPrediction = Message<"arg_services.quality.v1beta.SuitabilityPrediction"> & {
  /**
   * @generated from field: double probability = 1;
   */
  probability: number;

  /**
   * @generated from field: arg_services.quality.v1beta.SuitabilityType type = 2;
   */
  type: SuitabilityType;
};

/**
 * @generated from message arg_services.quality.v1beta.SuitabilityPrediction
 */
export declare type SuitabilityPredictionJson = {
  /**
   * @generated from field: double probability = 1;
   */
  probability?: number | "NaN" | "Infinity" | "-Infinity";

  /**
   * @generated from field: arg_services.quality.v1beta.SuitabilityType type = 2;
   */
  type?: SuitabilityTypeJson;
};

/**
 * Describes the message arg_services.quality.v1beta.SuitabilityPrediction.
 * Use `create(SuitabilityPredictionSchema)` to create a new message.
 */
export declare const SuitabilityPredictionSchema: GenMessage<SuitabilityPrediction, {jsonType: SuitabilityPredictionJson}>;

/**
 * @generated from enum arg_services.quality.v1beta.SuitabilityType
 */
export enum SuitabilityType {
  /**
   * @generated from enum value: SUITABILITY_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: SUITABILITY_TYPE_NO_EXPERT = 1;
   */
  NO_EXPERT = 1,

  /**
   * @generated from enum value: SUITABILITY_TYPE_SOMEWHAT_EXPERT = 2;
   */
  SOMEWHAT_EXPERT = 2,

  /**
   * @generated from enum value: SUITABILITY_TYPE_ABSOLUTE_EXPERT = 3;
   */
  ABSOLUTE_EXPERT = 3,
}

/**
 * @generated from enum arg_services.quality.v1beta.SuitabilityType
 */
export declare type SuitabilityTypeJson = "SUITABILITY_TYPE_UNSPECIFIED" | "SUITABILITY_TYPE_NO_EXPERT" | "SUITABILITY_TYPE_SOMEWHAT_EXPERT" | "SUITABILITY_TYPE_ABSOLUTE_EXPERT";

/**
 * Describes the enum arg_services.quality.v1beta.SuitabilityType.
 */
export declare const SuitabilityTypeSchema: GenEnum<SuitabilityType, SuitabilityTypeJson>;

/**
 * @generated from service arg_services.quality.v1beta.ExpertSuitabilityService
 */
export declare const ExpertSuitabilityService: GenService<{
  /**
   * @generated from rpc arg_services.quality.v1beta.ExpertSuitabilityService.ExpertSuitable
   */
  expertSuitable: {
    methodKind: "unary";
    input: typeof ExpertSuitableRequestSchema;
    output: typeof ExpertSuitableResponseSchema;
  },
}>;

