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

// Definition of the `Arguebuf` format for storing structured argument graphs.

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

/**
 * Describes the file arg_services/graph/v1/graph.proto.
 */
export declare const file_arg_services_graph_v1_graph: GenFile;

/**
 * Main message to store the argument graph.
 * Each attribute having of type `map<string, X>` is a dictionary where a unique ID points to a message.
 * The ID does not follow a specific format, but we reccomend to use UUIDv1 everywhere.
 * An alternative could be to use a counter for each attribute, but this is error prone and not recommended.
 * The ID should be treated the same way as a primary key in a database and may be referenced in other places of the argument.
 * For instance, edges only store the IDs of connected nodes.
 *
 * @generated from message arg_services.graph.v1.Graph
 */
export declare type Graph = Message<"arg_services.graph.v1.Graph"> & {
  /**
   * Dictionary of atom/scheme nodes.
   *
   * @generated from field: map<string, arg_services.graph.v1.Node> nodes = 1;
   */
  nodes: { [key: string]: Node };

  /**
   * Dictionary of edges connecting nodes.
   *
   * @generated from field: map<string, arg_services.graph.v1.Edge> edges = 2;
   */
  edges: { [key: string]: Edge };

  /**
   * Dictionary of resources (i.e., source texts) of the argument such as newspaper articles.
   *
   * @generated from field: map<string, arg_services.graph.v1.Resource> resources = 3;
   */
  resources: { [key: string]: Resource };

  /**
   * Dictionary of participants (i.e., persons, users) that created the original argument.
   *
   * @generated from field: map<string, arg_services.graph.v1.Participant> participants = 4;
   */
  participants: { [key: string]: Participant };

  /**
   * Dictionary of analysts/annotators that created the graph-based representation of the original argument.
   *
   * @generated from field: map<string, arg_services.graph.v1.Analyst> analysts = 5;
   */
  analysts: { [key: string]: Analyst };

  /**
   * ID of the atom node being the major claim of the graph.
   *
   * @generated from field: optional string major_claim = 6;
   */
  majorClaim?: string;

  /**
   * Version of the protobuf schema. Should be always `1`.
   *
   * @generated from field: uint32 schema_version = 7;
   */
  schemaVersion: number;

  /**
   * Library used for serializing the graph.
   * Should be unique accross programming languages (e.g., `arguebuf-python:1.2.0`).
   *
   * @generated from field: string library_version = 8;
   */
  libraryVersion: string;

  /**
   * Store programmatic data like creation times.
   *
   * @generated from field: arg_services.graph.v1.Metadata metadata = 14;
   */
  metadata?: Metadata;

  /**
   * Store arbitrary data as needed by a user.
   * May contain all valid JSON values.
   *
   * @generated from field: google.protobuf.Struct userdata = 15;
   */
  userdata?: JsonObject;
};

/**
 * Main message to store the argument graph.
 * Each attribute having of type `map<string, X>` is a dictionary where a unique ID points to a message.
 * The ID does not follow a specific format, but we reccomend to use UUIDv1 everywhere.
 * An alternative could be to use a counter for each attribute, but this is error prone and not recommended.
 * The ID should be treated the same way as a primary key in a database and may be referenced in other places of the argument.
 * For instance, edges only store the IDs of connected nodes.
 *
 * @generated from message arg_services.graph.v1.Graph
 */
export declare type GraphJson = {
  /**
   * Dictionary of atom/scheme nodes.
   *
   * @generated from field: map<string, arg_services.graph.v1.Node> nodes = 1;
   */
  nodes?: { [key: string]: NodeJson };

  /**
   * Dictionary of edges connecting nodes.
   *
   * @generated from field: map<string, arg_services.graph.v1.Edge> edges = 2;
   */
  edges?: { [key: string]: EdgeJson };

  /**
   * Dictionary of resources (i.e., source texts) of the argument such as newspaper articles.
   *
   * @generated from field: map<string, arg_services.graph.v1.Resource> resources = 3;
   */
  resources?: { [key: string]: ResourceJson };

  /**
   * Dictionary of participants (i.e., persons, users) that created the original argument.
   *
   * @generated from field: map<string, arg_services.graph.v1.Participant> participants = 4;
   */
  participants?: { [key: string]: ParticipantJson };

  /**
   * Dictionary of analysts/annotators that created the graph-based representation of the original argument.
   *
   * @generated from field: map<string, arg_services.graph.v1.Analyst> analysts = 5;
   */
  analysts?: { [key: string]: AnalystJson };

  /**
   * ID of the atom node being the major claim of the graph.
   *
   * @generated from field: optional string major_claim = 6;
   */
  majorClaim?: string;

  /**
   * Version of the protobuf schema. Should be always `1`.
   *
   * @generated from field: uint32 schema_version = 7;
   */
  schemaVersion?: number;

  /**
   * Library used for serializing the graph.
   * Should be unique accross programming languages (e.g., `arguebuf-python:1.2.0`).
   *
   * @generated from field: string library_version = 8;
   */
  libraryVersion?: string;

  /**
   * Store programmatic data like creation times.
   *
   * @generated from field: arg_services.graph.v1.Metadata metadata = 14;
   */
  metadata?: MetadataJson;

  /**
   * Store arbitrary data as needed by a user.
   * May contain all valid JSON values.
   *
   * @generated from field: google.protobuf.Struct userdata = 15;
   */
  userdata?: StructJson;
};

