// @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/retrieval.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, CasebaseFilter, CasebaseFilterJson } from "./model_pb.js";
import type { NlpConfig, NlpConfigJson } from "../../nlp/v1/nlp_pb.js";
import type { StructJson } from "@bufbuild/protobuf/wkt";

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

/**
 * @generated from message arg_services.cbr.v1beta.RetrieveRequest
 */
export declare type RetrieveRequest = Message<"arg_services.cbr.v1beta.RetrieveRequest"> & {
  /**
   * @generated from field: arg_services.cbr.v1beta.CasebaseFilter casebase_filter = 1;
   */
  casebaseFilter?: CasebaseFilter;

  /**
   * @generated from field: map<string, arg_services.cbr.v1beta.AnnotatedGraph> cases = 2;
   */
  cases: { [key: string]: AnnotatedGraph };

  /**
   * @generated from field: map<string, arg_services.cbr.v1beta.AnnotatedGraph> queries = 3;
   */
  queries: { [key: string]: AnnotatedGraph };

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

  /**
   * @generated from field: int32 limit = 6;
   */
  limit: number;

  /**
   * @generated from field: bool semantic_retrieval = 7;
   */
  semanticRetrieval: boolean;

  /**
   * @generated from field: bool structural_retrieval = 8;
   */
  structuralRetrieval: boolean;

  /**
   * @generated from field: arg_services.cbr.v1beta.MappingAlgorithm mapping_algorithm = 9;
   */
  mappingAlgorithm: MappingAlgorithm;

  /**
   * @generated from field: int32 mapping_algorithm_variant = 10;
   */
  mappingAlgorithmVariant: number;

  /**
   * @generated from field: arg_services.cbr.v1beta.SchemeHandling scheme_handling = 11;
   */
  schemeHandling: SchemeHandling;

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

/**
 * @generated from message arg_services.cbr.v1beta.RetrieveRequest
 */
export declare type RetrieveRequestJson = {
  /**
   * @generated from field: arg_services.cbr.v1beta.CasebaseFilter casebase_filter = 1;
   */
  casebaseFilter?: CasebaseFilterJson;

  /**
   * @generated from field: map<string, arg_services.cbr.v1beta.AnnotatedGraph> cases = 2;
   */
  cases?: { [key: string]: AnnotatedGraphJson };

  /**
   * @generated from field: map<string, arg_services.cbr.v1beta.AnnotatedGraph> queries = 3;
   */
  queries?: { [key: string]: AnnotatedGraphJson };

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

  /**
   * @generated from field: int32 limit = 6;
   */
  limit?: number;

  /**
   * @generated from field: bool semantic_retrieval = 7;
   */
  semanticRetrieval?: boolean;

  /**
   * @generated from field: bool structural_retrieval = 8;
   */
  structuralRetrieval?: boolean;

  /**
   * @generated from field: arg_services.cbr.v1beta.MappingAlgorithm mapping_algorithm = 9;
   */
  mappingAlgorithm?: MappingAlgorithmJson;

  /**
   * @generated from field: int32 mapping_algorithm_variant = 10;
   */
  mappingAlgorithmVariant?: number;

  /**
   * @generated from field: arg_services.cbr.v1beta.SchemeHandling scheme_handling = 11;
   */
  schemeHandling?: SchemeHandlingJson;

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

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

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

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

/**
 * @generated from message arg_services.cbr.v1beta.RetrieveResponse
 */
export declare type RetrieveResponseJson = {
  /**
   * @generated from field: map<string, arg_services.cbr.v1beta.QueryResponse> query_responses = 1;
   */
  queryResponses?: { [key: string]: QueryResponseJson };

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

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

/**
 * @generated from message arg_services.cbr.v1beta.QueryResponse
 */
export declare type QueryResponse = Message<"arg_services.cbr.v1beta.QueryResponse"> & {
  /**
   * @generated from field: repeated arg_services.cbr.v1beta.RetrievedCase semantic_ranking = 1;
   */
  semanticRanking: RetrievedCase[];

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.RetrievedCase structural_ranking = 2;
   */
  structuralRanking: RetrievedCase[];

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.RetrievedMapping structural_mapping = 3;
   */
  structuralMapping: RetrievedMapping[];
};

/**
 * @generated from message arg_services.cbr.v1beta.QueryResponse
 */
export declare type QueryResponseJson = {
  /**
   * @generated from field: repeated arg_services.cbr.v1beta.RetrievedCase semantic_ranking = 1;
   */
  semanticRanking?: RetrievedCaseJson[];

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.RetrievedCase structural_ranking = 2;
   */
  structuralRanking?: RetrievedCaseJson[];

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.RetrievedMapping structural_mapping = 3;
   */
  structuralMapping?: RetrievedMappingJson[];
};

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

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

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

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

/**
 * @generated from message arg_services.cbr.v1beta.RetrievedCase
 */
export declare type RetrievedCaseJson = {
  /**
   * @generated from field: string id = 1;
   */
  id?: string;

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

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

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

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

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.MappedElement node_mappings = 2;
   */
  nodeMappings: MappedElement[];

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.MappedElement edge_mappings = 3;
   */
  edgeMappings: MappedElement[];
};

/**
 * @generated from message arg_services.cbr.v1beta.RetrievedMapping
 */
export declare type RetrievedMappingJson = {
  /**
   * @generated from field: string id = 1;
   */
  id?: string;

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.MappedElement node_mappings = 2;
   */
  nodeMappings?: MappedElementJson[];

  /**
   * @generated from field: repeated arg_services.cbr.v1beta.MappedElement edge_mappings = 3;
   */
  edgeMappings?: MappedElementJson[];
};

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

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

  /**
   * @generated from field: string case_id = 2;
   */
  caseId: string;

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

/**
 * @generated from message arg_services.cbr.v1beta.MappedElement
 */
export declare type MappedElementJson = {
  /**
   * @generated from field: string query_id = 1;
   */
  queryId?: string;

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

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

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

/**
 * @generated from message arg_services.cbr.v1beta.SimilaritiesRequest
 */
export declare type SimilaritiesRequest = Message<"arg_services.cbr.v1beta.SimilaritiesRequest"> & {
  /**
   * @generated from field: repeated arg_services.cbr.v1beta.AnnotatedGraph cases = 2;
   */
  cases: AnnotatedGraph[];

  /**
   * @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: bool structural = 7;
   */
  structural: boolean;

  /**
   * @generated from field: arg_services.cbr.v1beta.MappingAlgorithm mapping_algorithm = 9;
   */
  mappingAlgorithm: MappingAlgorithm;

  /**
   * @generated from field: int32 mapping_algorithm_variant = 10;
   */
  mappingAlgorithmVariant: number;

  /**
   * @generated from field: arg_services.cbr.v1beta.SchemeHandling scheme_handling = 11;
   */
  schemeHandling: SchemeHandling;

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

/**
 * @generated from message arg_services.cbr.v1beta.SimilaritiesRequest
 */
export declare type SimilaritiesRequestJson = {
  /**
   * @generated from field: repeated arg_services.cbr.v1beta.AnnotatedGraph cases = 2;
   */
  cases?: AnnotatedGraphJson[];

  /**
   * @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: bool structural = 7;
   */
  structural?: boolean;

  /**
   * @generated from field: arg_services.cbr.v1beta.MappingAlgorithm mapping_algorithm = 9;
   */
  mappingAlgorithm?: MappingAlgorithmJson;

  /**
   * @generated from field: int32 mapping_algorithm_variant = 10;
   */
  mappingAlgorithmVariant?: number;

  /**
   * @generated from field: arg_services.cbr.v1beta.SchemeHandling scheme_handling = 11;
   */
  schemeHandling?: SchemeHandlingJson;

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

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

/**
 * @generated from message arg_services.cbr.v1beta.SimilaritiesResponse
 */
export declare type SimilaritiesResponse = Message<"arg_services.cbr.v1beta.SimilaritiesResponse"> & {
  /**
   * @generated from field: repeated arg_services.cbr.v1beta.SimilarityResponse similarities = 1;
   */
  similarities: SimilarityResponse[];

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

/**
 * @generated from message arg_services.cbr.v1beta.SimilaritiesResponse
 */
export declare type SimilaritiesResponseJson = {
  /**
   * @generated from field: repeated arg_services.cbr.v1beta.SimilarityResponse similarities = 1;
   */
  similarities?: SimilarityResponseJson[];

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

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

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

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

/**
 * @generated from message arg_services.cbr.v1beta.SimilarityResponse
 */
export declare type SimilarityResponseJson = {
  /**
   * @generated from field: double similarity = 1;
   */
  similarity?: number | "NaN" | "Infinity" | "-Infinity";

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

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

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

  /**
   * @generated from enum value: MAPPING_ALGORITHM_BRUTE_FORCE = 1;
   */
  BRUTE_FORCE = 1,

  /**
   * @generated from enum value: MAPPING_ALGORITHM_ASTAR = 2;
   */
  ASTAR = 2,

  /**
   * @generated from enum value: MAPPING_ALGORITHM_GREEDY = 3;
   */
  GREEDY = 3,

  /**
   * @generated from enum value: MAPPING_ALGORITHM_VF2 = 4;
   */
  VF2 = 4,

  /**
   * @generated from enum value: MAPPING_ALGORITHM_LSAP = 5;
   */
  LSAP = 5,

  /**
   * @generated from enum value: MAPPING_ALGORITHM_DFS = 6;
   */
  DFS = 6,
}

/**
 * @generated from enum arg_services.cbr.v1beta.MappingAlgorithm
 */
export declare type MappingAlgorithmJson = "MAPPING_ALGORITHM_UNSPECIFIED" | "MAPPING_ALGORITHM_BRUTE_FORCE" | "MAPPING_ALGORITHM_ASTAR" | "MAPPING_ALGORITHM_GREEDY" | "MAPPING_ALGORITHM_VF2" | "MAPPING_ALGORITHM_LSAP" | "MAPPING_ALGORITHM_DFS";

/**
 * Describes the enum arg_services.cbr.v1beta.MappingAlgorithm.
 */
export declare const MappingAlgorithmSchema: GenEnum<MappingAlgorithm, MappingAlgorithmJson>;

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

  /**
   * @generated from enum value: SCHEME_HANDLING_BINARY = 1;
   */
  BINARY = 1,

  /**
   * @generated from enum value: SCHEME_HANDLING_TAXONOMY = 2;
   */
  TAXONOMY = 2,

  /**
   * @generated from enum value: SCHEME_HANDLING_EXACT = 3;
   */
  EXACT = 3,
}

/**
 * @generated from enum arg_services.cbr.v1beta.SchemeHandling
 */
export declare type SchemeHandlingJson = "SCHEME_HANDLING_UNSPECIFIED" | "SCHEME_HANDLING_BINARY" | "SCHEME_HANDLING_TAXONOMY" | "SCHEME_HANDLING_EXACT";

/**
 * Describes the enum arg_services.cbr.v1beta.SchemeHandling.
 */
export declare const SchemeHandlingSchema: GenEnum<SchemeHandling, SchemeHandlingJson>;

/**
 * @generated from service arg_services.cbr.v1beta.RetrievalService
 */
export declare const RetrievalService: GenService<{
  /**
   * @generated from rpc arg_services.cbr.v1beta.RetrievalService.Retrieve
   */
  retrieve: {
    methodKind: "unary";
    input: typeof RetrieveRequestSchema;
    output: typeof RetrieveResponseSchema;
  },
  /**
   * @generated from rpc arg_services.cbr.v1beta.RetrievalService.Similarities
   */
  similarities: {
    methodKind: "unary";
    input: typeof SimilaritiesRequestSchema;
    output: typeof SimilaritiesResponseSchema;
  },
}>;

