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

import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import type { JsonObject, Message } from "@bufbuild/protobuf";
import type { AnnotatedGraph, AnnotatedGraphJson } from "./model_pb.js";
import type { NlpConfig, NlpConfigJson } from "../../nlp/v1/nlp_pb.js";
import type { StructJson } from "@bufbuild/protobuf/wkt";
import type { RetrievedMapping, RetrievedMappingJson } from "./retrieval_pb.js";

/**
 * Describes the file arg_services/cbr/v1beta/adaptation.proto.
 */
export declare const file_arg_services_cbr_v1beta_adaptation: GenFile;

/**
 * @generated from message arg_services.cbr.v1beta.AdaptRequest
 */
export declare type AdaptRequest = Message<"arg_services.cbr.v1beta.AdaptRequest"> & {
  /**
   * @generated from field: map<string, arg_services.cbr.v1beta.AdaptedCaseRequest> cases = 2;
   */
  cases: { [key: string]: AdaptedCaseRequest };

  /**
   * @generated from field: arg_services.cbr.v1beta.AnnotatedGraph query = 3;
   */
  query?: AnnotatedGraph;

  /**
   * @generated from field: arg_services.nlp.v1.NlpConfig nlp_config = 5;
   */
  nlpConfig?: NlpConfig;

  /**
   * @generated from field: arg_services.cbr.v1beta.Direction direction = 6;
   */
  direction: Direction;

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

/**
 * @generated from message arg_services.cbr.v1beta.AdaptRequest
 */
export declare type AdaptRequestJson = {
  /**
   * @generated from field: map<string, arg_services.cbr.v1beta.AdaptedCaseRequest> cases = 2;
   */
  cases?: { [key: string]: AdaptedCaseRequestJson };

  /**
   * @generated from field: arg_services.cbr.v1beta.AnnotatedGraph query = 3;
   */
  query?: AnnotatedGraphJson;

  /**
   * @generated from field: arg_services.nlp.v1.NlpConfig nlp_config = 5;
   */
  nlpConfig?: NlpConfigJson;

  /**
   * @generated from field: arg_services.cbr.v1beta.Direction direction = 6;
   */
  direction?: DirectionJson;

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

/**
 * Describes the message arg_services.cbr.v1beta.AdaptRequest.
 * Use `create(AdaptRequestSchema)` to create a new message.
 */
export declare const AdaptRequestSchema: GenMessage<AdaptRequest, {jsonType: AdaptRequestJson}>;

/**
 * @generated from message arg_services.cbr.v1beta.AdaptResponse
 */
export declare type AdaptResponse = Message<"arg_services.cbr.v1beta.AdaptResponse"> & {
  /**
   * @generated from field: map<string, arg_services.cbr.v1beta.AdaptedCaseResponse> cases = 1;
   */
  cases: { [key: string]: AdaptedCaseResponse };

  /**
   * @generated from field: google.protobuf.Struct extras = 15;
   */
  extras?: JsonObject;
};

/**
 * @generated from message arg_services.cbr.v1beta.AdaptResponse
 */
export declare type AdaptResponseJson = {
  /**
   * @generated from field: map<string, arg_services.cbr.v1beta.AdaptedCaseResponse> cases = 1;
   */
  cases?: { [key: string]: AdaptedCaseResponseJson };

  /**
   * @generated from field: google.protobuf.Struct extras = 15;
   */
  extras?: StructJson;
};

/**
 * Describes the message arg_services.cbr.v1beta.AdaptResponse.
 * Use `create(AdaptResponseSchema)` to create a new message.
 */
export declare const AdaptResponseSchema: GenMessage<AdaptResponse, {jsonType: AdaptResponseJson}>;

/**
 * @generated from message arg_services.cbr.v1beta.AdaptedCaseRequest
 */
export declare type AdaptedCaseRequest = Message<"arg_services.cbr.v1beta.AdaptedCaseRequest"> & {
  /**
   * @generated from field: arg_services.cbr.v1beta.AnnotatedGraph case = 1;
   */
  case?: AnnotatedGraph;

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.Rule rules = 2;
   */
  rules: Rule[];

  /**
   * @generated from field: optional arg_services.cbr.v1beta.RetrievedMapping mapping = 3;
   */
  mapping?: RetrievedMapping;
};

/**
 * @generated from message arg_services.cbr.v1beta.AdaptedCaseRequest
 */
export declare type AdaptedCaseRequestJson = {
  /**
   * @generated from field: arg_services.cbr.v1beta.AnnotatedGraph case = 1;
   */
  case?: AnnotatedGraphJson;

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.Rule rules = 2;
   */
  rules?: RuleJson[];

  /**
   * @generated from field: optional arg_services.cbr.v1beta.RetrievedMapping mapping = 3;
   */
  mapping?: RetrievedMappingJson;
};

/**
 * Describes the message arg_services.cbr.v1beta.AdaptedCaseRequest.
 * Use `create(AdaptedCaseRequestSchema)` to create a new message.
 */
export declare const AdaptedCaseRequestSchema: GenMessage<AdaptedCaseRequest, {jsonType: AdaptedCaseRequestJson}>;

/**
 * @generated from message arg_services.cbr.v1beta.AdaptedCaseResponse
 */
export declare type AdaptedCaseResponse = Message<"arg_services.cbr.v1beta.AdaptedCaseResponse"> & {
  /**
   * @generated from field: arg_services.cbr.v1beta.AnnotatedGraph case = 1;
   */
  case?: AnnotatedGraph;

  /**
   * These are optional and used for further evaluation only
   *
   * @generated from field: repeated arg_services.cbr.v1beta.Concept extracted_concepts = 2;
   */
  extractedConcepts: Concept[];

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.Concept discarded_concepts = 3;
   */
  discardedConcepts: Concept[];

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.Rule applied_rules = 4;
   */
  appliedRules: Rule[];

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.Rule discarded_rules = 5;
   */
  discardedRules: Rule[];

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.Rule generated_rules = 7;
   */
  generatedRules: Rule[];

  /**
   * repeated Path extracted_paths = 6;
   * repeated Path adapted_paths = 7;
   *
   * @generated from field: repeated arg_services.cbr.v1beta.RuleCandidates rule_candidates = 6;
   */
  ruleCandidates: RuleCandidates[];
};

/**
 * @generated from message arg_services.cbr.v1beta.AdaptedCaseResponse
 */
export declare type AdaptedCaseResponseJson = {
  /**
   * @generated from field: arg_services.cbr.v1beta.AnnotatedGraph case = 1;
   */
  case?: AnnotatedGraphJson;

  /**
   * These are optional and used for further evaluation only
   *
   * @generated from field: repeated arg_services.cbr.v1beta.Concept extracted_concepts = 2;
   */
  extractedConcepts?: ConceptJson[];

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.Concept discarded_concepts = 3;
   */
  discardedConcepts?: ConceptJson[];

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.Rule applied_rules = 4;
   */
  appliedRules?: RuleJson[];

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.Rule discarded_rules = 5;
   */
  discardedRules?: RuleJson[];

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.Rule generated_rules = 7;
   */
  generatedRules?: RuleJson[];

  /**
   * repeated Path extracted_paths = 6;
   * repeated Path adapted_paths = 7;
   *
   * @generated from field: repeated arg_services.cbr.v1beta.RuleCandidates rule_candidates = 6;
   */
  ruleCandidates?: RuleCandidatesJson[];
};

/**
 * Describes the message arg_services.cbr.v1beta.AdaptedCaseResponse.
 * Use `create(AdaptedCaseResponseSchema)` to create a new message.
 */
export declare const AdaptedCaseResponseSchema: GenMessage<AdaptedCaseResponse, {jsonType: AdaptedCaseResponseJson}>;

/**
 * @generated from message arg_services.cbr.v1beta.Rule
 */
export declare type Rule = Message<"arg_services.cbr.v1beta.Rule"> & {
  /**
   * @generated from field: arg_services.cbr.v1beta.Concept source = 1;
   */
  source?: Concept;

  /**
   * @generated from field: arg_services.cbr.v1beta.Concept target = 2;
   */
  target?: Concept;
};

/**
 * @generated from message arg_services.cbr.v1beta.Rule
 */
export declare type RuleJson = {
  /**
   * @generated from field: arg_services.cbr.v1beta.Concept source = 1;
   */
  source?: ConceptJson;

  /**
   * @generated from field: arg_services.cbr.v1beta.Concept target = 2;
   */
  target?: ConceptJson;
};

/**
 * Describes the message arg_services.cbr.v1beta.Rule.
 * Use `create(RuleSchema)` to create a new message.
 */
export declare const RuleSchema: GenMessage<Rule, {jsonType: RuleJson}>;

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

  /**
   * @generated from field: arg_services.cbr.v1beta.Pos pos = 2;
   */
  pos: Pos;

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

/**
 * @generated from message arg_services.cbr.v1beta.Concept
 */
export declare type ConceptJson = {
  /**
   * @generated from field: string lemma = 1;
   */
  lemma?: string;

  /**
   * @generated from field: arg_services.cbr.v1beta.Pos pos = 2;
   */
  pos?: PosJson;

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

/**
 * Describes the message arg_services.cbr.v1beta.Concept.
 * Use `create(ConceptSchema)` to create a new message.
 */
export declare const ConceptSchema: GenMessage<Concept, {jsonType: ConceptJson}>;

/**
 * @generated from message arg_services.cbr.v1beta.RuleCandidates
 */
export declare type RuleCandidates = Message<"arg_services.cbr.v1beta.RuleCandidates"> & {
  /**
   * @generated from field: arg_services.cbr.v1beta.Concept source = 1;
   */
  source?: Concept;

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.Concept target = 2;
   */
  target: Concept[];
};

/**
 * @generated from message arg_services.cbr.v1beta.RuleCandidates
 */
export declare type RuleCandidatesJson = {
  /**
   * @generated from field: arg_services.cbr.v1beta.Concept source = 1;
   */
  source?: ConceptJson;

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.Concept target = 2;
   */
  target?: ConceptJson[];
};

/**
 * Describes the message arg_services.cbr.v1beta.RuleCandidates.
 * Use `create(RuleCandidatesSchema)` to create a new message.
 */
export declare const RuleCandidatesSchema: GenMessage<RuleCandidates, {jsonType: RuleCandidatesJson}>;

/**
 * @generated from enum arg_services.cbr.v1beta.Direction
 */
export enum Direction {
  /**
   * @generated from enum value: DIRECTION_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: DIRECTION_GENERALIZATION = 1;
   */
  GENERALIZATION = 1,

  /**
   * @generated from enum value: DIRECTION_SPECIALIZATION = 2;
   */
  SPECIALIZATION = 2,

  /**
   * @generated from enum value: DIRECTION_COMBINED = 3;
   */
  COMBINED = 3,
}

/**
 * @generated from enum arg_services.cbr.v1beta.Direction
 */
export declare type DirectionJson = "DIRECTION_UNSPECIFIED" | "DIRECTION_GENERALIZATION" | "DIRECTION_SPECIALIZATION" | "DIRECTION_COMBINED";

/**
 * Describes the enum arg_services.cbr.v1beta.Direction.
 */
export declare const DirectionSchema: GenEnum<Direction, DirectionJson>;

/**
 * @generated from enum arg_services.cbr.v1beta.Pos
 */
export enum Pos {
  /**
   * @generated from enum value: POS_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: POS_NOUN = 1;
   */
  NOUN = 1,

  /**
   * @generated from enum value: POS_VERB = 2;
   */
  VERB = 2,

  /**
   * @generated from enum value: POS_ADJECTIVE = 3;
   */
  ADJECTIVE = 3,

  /**
   * @generated from enum value: POS_ADVERB = 4;
   */
  ADVERB = 4,
}

/**
 * @generated from enum arg_services.cbr.v1beta.Pos
 */
export declare type PosJson = "POS_UNSPECIFIED" | "POS_NOUN" | "POS_VERB" | "POS_ADJECTIVE" | "POS_ADVERB";

/**
 * Describes the enum arg_services.cbr.v1beta.Pos.
 */
export declare const PosSchema: GenEnum<Pos, PosJson>;

/**
 * @generated from service arg_services.cbr.v1beta.AdaptationService
 */
export declare const AdaptationService: GenService<{
  /**
   * @generated from rpc arg_services.cbr.v1beta.AdaptationService.Adapt
   */
  adapt: {
    methodKind: "unary";
    input: typeof AdaptRequestSchema;
    output: typeof AdaptResponseSchema;
  },
}>;