/**
 * Describes the message arg_services.graph.v1.Graph.
 * Use `create(GraphSchema)` to create a new message.
 */
export declare const GraphSchema: GenMessage<Graph, {jsonType: GraphJson}>;

/**
 * Store metadata like created/update timestamps.
 * It is used as an attribute type by most other messages.
 * These attribute should NOT be modified by users directly!
 *
 * @generated from message arg_services.graph.v1.Metadata
 */
export declare type Metadata = Message<"arg_services.graph.v1.Metadata"> & {
  /**
   * Creation time of the element.
   *
   * @generated from field: google.protobuf.Timestamp created = 1;
   */
  created?: Timestamp;

  /**
   * Update time of the element
   *
   * @generated from field: google.protobuf.Timestamp updated = 2;
   */
  updated?: Timestamp;
};

/**
 * Store metadata like created/update timestamps.
 * It is used as an attribute type by most other messages.
 * These attribute should NOT be modified by users directly!
 *
 * @generated from message arg_services.graph.v1.Metadata
 */
export declare type MetadataJson = {
  /**
   * Creation time of the element.
   *
   * @generated from field: google.protobuf.Timestamp created = 1;
   */
  created?: TimestampJson;

  /**
   * Update time of the element
   *
   * @generated from field: google.protobuf.Timestamp updated = 2;
   */
  updated?: TimestampJson;
};

/**
 * Describes the message arg_services.graph.v1.Metadata.
 * Use `create(MetadataSchema)` to create a new message.
 */
export declare const MetadataSchema: GenMessage<Metadata, {jsonType: MetadataJson}>;

/**
 * A resource is the original source of an argument.
 * Examples include newspaper articles, protocols, and essays.
 * These may be linked to atom nodes via their `reference` attribute.
 *
 * @generated from message arg_services.graph.v1.Resource
 */
export declare type Resource = Message<"arg_services.graph.v1.Resource"> & {
  /**
   * Plain-text content of the original argument.
   *
   * @generated from field: string text = 1;
   */
  text: string;

  /**
   * Title (if available) of the source.
   *
   * @generated from field: optional string title = 2;
   */
  title?: string;

  /**
   * URL or other unique attribute to find/identify the resource
   *
   * @generated from field: optional string source = 3;
   */
  source?: string;

  /**
   * Creation time of the resource.
   *
   * @generated from field: google.protobuf.Timestamp timestamp = 4;
   */
  timestamp?: Timestamp;

  /**
   * Store programmatic data like creation times.
   *
   * @generated from field: arg_services.graph.v1.Metadata metadata = 14;
   */
  metadata?: Metadata;

  /**
   * Store arbitrary data as needed by a user.
   * May contain all valid JSON values.
   *
   * @generated from field: google.protobuf.Struct userdata = 15;
   */
  userdata?: JsonObject;
};

/**
 * A resource is the original source of an argument.
 * Examples include newspaper articles, protocols, and essays.
 * These may be linked to atom nodes via their `reference` attribute.
 *
 * @generated from message arg_services.graph.v1.Resource
 */
export declare type ResourceJson = {
  /**
   * Plain-text content of the original argument.
   *
   * @generated from field: string text = 1;
   */
  text?: string;

  /**
   * Title (if available) of the source.
   *
   * @generated from field: optional string title = 2;
   */
  title?: string;

  /**
   * URL or other unique attribute to find/identify the resource
   *
   * @generated from field: optional string source = 3;
   */
  source?: string;

  /**
   * Creation time of the resource.
   *
   * @generated from field: google.protobuf.Timestamp timestamp = 4;
   */
  timestamp?: TimestampJson;

  /**
   * Store programmatic data like creation times.
   *
   * @generated from field: arg_services.graph.v1.Metadata metadata = 14;
   */
  metadata?: MetadataJson;

  /**
   * Store arbitrary data as needed by a user.
   * May contain all valid JSON values.
   *
   * @generated from field: google.protobuf.Struct userdata = 15;
   */
  userdata?: StructJson;
};

/**
 * Describes the message arg_services.graph.v1.Resource.
 * Use `create(ResourceSchema)` to create a new message.
 */
export declare const ResourceSchema: GenMessage<Resource, {jsonType: ResourceJson}>;

/**
 * A participant is a person/user that contributed to the original argument (e.g., an expert providing a statement).
 *
 * @generated from message arg_services.graph.v1.Participant
 */
