// @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/explanation.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/explanation.proto.
 */
export declare const file_arg_services_quality_v1beta_explanation: GenFile;

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

  /**
   * @generated from field: string premise1 = 2;
   */
  premise1: string;

  /**
   * @generated from field: string premise2 = 3;
   */
  premise2: 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.ExplainRequest
 */
export declare type ExplainRequestJson = {
  /**
   * @generated from field: string claim = 1;
   */
  claim?: string;

  /**
   * @generated from field: string premise1 = 2;
   */
  premise1?: string;

  /**
   * @generated from field: string premise2 = 3;
   */
  premise2?: 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.ExplainRequest.
 * Use `create(ExplainRequestSchema)` to create a new message.
 */
export declare const ExplainRequestSchema: GenMessage<ExplainRequest, {jsonType: ExplainRequestJson}>;

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

  /**
   * key: name of dimension
   *
   * @generated from field: map<string, arg_services.quality.v1beta.QualityDimension> dimensions = 2;
   */
  dimensions: { [key: string]: QualityDimension };

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

/**
 * @generated from message arg_services.quality.v1beta.ExplainResponse
 */
export declare type ExplainResponseJson = {
  /**
   * @generated from field: arg_services.quality.v1beta.PremiseConvincingness global_convincingness = 1;
   */
  globalConvincingness?: PremiseConvincingnessJson;

  /**
   * key: name of dimension
   *
   * @generated from field: map<string, arg_services.quality.v1beta.QualityDimension> dimensions = 2;
   */
  dimensions?: { [key: string]: QualityDimensionJson };

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

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

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

  /**
   * @generated from field: double premise1 = 2;
   */
  premise1: number;

  /**
   * @generated from field: double premise2 = 3;
   */
  premise2: number;

  /**
   * @generated from field: string explanation = 4;
   */
  explanation: string;

  /**
   * @generated from field: repeated string methods = 5;
   */
  methods: string[];
};

/**
 * @generated from message arg_services.quality.v1beta.QualityDimension
 */
export declare type QualityDimensionJson = {
  /**
   * @generated from field: arg_services.quality.v1beta.PremiseConvincingness convincingness = 1;
   */
  convincingness?: PremiseConvincingnessJson;

  /**
   * @generated from field: double premise1 = 2;
   */
  premise1?: number | "NaN" | "Infinity" | "-Infinity";

  /**
   * @generated from field: double premise2 = 3;
   */
  premise2?: number | "NaN" | "Infinity" | "-Infinity";

  /**
   * @generated from field: string explanation = 4;
   */
  explanation?: string;

  /**
   * @generated from field: repeated string methods = 5;
   */
  methods?: string[];
};

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

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

  /**
   * @generated from enum value: PREMISE_CONVINCINGNESS_PREMISE_1 = 1;
   */
  PREMISE_1 = 1,

  /**
   * @generated from enum value: PREMISE_CONVINCINGNESS_PREMISE_2 = 2;
   */
  PREMISE_2 = 2,

  /**
   * @generated from enum value: PREMISE_CONVINCINGNESS_PREMISE_EQUAL = 3;
   */
  PREMISE_EQUAL = 3,
}

/**
 * @generated from enum arg_services.quality.v1beta.PremiseConvincingness
 */
export declare type PremiseConvincingnessJson = "PREMISE_CONVINCINGNESS_UNSPECIFIED" | "PREMISE_CONVINCINGNESS_PREMISE_1" | "PREMISE_CONVINCINGNESS_PREMISE_2" | "PREMISE_CONVINCINGNESS_PREMISE_EQUAL";

/**
 * Describes the enum arg_services.quality.v1beta.PremiseConvincingness.
 */
export declare const PremiseConvincingnessSchema: GenEnum<PremiseConvincingness, PremiseConvincingnessJson>;

/**
 * @generated from service arg_services.quality.v1beta.QualityExplanationService
 */
export declare const QualityExplanationService: GenService<{
  /**
   * @generated from rpc arg_services.quality.v1beta.QualityExplanationService.Explain
   */
  explain: {
    methodKind: "unary";
    input: typeof ExplainRequestSchema;
    output: typeof ExplainResponseSchema;
  },
}>;