export declare type Participant = Message<"arg_services.graph.v1.Participant"> & {
  /**
   * Full name.
   *
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * Optional: username.
   *
   * @generated from field: optional string username = 2;
   */
  username?: string;

  /**
   * Optional: email address.
   *
   * @generated from field: optional string email = 3;
   */
  email?: string;

  /**
   * Optional: link to relevant website.
   *
   * @generated from field: optional string url = 4;
   */
  url?: string;

  /**
   * Optional: relevant place.
   *
   * @generated from field: optional string location = 5;
   */
  location?: string;

  /**
   * Optional: description (e.g., role of a person).
   *
   * @generated from field: optional string description = 6;
   */
  description?: string;

  /**
   * Store programmatic data like creation times.
   *
   * @generated from field: arg_services.graph.v1.Metadata metadata = 14;
   */
  metadata?: Metadata;

  /**
   * Store arbitrary data as needed by a user.
   * May contain all valid JSON values.
   *
   * @generated from field: google.protobuf.Struct userdata = 15;
   */
  userdata?: JsonObject;
};

/**
 * A participant is a person/user that contributed to the original argument (e.g., an expert providing a statement).
 *
 * @generated from message arg_services.graph.v1.Participant
 */
export declare type ParticipantJson = {
  /**
   * Full name.
   *
   * @generated from field: string name = 1;
   */
  name?: string;

  /**
   * Optional: username.
   *
   * @generated from field: optional string username = 2;
   */
  username?: string;

  /**
   * Optional: email address.
   *
   * @generated from field: optional string email = 3;
   */
  email?: string;

  /**
   * Optional: link to relevant website.
   *
   * @generated from field: optional string url = 4;
   */
  url?: string;

  /**
   * Optional: relevant place.
   *
   * @generated from field: optional string location = 5;
   */
  location?: string;

  /**
   * Optional: description (e.g., role of a person).
   *
   * @generated from field: optional string description = 6;
   */
  description?: string;

  /**
   * Store programmatic data like creation times.
   *
   * @generated from field: arg_services.graph.v1.Metadata metadata = 14;
   */
  metadata?: MetadataJson;

  /**
   * Store arbitrary data as needed by a user.
   * May contain all valid JSON values.
   *
   * @generated from field: google.protobuf.Struct userdata = 15;
   */
  userdata?: StructJson;
};

/**
 * Describes the message arg_services.graph.v1.Participant.
 * Use `create(ParticipantSchema)` to create a new message.
 */
export declare const ParticipantSchema: GenMessage<Participant, {jsonType: ParticipantJson}>;

/**
 * Analysts are the persons that transform the textual argument to an argument graph.
 * They are also known as annotators.
 *
 * @generated from message arg_services.graph.v1.Analyst
 */
export declare type Analyst = Message<"arg_services.graph.v1.Analyst"> & {
  /**
   * Full name.
   *
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * Optional: email address.
   *
   * @generated from field: optional string email = 2;
   */
  email?: string;

  /**
   * Store arbitrary data as needed by a user.
   * May contain all valid JSON values.
   *
   * @generated from field: google.protobuf.Struct userdata = 15;
   */
  userdata?: JsonObject;
};

/**
 * Analysts are the persons that transform the textual argument to an argument graph.
 * They are also known as annotators.
 *
 * @generated from message arg_services.graph.v1.Analyst
 */
export declare type AnalystJson = {
  /**
   * Full name.
   *
   * @generated from field: string name = 1;
   */
  name?: string;

  /**
   * Optional: email address.
   *
   * @generated from field: optional string email = 2;
   */
  email?: string;

  /**
   * Store arbitrary data as needed by a user.
   * May contain all valid JSON values.
   *
   * @generated from field: google.protobuf.Struct userdata = 15;
   */
  userdata?: StructJson;
};

/**
 * Describes the message arg_services.graph.v1.Analyst.
 * Use `create(AnalystSchema)` to create a new message.
 */
export declare const AnalystSchema: GenMessage<Analyst, {jsonType: AnalystJson}>;

/**
 * An edge serves as a connection between two nodes.
 *
 * @generated from message arg_services.graph.v1.Edge
 */
export declare type Edge = Message<"arg_services.graph.v1.Edge"> & {
  /**
   * ID of the source node.
   *
   * @generated from field: string source = 1;
   */
  source: string;

  /**
   * ID of the target node.
   *
   * @generated from field: string target = 2;
   */
  target: string;

  /**
   * Store programmatic data like creation times.
   *
   * @generated from field: arg_services.graph.v1.Metadata metadata = 14;
   */
  metadata?: Metadata;

  /**
   * Store arbitrary data as needed by a user.
   * May contain all valid JSON values.
   *
   * @generated from field: google.protobuf.Struct userdata = 15;
   */
  userdata?: JsonObject;
};

/**
 * An edge serves as a connection between two nodes.
 *
 * @generated from message arg_services.graph.v1.Edge
 */
export declare type EdgeJson = {
  /**
   * ID of the source node.
   *
   * @generated from field: string source = 1;
   */
  source?: string;

  /**
   * ID of the target node.
   *
   * @generated from field: string target = 2;
   */
  target?: string;

  /**
   * Store programmatic data like creation times.
   *
   * @generated from field: arg_services.graph.v1.Metadata metadata = 14;
   */
  metadata?: MetadataJson;

  /**
   * Store arbitrary data as needed by a user.
   * May contain all valid JSON values.
   *
   * @generated from field: google.protobuf.Struct userdata = 15;
   */
  userdata?: StructJson;
};

/**
 * Describes the message arg_services.graph.v1.Edge.
 * Use `create(EdgeSchema)` to create a new message.
 */
export declare const EdgeSchema: GenMessage<Edge, {jsonType: EdgeJson}>;

/**
 * A node contains the semantic information of the argument.
 *
 * @generated from message arg_services.graph.v1.Node
 */
export declare type Node = Message<"arg_services.graph.v1.Node"> & {
  /**
   * Nodes may either be atoms or schemes.
   * A description of each type may be found in the respective messages.
   *
   * @generated from oneof arg_services.graph.v1.Node.type
   */
  type: {
    /**
     * @generated from field: arg_services.graph.v1.Atom atom = 1;
     */
    value: Atom;
    case: "atom";
  } | {
    /**
     * @generated from field: arg_services.graph.v1.Scheme scheme = 2;
     */
    value: Scheme;
    case: "scheme";
  } | { case: undefined; value?: undefined };

  /**
   * Store programmatic data like creation times.
   *
   * @generated from field: arg_services.graph.v1.Metadata metadata = 14;
   */
  metadata?: Metadata;

  /**
   * Store arbitrary data as needed by a user.
   * May contain all valid JSON values.
   *
   * @generated from field: google.protobuf.Struct userdata = 15;
   */
  userdata?: JsonObject;
};

/**
 * A node contains the semantic information of the argument.
 *
 * @generated from message arg_services.graph.v1.Node
 */
export declare type NodeJson = {
  /**
   * @generated from field: arg_services.graph.v1.Atom atom = 1;
   */
  atom?: AtomJson;

  /**
   * @generated from field: arg_services.graph.v1.Scheme scheme = 2;
   */
  scheme?: SchemeJson;

  /**
   * Store programmatic data like creation times.
   *
   * @generated from field: arg_services.graph.v1.Metadata metadata = 14;
   */
  metadata?: MetadataJson;

  /**
   * Store arbitrary data as needed by a user.
   * May contain all valid JSON values.
   *
   * @generated from field: google.protobuf.Struct userdata = 15;
   */
  userdata?: StructJson;
};

/**
 * Describes the message arg_services.graph.v1.Node.
 * Use `create(NodeSchema)` to create a new message.
 */
export declare const NodeSchema: GenMessage<Node, {jsonType: NodeJson}>;

/**
 * Atom nodes contain textual information and as such parts of the original resource.
 * Atoms are also known as `ADUs` or claims/premises in the argumentation domain.
 *
 * @generated from message arg_services.graph.v1.Atom
 */
export declare type Atom = Message<"arg_services.graph.v1.Atom"> & {
  /**
   * Textual content of the argumentative discourse unit (ADU).
   *
   * @generated from field: string text = 1;
   */
  text: string;

  /**
   * Optional: Reference to the related resource.
   *
   * @generated from field: arg_services.graph.v1.Reference reference = 2;
   */
  reference?: Reference;

  /**
   * Optional: ID of the related participant.
   *
   * @generated from field: optional string participant = 3;
   */
  participant?: string;
};

/**
 * Atom nodes contain textual information and as such parts of the original resource.
 * Atoms are also known as `ADUs` or claims/premises in the argumentation domain.
 *
 * @generated from message arg_services.graph.v1.Atom
 */
export declare type AtomJson = {
  /**
   * Textual content of the argumentative discourse unit (ADU).
   *
   * @generated from field: string text = 1;
   */
  text?: string;

  /**
   * Optional: Reference to the related resource.
   *
   * @generated from field: arg_services.graph.v1.Reference reference = 2;
   */
  reference?: ReferenceJson;

  /**
   * Optional: ID of the related participant.
   *
   * @generated from field: optional string participant = 3;
   */
  participant?: string;
};

/**
 * Describes the message arg_services.graph.v1.Atom.
 * Use `create(AtomSchema)` to create a new message.
 */
export declare const AtomSchema: GenMessage<Atom, {jsonType: AtomJson}>;

/**
 * References are used to store links between atom nodes and resources.
 *
 * @generated from message arg_services.graph.v1.Reference
 */
export declare type Reference = Message<"arg_services.graph.v1.Reference"> & {
  /**
   * Optional: ID of the related resouce.
   *
   * @generated from field: optional string resource = 1;
   */
  resource?: string;

  /**
   * Optional: Starting point of the atom's text within the resource's text.
   *
   * @generated from field: optional uint32 offset = 2;
   */
  offset?: number;

  /**
   * Original text of the related resource used for the atom.
   *
   * @generated from field: string text = 3;
   */
  text: string;
};

/**
 * References are used to store links between atom nodes and resources.
 *
 * @generated from message arg_services.graph.v1.Reference
 */
export declare type ReferenceJson = {
  /**
   * Optional: ID of the related resouce.
   *
   * @generated from field: optional string resource = 1;
   */
  resource?: string;

  /**
   * Optional: Starting point of the atom's text within the resource's text.
   *
   * @generated from field: optional uint32 offset = 2;
   */
  offset?: number;

  /**
   * Original text of the related resource used for the atom.
   *
   * @generated from field: string text = 3;
   */
  text?: string;
};

/**
 * Describes the message arg_services.graph.v1.Reference.
 * Use `create(ReferenceSchema)` to create a new message.
 */
export declare const ReferenceSchema: GenMessage<Reference, {jsonType: ReferenceJson}>;

/**
 * Scheme nodes encode the relations between other nodes.
 *
 * @generated from message arg_services.graph.v1.Scheme
 */
export declare type Scheme = Message<"arg_services.graph.v1.Scheme"> & {
  /**
   * A scheme has to be of a specific type. If not set, the inference between atoms is unknown.
   *
   * @generated from oneof arg_services.graph.v1.Scheme.type
   */
  type: {
    /**
     * @generated from field: arg_services.graph.v1.Support support = 1;
     */
    value: Support;
    case: "support";
  } | {
    /**
     * @generated from field: arg_services.graph.v1.Attack attack = 2;
     */
    value: Attack;
    case: "attack";
  } | {
    /**
     * @generated from field: arg_services.graph.v1.Preference preference = 3;
     */
    value: Preference;
    case: "preference";
  } | {
    /**
     * @generated from field: arg_services.graph.v1.Rephrase rephrase = 4;
     */
    value: Rephrase;
    case: "rephrase";
  } | { case: undefined; value?: undefined };

  /**
   * List of atom ID's to assign the connected premises to their role in the argumentation scheme.
   * Please note: The order of the ID's is important here and should correspond the one found in the underlying literature used for a specific project.
   *
   * @generated from field: repeated string premise_descriptors = 15;
   */
  premiseDescriptors: string[];
};

/**
 * Scheme nodes encode the relations between other nodes.
 *
 * @generated from message arg_services.graph.v1.Scheme
 */
export declare type SchemeJson = {
  /**
   * @generated from field: arg_services.graph.v1.Support support = 1;
   */
  support?: SupportJson;

  /**
   * @generated from field: arg_services.graph.v1.Attack attack = 2;
   */
  attack?: AttackJson;

  /**
   * @generated from field: arg_services.graph.v1.Preference preference = 3;
   */
  preference?: PreferenceJson;

  /**
   * @generated from field: arg_services.graph.v1.Rephrase rephrase = 4;
   */
  rephrase?: RephraseJson;

  /**
   * List of atom ID's to assign the connected premises to their role in the argumentation scheme.
   * Please note: The order of the ID's is important here and should correspond the one found in the underlying literature used for a specific project.
   *
   * @generated from field: repeated string premise_descriptors = 15;
   */
  premiseDescriptors?: string[];
};

/**
 * Describes the message arg_services.graph.v1.Scheme.
 * Use `create(SchemeSchema)` to create a new message.
 */
export declare const SchemeSchema: GenMessage<Scheme, {jsonType: SchemeJson}>;

/**
 * Argumentation schemes for type support.
 * Source: Walton, Douglas, Christopher Reed, and Fabrizio Macagno. 2008. Argumentation Schemes. Cambridge University Press.
 * buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX
 *
 * @generated from enum arg_services.graph.v1.Support
 */
export enum Support {
  /**
   * @generated from enum value: SUPPORT_DEFAULT = 0;
   */
  DEFAULT = 0,

  /**
   * @generated from enum value: SUPPORT_POSITION_TO_KNOW = 1;
   */
  POSITION_TO_KNOW = 1,

  /**
   * @generated from enum value: SUPPORT_EXPERT_OPINION = 2;
   */
  EXPERT_OPINION = 2,

  /**
   * @generated from enum value: SUPPORT_WITNESS_TESTIMONY = 3;
   */
  WITNESS_TESTIMONY = 3,

  /**
   * @generated from enum value: SUPPORT_POPULAR_OPINION = 4;
   */
  POPULAR_OPINION = 4,

  /**
   * @generated from enum value: SUPPORT_POPULAR_PRACTICE = 5;
   */
  POPULAR_PRACTICE = 5,

  /**
   * @generated from enum value: SUPPORT_EXAMPLE = 6;
   */
  EXAMPLE = 6,

  /**
   * @generated from enum value: SUPPORT_ANALOGY = 7;
   */
  ANALOGY = 7,

  /**
   * @generated from enum value: SUPPORT_PRACTICAL_REASONING_FROM_ANALOGY = 8;
   */
  PRACTICAL_REASONING_FROM_ANALOGY = 8,

  /**
   * @generated from enum value: SUPPORT_COMPOSITION = 9;
   */
  COMPOSITION = 9,

  /**
   * @generated from enum value: SUPPORT_DIVISION = 10;
   */
  DIVISION = 10,

  /**
   * @generated from enum value: SUPPORT_OPPOSITIONS = 11;
   */
  OPPOSITIONS = 11,

  /**
   * @generated from enum value: SUPPORT_RHETORICAL_OPPOSITIONS = 12;
   */
  RHETORICAL_OPPOSITIONS = 12,

  /**
   * @generated from enum value: SUPPORT_ALTERNATIVES = 13;
   */
  ALTERNATIVES = 13,

  /**
   * @generated from enum value: SUPPORT_VERBAL_CLASSIFICATION = 14;
   */
  VERBAL_CLASSIFICATION = 14,

  /**
   * @generated from enum value: SUPPORT_VERBAL_CLASSIFICATION_DEFINITION = 15;
   */
  VERBAL_CLASSIFICATION_DEFINITION = 15,

  /**
   * @generated from enum value: SUPPORT_VERBAL_CLASSIFICATION_VAGUENESS = 16;
   */
  VERBAL_CLASSIFICATION_VAGUENESS = 16,

  /**
   * @generated from enum value: SUPPORT_VERBAL_CLASSIFICATION_ARBITRARINESS = 17;
   */
  VERBAL_CLASSIFICATION_ARBITRARINESS = 17,

  /**
   * @generated from enum value: SUPPORT_INTERACTION_OF_ACT_AND_PERSON = 18;
   */
  INTERACTION_OF_ACT_AND_PERSON = 18,

  /**
   * @generated from enum value: SUPPORT_VALUES = 19;
   */
  VALUES = 19,

  /**
   * @generated from enum value: SUPPORT_POSITIVE_VALUES = 61;
   */
  POSITIVE_VALUES = 61,

  /**
   * @generated from enum value: SUPPORT_NEGATIVE_VALUES = 62;
   */
  NEGATIVE_VALUES = 62,

  /**
   * @generated from enum value: SUPPORT_SACRIFICE = 20;
   */
  SACRIFICE = 20,

  /**
   * @generated from enum value: SUPPORT_THE_GROUP_AND_ITS_MEMBERS = 21;
   */
  THE_GROUP_AND_ITS_MEMBERS = 21,

  /**
   * @generated from enum value: SUPPORT_PRACTICAL_REASONING = 22;
   */
  PRACTICAL_REASONING = 22,

  /**
   * @generated from enum value: SUPPORT_TWO_PERSON_PRACTICAL_REASONING = 23;
   */
  TWO_PERSON_PRACTICAL_REASONING = 23,

  /**
   * @generated from enum value: SUPPORT_WASTE = 24;
   */
  WASTE = 24,

  /**
   * @generated from enum value: SUPPORT_SUNK_COSTS = 25;
   */
  SUNK_COSTS = 25,

  /**
   * @generated from enum value: SUPPORT_IGNORANCE = 26;
   */
  IGNORANCE = 26,

  /**
   * @generated from enum value: SUPPORT_EPISTEMIC_IGNORANCE = 27;
   */
  EPISTEMIC_IGNORANCE = 27,

  /**
   * @generated from enum value: SUPPORT_CAUSE_TO_EFFECT = 28;
   */
  CAUSE_TO_EFFECT = 28,

  /**
   * @generated from enum value: SUPPORT_CORRELATION_TO_CAUSE = 29;
   */
  CORRELATION_TO_CAUSE = 29,

  /**
   * @generated from enum value: SUPPORT_SIGN = 30;
   */
  SIGN = 30,

  /**
   * @generated from enum value: SUPPORT_ABDUCTIVE = 31;
   */
  ABDUCTIVE = 31,

  /**
   * @generated from enum value: SUPPORT_EVIDENCE_TO_HYPOTHESIS = 32;
   */
  EVIDENCE_TO_HYPOTHESIS = 32,

  /**
   * @generated from enum value: SUPPORT_CONSEQUENCES = 33;
   */
  CONSEQUENCES = 33,

  /**
   * @generated from enum value: SUPPORT_POSITIVE_CONSEQUENCES = 63;
   */
  POSITIVE_CONSEQUENCES = 63,

  /**
   * @generated from enum value: SUPPORT_NEGATIVE_CONSEQUENCES = 64;
   */
  NEGATIVE_CONSEQUENCES = 64,

  /**
   * @generated from enum value: SUPPORT_PRAGMATIC_ALTERNATIVES = 34;
   */
  PRAGMATIC_ALTERNATIVES = 34,

  /**
   * @generated from enum value: SUPPORT_THREAT = 35;
   */
  THREAT = 35,

  /**
   * @generated from enum value: SUPPORT_FEAR_APPEAL = 36;
   */
  FEAR_APPEAL = 36,

  /**
   * @generated from enum value: SUPPORT_DANGER_APPEAL = 37;
   */
  DANGER_APPEAL = 37,

  /**
   * @generated from enum value: SUPPORT_NEED_FOR_HELP = 38;
   */
  NEED_FOR_HELP = 38,

  /**
   * @generated from enum value: SUPPORT_DISTRESS = 39;
   */
  DISTRESS = 39,

  /**
   * @generated from enum value: SUPPORT_COMMITMENT = 40;
   */
  COMMITMENT = 40,

  /**
   * @generated from enum value: SUPPORT_ETHOTIC = 41;
   */
  ETHOTIC = 41,

  /**
   * @generated from enum value: SUPPORT_GENERIC_AD_HOMINEM = 42;
   */
  GENERIC_AD_HOMINEM = 42,

  /**
   * @generated from enum value: SUPPORT_PRAGMATIC_INCONSISTENCY = 43;
   */
  PRAGMATIC_INCONSISTENCY = 43,

  /**
   * @generated from enum value: SUPPORT_INCONSISTENT_COMMITMENT = 44;
   */
  INCONSISTENT_COMMITMENT = 44,

  /**
   * @generated from enum value: SUPPORT_CIRCUMSTANTIAL_AD_HOMINEM = 45;
   */
  CIRCUMSTANTIAL_AD_HOMINEM = 45,

  /**
   * @generated from enum value: SUPPORT_BIAS = 46;
   */
  BIAS = 46,

  /**
   * @generated from enum value: SUPPORT_BIAS_AD_HOMINEM = 47;
   */
  BIAS_AD_HOMINEM = 47,

  /**
   * @generated from enum value: SUPPORT_GRADUALISM = 48;
   */
  GRADUALISM = 48,

  /**
   * @generated from enum value: SUPPORT_SLIPPERY_SLOPE = 49;
   */
  SLIPPERY_SLOPE = 49,

  /**
   * @generated from enum value: SUPPORT_PRECEDENT_SLIPPERY_SLOPE = 50;
   */
  PRECEDENT_SLIPPERY_SLOPE = 50,

  /**
   * @generated from enum value: SUPPORT_SORITES_SLIPPERY_SLOPE = 51;
   */
  SORITES_SLIPPERY_SLOPE = 51,

  /**
   * @generated from enum value: SUPPORT_VERBAL_SLIPPERY_SLOPE = 52;
   */
  VERBAL_SLIPPERY_SLOPE = 52,

  /**
   * @generated from enum value: SUPPORT_FULL_SLIPPERY_SLOPE = 53;
   */
  FULL_SLIPPERY_SLOPE = 53,

  /**
   * @generated from enum value: SUPPORT_CONSTITUTIVE_RULE_CLAIMS = 54;
   */
  CONSTITUTIVE_RULE_CLAIMS = 54,

  /**
   * @generated from enum value: SUPPORT_RULES = 55;
   */
  RULES = 55,

  /**
   * @generated from enum value: SUPPORT_EXCEPTIONAL_CASE = 56;
   */
  EXCEPTIONAL_CASE = 56,

  /**
   * @generated from enum value: SUPPORT_PRECEDENT = 57;
   */
  PRECEDENT = 57,

  /**
   * @generated from enum value: SUPPORT_PLEA_FOR_EXCUSE = 58;
   */
  PLEA_FOR_EXCUSE = 58,

  /**
   * @generated from enum value: SUPPORT_PERCEPTION = 59;
   */
  PERCEPTION = 59,

  /**
   * @generated from enum value: SUPPORT_MEMORY = 60;
   */
  MEMORY = 60,
}

/**
 * Argumentation schemes for type support.
 * Source: Walton, Douglas, Christopher Reed, and Fabrizio Macagno. 2008. Argumentation Schemes. Cambridge University Press.
 * buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX
 *
 * @generated from enum arg_services.graph.v1.Support
 */
export declare type SupportJson = "SUPPORT_DEFAULT" | "SUPPORT_POSITION_TO_KNOW" | "SUPPORT_EXPERT_OPINION" | "SUPPORT_WITNESS_TESTIMONY" | "SUPPORT_POPULAR_OPINION" | "SUPPORT_POPULAR_PRACTICE" | "SUPPORT_EXAMPLE" | "SUPPORT_ANALOGY" | "SUPPORT_PRACTICAL_REASONING_FROM_ANALOGY" | "SUPPORT_COMPOSITION" | "SUPPORT_DIVISION" | "SUPPORT_OPPOSITIONS" | "SUPPORT_RHETORICAL_OPPOSITIONS" | "SUPPORT_ALTERNATIVES" | "SUPPORT_VERBAL_CLASSIFICATION" | "SUPPORT_VERBAL_CLASSIFICATION_DEFINITION" | "SUPPORT_VERBAL_CLASSIFICATION_VAGUENESS" | "SUPPORT_VERBAL_CLASSIFICATION_ARBITRARINESS" | "SUPPORT_INTERACTION_OF_ACT_AND_PERSON" | "SUPPORT_VALUES" | "SUPPORT_POSITIVE_VALUES" | "SUPPORT_NEGATIVE_VALUES" | "SUPPORT_SACRIFICE" | "SUPPORT_THE_GROUP_AND_ITS_MEMBERS" | "SUPPORT_PRACTICAL_REASONING" | "SUPPORT_TWO_PERSON_PRACTICAL_REASONING" | "SUPPORT_WASTE" | "SUPPORT_SUNK_COSTS" | "SUPPORT_IGNORANCE" | "SUPPORT_EPISTEMIC_IGNORANCE" | "SUPPORT_CAUSE_TO_EFFECT" | "SUPPORT_CORRELATION_TO_CAUSE" | "SUPPORT_SIGN" | "SUPPORT_ABDUCTIVE" | "SUPPORT_EVIDENCE_TO_HYPOTHESIS" | "SUPPORT_CONSEQUENCES" | "SUPPORT_POSITIVE_CONSEQUENCES" | "SUPPORT_NEGATIVE_CONSEQUENCES" | "SUPPORT_PRAGMATIC_ALTERNATIVES" | "SUPPORT_THREAT" | "SUPPORT_FEAR_APPEAL" | "SUPPORT_DANGER_APPEAL" | "SUPPORT_NEED_FOR_HELP" | "SUPPORT_DISTRESS" | "SUPPORT_COMMITMENT" | "SUPPORT_ETHOTIC" | "SUPPORT_GENERIC_AD_HOMINEM" | "SUPPORT_PRAGMATIC_INCONSISTENCY" | "SUPPORT_INCONSISTENT_COMMITMENT" | "SUPPORT_CIRCUMSTANTIAL_AD_HOMINEM" | "SUPPORT_BIAS" | "SUPPORT_BIAS_AD_HOMINEM" | "SUPPORT_GRADUALISM" | "SUPPORT_SLIPPERY_SLOPE" | "SUPPORT_PRECEDENT_SLIPPERY_SLOPE" | "SUPPORT_SORITES_SLIPPERY_SLOPE" | "SUPPORT_VERBAL_SLIPPERY_SLOPE" | "SUPPORT_FULL_SLIPPERY_SLOPE" | "SUPPORT_CONSTITUTIVE_RULE_CLAIMS" | "SUPPORT_RULES" | "SUPPORT_EXCEPTIONAL_CASE" | "SUPPORT_PRECEDENT" | "SUPPORT_PLEA_FOR_EXCUSE" | "SUPPORT_PERCEPTION" | "SUPPORT_MEMORY";

/**
 * Describes the enum arg_services.graph.v1.Support.
 */
export declare const SupportSchema: GenEnum<Support, SupportJson>;

/**
 * Argumentation schemes for type attack.
 * buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX
 *
 * @generated from enum arg_services.graph.v1.Attack
 */
export enum Attack {
  /**
   * @generated from enum value: ATTACK_DEFAULT = 0;
   */
  DEFAULT = 0,
}

/**
 * Argumentation schemes for type attack.
 * buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX
 *
 * @generated from enum arg_services.graph.v1.Attack
 */
export declare type AttackJson = "ATTACK_DEFAULT";

/**
 * Describes the enum arg_services.graph.v1.Attack.
 */
export declare const AttackSchema: GenEnum<Attack, AttackJson>;

/**
 * Argumentation schemes for type preference.
 * buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX
 *
 * @generated from enum arg_services.graph.v1.Preference
 */
export enum Preference {
  /**
   * @generated from enum value: PREFERENCE_DEFAULT = 0;
   */
  DEFAULT = 0,
}

/**
 * Argumentation schemes for type preference.
 * buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX
 *
 * @generated from enum arg_services.graph.v1.Preference
 */
export declare type PreferenceJson = "PREFERENCE_DEFAULT";

/**
 * Describes the enum arg_services.graph.v1.Preference.
 */
export declare const PreferenceSchema: GenEnum<Preference, PreferenceJson>;

/**
 * Argumentation schemes for type rephrase.
 * buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX
 *
 * @generated from enum arg_services.graph.v1.Rephrase
 */
export enum Rephrase {
  /**
   * @generated from enum value: REPHRASE_DEFAULT = 0;
   */
  DEFAULT = 0,
}

/**
 * Argumentation schemes for type rephrase.
 * buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX
 *
 * @generated from enum arg_services.graph.v1.Rephrase
 */
export declare type RephraseJson = "REPHRASE_DEFAULT";

/**
 * Describes the enum arg_services.graph.v1.Rephrase.
 */
export declare const RephraseSchema: GenEnum<Rephrase, RephraseJson>;

