// An index contains one or more pieces of information about a given piece of
// source code or software artifact. Complementary information can be merged
// together from multiple sources to provide a unified code intelligence
// experience.
//
// Programs producing a file of this format is an "indexer" and may operate
// somewhere on the spectrum between precision, such as indexes produced by
// compiler-backed indexers, and heurstics, such as indexes produced by local
// syntax-directed analysis for scope rules.

// @generated by protoc-gen-es v2.10.2 with parameter "target=ts"
// @generated from file scip.proto (package scip, syntax proto3)
/* eslint-disable */

import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file scip.proto.
 */
export const file_scip: GenFile = /*@__PURE__*/
  fileDesc(" ");

/**
 * Index represents a complete SCIP index for a workspace this is rooted at a
 * single directory. An Index message payload can have a large memory footprint
 * and it's therefore recommended to emit and consume an Index payload one field
 * value at a time. To permit streaming consumption of an Index payload, the
 * `metadata` field must appear at the start of the stream and must only appear
 * once in the stream. Other field values may appear in any order.
 *
 * @generated from message scip.Index
 */
export type Index = Message<"scip.Index"> & {
  /**
   * Metadata about this index.
   *
   * @generated from field: scip.Metadata metadata = 1;
   */
  metadata?: Metadata;

  /**
   * Documents that belong to this index.
   *
   * @generated from field: repeated scip.Document documents = 2;
   */
  documents: Document[];

  /**
   * (optional) Symbols that are referenced from this index but are defined in
   * an external package (a separate `Index` message). Leave this field empty
   * if you assume the external package will get indexed separately. If the
   * external package won't get indexed for some reason then you can use this
   * field to provide hover documentation for those external symbols.
   *
   * @generated from field: repeated scip.SymbolInformation external_symbols = 3;
   */
  externalSymbols: SymbolInformation[];
};

/**
 * Describes the message scip.Index.
 * Use `create(IndexSchema)` to create a new message.
 */
export const IndexSchema: GenMessage<Index> = /*@__PURE__*/
  messageDesc(file_scip, 0);

/**
 * @generated from message scip.Metadata
 */
export type Metadata = Message<"scip.Metadata"> & {
  /**
   * Which version of this protocol was used to generate this index?
   *
   * @generated from field: scip.ProtocolVersion version = 1;
   */
  version: ProtocolVersion;

  /**
   * Information about the tool that produced this index.
   *
   * @generated from field: scip.ToolInfo tool_info = 2;
   */
  toolInfo?: ToolInfo;

  /**
   * URI-encoded absolute path to the root directory of this index. All
   * documents in this index must appear in a subdirectory of this root
   * directory.
   *
   * @generated from field: string project_root = 3;
   */
  projectRoot: string;

  /**
   * Text encoding of the source files on disk that are referenced from
   * `Document.relative_path`. This value is unrelated to the `Document.text`
   * field, which is a Protobuf string and hence must be UTF-8 encoded.
   *
   * @generated from field: scip.TextEncoding text_document_encoding = 4;
   */
  textDocumentEncoding: TextEncoding;
};

/**
 * Describes the message scip.Metadata.
 * Use `create(MetadataSchema)` to create a new message.
 */
export const MetadataSchema: GenMessage<Metadata> = /*@__PURE__*/
  messageDesc(file_scip, 1);

/**
 * @generated from message scip.ToolInfo
 */
export type ToolInfo = Message<"scip.ToolInfo"> & {
  /**
   * Name of the indexer that produced this index.
   *
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * Version of the indexer that produced this index.
   *
   * @generated from field: string version = 2;
   */
  version: string;

  /**
   * Command-line arguments that were used to invoke this indexer.
   *
   * @generated from field: repeated string arguments = 3;
   */
  arguments: string[];
};

/**
 * Describes the message scip.ToolInfo.
 * Use `create(ToolInfoSchema)` to create a new message.
 */
export const ToolInfoSchema: GenMessage<ToolInfo> = /*@__PURE__*/
  messageDesc(file_scip, 2);

/**
 * Document defines the metadata about a source file on disk.
 *
 * @generated from message scip.Document
 */
export type Document = Message<"scip.Document"> & {
  /**
   * The string ID for the programming language this file is written in.
   *
   * @generated from field: string language = 4;
   */
  language: string;

  /**
   * (Required) Unique path to the text document.
   *
   * @generated from field: string relative_path = 1;
   */
  relativePath: string;

  /**
   * Occurrences that appear in this file.
   *
   * @generated from field: repeated scip.Occurrence occurrences = 2;
   */
  occurrences: Occurrence[];

  /**
   * Symbols that are "defined" within this document.
   *
   * @generated from field: repeated scip.SymbolInformation symbols = 3;
   */
  symbols: SymbolInformation[];

  /**
   * (optional) Text contents of the this document.
   *
   * @generated from field: string text = 5;
   */
  text: string;

  /**
   * Specifies the encoding used for source ranges in this Document.
   *
   * @generated from field: scip.PositionEncoding position_encoding = 6;
   */
  positionEncoding: PositionEncoding;
};

/**
 * Describes the message scip.Document.
 * Use `create(DocumentSchema)` to create a new message.
 */
export const DocumentSchema: GenMessage<Document> = /*@__PURE__*/
  messageDesc(file_scip, 3);

/**
 * @generated from message scip.Symbol
 */
export type Symbol = Message<"scip.Symbol"> & {
  /**
   * @generated from field: string scheme = 1;
   */
  scheme: string;

  /**
   * @generated from field: scip.Package package = 2;
   */
  package?: Package;

  /**
   * @generated from field: repeated scip.Descriptor descriptors = 3;
   */
  descriptors: Descriptor[];
};

/**
 * Describes the message scip.Symbol.
 * Use `create(SymbolSchema)` to create a new message.
 */
export const SymbolSchema: GenMessage<Symbol> = /*@__PURE__*/
  messageDesc(file_scip, 4);

/**
 * @generated from message scip.Package
 */
export type Package = Message<"scip.Package"> & {
  /**
   * @generated from field: string manager = 1;
   */
  manager: string;

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

  /**
   * @generated from field: string version = 3;
   */
  version: string;
};

/**
 * Describes the message scip.Package.
 * Use `create(PackageSchema)` to create a new message.
 */
export const PackageSchema: GenMessage<Package> = /*@__PURE__*/
  messageDesc(file_scip, 5);

/**
 * @generated from message scip.Descriptor
 */
export type Descriptor = Message<"scip.Descriptor"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;

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

  /**
   * @generated from field: scip.Descriptor.Suffix suffix = 3;
   */
  suffix: Descriptor_Suffix;
};

/**
 * Describes the message scip.Descriptor.
 * Use `create(DescriptorSchema)` to create a new message.
 */
export const DescriptorSchema: GenMessage<Descriptor> = /*@__PURE__*/
  messageDesc(file_scip, 6);

/**
 * @generated from enum scip.Descriptor.Suffix
 */
export enum Descriptor_Suffix {
  /**
   * @generated from enum value: UnspecifiedSuffix = 0;
   */
  UnspecifiedSuffix = 0,

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

  /**
   * @generated from enum value: Package = 1 [deprecated = true];
   * @deprecated
   */
  Package = 1,

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

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

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

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

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

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

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

  /**
   * @generated from enum value: Macro = 9;
   */
  Macro = 9,
}

/**
 * Describes the enum scip.Descriptor.Suffix.
 */
export const Descriptor_SuffixSchema: GenEnum<Descriptor_Suffix> = /*@__PURE__*/
  enumDesc(file_scip, 6, 0);

/**
 * SymbolInformation defines metadata about a symbol, such as the symbol's
 * docstring or what package it's defined it.
 *
 * @generated from message scip.SymbolInformation
 */
export type SymbolInformation = Message<"scip.SymbolInformation"> & {
  /**
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * @generated from field: repeated string documentation = 3;
   */
  documentation: string[];

  /**
   * @generated from field: repeated scip.Relationship relationships = 4;
   */
  relationships: Relationship[];

  /**
   * @generated from field: scip.SymbolInformation.Kind kind = 5;
   */
  kind: SymbolInformation_Kind;

  /**
   * @generated from field: string display_name = 6;
   */
  displayName: string;

  /**
   * @generated from field: scip.Document signature_documentation = 7;
   */
  signatureDocumentation?: Document;

  /**
   * @generated from field: string enclosing_symbol = 8;
   */
  enclosingSymbol: string;
};

/**
 * Describes the message scip.SymbolInformation.
 * Use `create(SymbolInformationSchema)` to create a new message.
 */
export const SymbolInformationSchema: GenMessage<SymbolInformation> = /*@__PURE__*/
  messageDesc(file_scip, 7);

/**
 * @generated from enum scip.SymbolInformation.Kind
 */
export enum SymbolInformation_Kind {
  /**
   * @generated from enum value: UnspecifiedKind = 0;
   */
  UnspecifiedKind = 0,

  /**
   * @generated from enum value: AbstractMethod = 66;
   */
  AbstractMethod = 66,

  /**
   * @generated from enum value: Accessor = 72;
   */
  Accessor = 72,

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

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

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

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

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

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

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

  /**
   * @generated from enum value: Concept = 86;
   */
  Concept = 86,

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

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

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

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

  /**
   * @generated from enum value: Delegate = 73;
   */
  Delegate = 73,

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

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

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

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

  /**
   * @generated from enum value: Extension = 84;
   */
  Extension = 84,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /**
   * @generated from enum value: MethodAlias = 74;
   */
  MethodAlias = 74,

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

  /**
   * @generated from enum value: MethodSpecification = 67;
   */
  MethodSpecification = 67,

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

  /**
   * @generated from enum value: Mixin = 85;
   */
  Mixin = 85,

  /**
   * @generated from enum value: Modifier = 65;
   */
  Modifier = 65,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /**
   * @generated from enum value: ProtocolMethod = 68;
   */
  ProtocolMethod = 68,

  /**
   * @generated from enum value: PureVirtualMethod = 69;
   */
  PureVirtualMethod = 69,

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

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

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

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

  /**
   * @generated from enum value: SingletonClass = 75;
   */
  SingletonClass = 75,

  /**
   * @generated from enum value: SingletonMethod = 76;
   */
  SingletonMethod = 76,

  /**
   * @generated from enum value: StaticDataMember = 77;
   */
  StaticDataMember = 77,

  /**
   * @generated from enum value: StaticEvent = 78;
   */
  StaticEvent = 78,

  /**
   * @generated from enum value: StaticField = 79;
   */
  StaticField = 79,

  /**
   * @generated from enum value: StaticMethod = 80;
   */
  StaticMethod = 80,

  /**
   * @generated from enum value: StaticProperty = 81;
   */
  StaticProperty = 81,

  /**
   * @generated from enum value: StaticVariable = 82;
   */
  StaticVariable = 82,

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

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

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

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

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

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

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

  /**
   * @generated from enum value: TraitMethod = 70;
   */
  TraitMethod = 70,

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

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

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

  /**
   * @generated from enum value: TypeClassMethod = 71;
   */
  TypeClassMethod = 71,

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

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

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

  /**
   * @generated from enum value: Value = 60;
   */
  Value = 60,

  /**
   * @generated from enum value: Variable = 61;
   */
  Variable = 61,
}

/**
 * Describes the enum scip.SymbolInformation.Kind.
 */
export const SymbolInformation_KindSchema: GenEnum<SymbolInformation_Kind> = /*@__PURE__*/
  enumDesc(file_scip, 7, 0);

/**
 * @generated from message scip.Relationship
 */
export type Relationship = Message<"scip.Relationship"> & {
  /**
   * @generated from field: string symbol = 1;
   */
  symbol: string;

  /**
   * @generated from field: bool is_reference = 2;
   */
  isReference: boolean;

  /**
   * @generated from field: bool is_implementation = 3;
   */
  isImplementation: boolean;

  /**
   * @generated from field: bool is_type_definition = 4;
   */
  isTypeDefinition: boolean;

  /**
   * @generated from field: bool is_definition = 5;
   */
  isDefinition: boolean;
};

/**
 * Describes the message scip.Relationship.
 * Use `create(RelationshipSchema)` to create a new message.
 */
export const RelationshipSchema: GenMessage<Relationship> = /*@__PURE__*/
  messageDesc(file_scip, 8);

/**
 * Occurrence associates a source position with a symbol and/or highlighting
 * information.
 *
 * @generated from message scip.Occurrence
 */
export type Occurrence = Message<"scip.Occurrence"> & {
  /**
   * @generated from field: repeated int32 range = 1;
   */
  range: number[];

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

  /**
   * @generated from field: int32 symbol_roles = 3;
   */
  symbolRoles: number;

  /**
   * @generated from field: repeated string override_documentation = 4;
   */
  overrideDocumentation: string[];

  /**
   * @generated from field: scip.SyntaxKind syntax_kind = 5;
   */
  syntaxKind: SyntaxKind;

  /**
   * @generated from field: repeated scip.Diagnostic diagnostics = 6;
   */
  diagnostics: Diagnostic[];

  /**
   * @generated from field: repeated int32 enclosing_range = 7;
   */
  enclosingRange: number[];
};

/**
 * Describes the message scip.Occurrence.
 * Use `create(OccurrenceSchema)` to create a new message.
 */
export const OccurrenceSchema: GenMessage<Occurrence> = /*@__PURE__*/
  messageDesc(file_scip, 9);

/**
 * @generated from message scip.Diagnostic
 */
export type Diagnostic = Message<"scip.Diagnostic"> & {
  /**
   * @generated from field: scip.Severity severity = 1;
   */
  severity: Severity;

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

  /**
   * @generated from field: string message = 3;
   */
  message: string;

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

  /**
   * @generated from field: repeated scip.DiagnosticTag tags = 5;
   */
  tags: DiagnosticTag[];
};

/**
 * Describes the message scip.Diagnostic.
 * Use `create(DiagnosticSchema)` to create a new message.
 */
export const DiagnosticSchema: GenMessage<Diagnostic> = /*@__PURE__*/
  messageDesc(file_scip, 10);

/**
 * @generated from enum scip.ProtocolVersion
 */
export enum ProtocolVersion {
  /**
   * @generated from enum value: UnspecifiedProtocolVersion = 0;
   */
  UnspecifiedProtocolVersion = 0,
}

/**
 * Describes the enum scip.ProtocolVersion.
 */
export const ProtocolVersionSchema: GenEnum<ProtocolVersion> = /*@__PURE__*/
  enumDesc(file_scip, 0);

/**
 * @generated from enum scip.TextEncoding
 */
export enum TextEncoding {
  /**
   * @generated from enum value: UnspecifiedTextEncoding = 0;
   */
  UnspecifiedTextEncoding = 0,

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

  /**
   * @generated from enum value: UTF16 = 2;
   */
  UTF16 = 2,
}

/**
 * Describes the enum scip.TextEncoding.
 */
export const TextEncodingSchema: GenEnum<TextEncoding> = /*@__PURE__*/
  enumDesc(file_scip, 1);

/**
 * Encoding used to interpret the 'character' value in source ranges.
 *
 * @generated from enum scip.PositionEncoding
 */
export enum PositionEncoding {
  /**
   * @generated from enum value: UnspecifiedPositionEncoding = 0;
   */
  UnspecifiedPositionEncoding = 0,

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

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

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

/**
 * Describes the enum scip.PositionEncoding.
 */
export const PositionEncodingSchema: GenEnum<PositionEncoding> = /*@__PURE__*/
  enumDesc(file_scip, 2);

/**
 * @generated from enum scip.SymbolRole
 */
export enum SymbolRole {
  /**
   * @generated from enum value: UnspecifiedSymbolRole = 0;
   */
  UnspecifiedSymbolRole = 0,

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

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

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

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

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

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

  /**
   * @generated from enum value: ForwardDefinition = 64;
   */
  ForwardDefinition = 64,
}

/**
 * Describes the enum scip.SymbolRole.
 */
export const SymbolRoleSchema: GenEnum<SymbolRole> = /*@__PURE__*/
  enumDesc(file_scip, 3);

/**
 * @generated from enum scip.SyntaxKind
 */
export enum SyntaxKind {
  /**
   * @generated from enum value: UnspecifiedSyntaxKind = 0;
   */
  UnspecifiedSyntaxKind = 0,

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

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

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

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

  /**
   * @generated from enum value: IdentifierKeyword = 4 [deprecated = true];
   * @deprecated
   */
  IdentifierKeyword = 4,

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

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

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

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

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

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

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

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

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

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

  /**
   * @generated from enum value: IdentifierModule = 14 [deprecated = true];
   * @deprecated
   */
  IdentifierModule = 14,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /**
   * @generated from enum value: TagDelimiter = 36;
   */
  TagDelimiter = 36,
}

/**
 * Describes the enum scip.SyntaxKind.
 */
export const SyntaxKindSchema: GenEnum<SyntaxKind> = /*@__PURE__*/
  enumDesc(file_scip, 4);

/**
 * @generated from enum scip.Severity
 */
export enum Severity {
  /**
   * @generated from enum value: UnspecifiedSeverity = 0;
   */
  UnspecifiedSeverity = 0,

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

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

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

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

/**
 * Describes the enum scip.Severity.
 */
export const SeveritySchema: GenEnum<Severity> = /*@__PURE__*/
  enumDesc(file_scip, 5);

/**
 * @generated from enum scip.DiagnosticTag
 */
export enum DiagnosticTag {
  /**
   * @generated from enum value: UnspecifiedDiagnosticTag = 0;
   */
  UnspecifiedDiagnosticTag = 0,

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

  /**
   * @generated from enum value: Deprecated = 2;
   */
  Deprecated = 2,
}

/**
 * Describes the enum scip.DiagnosticTag.
 */
export const DiagnosticTagSchema: GenEnum<DiagnosticTag> = /*@__PURE__*/
  enumDesc(file_scip, 6);

/**
 * @generated from enum scip.Language
 */
export enum Language {
  /**
   * @generated from enum value: UnspecifiedLanguage = 0;
   */
  UnspecifiedLanguage = 0,

  /**
   * @generated from enum value: ABAP = 60;
   */
  ABAP = 60,

  /**
   * @generated from enum value: Apex = 96;
   */
  Apex = 96,

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

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

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

  /**
   * @generated from enum value: AsciiDoc = 86;
   */
  AsciiDoc = 86,

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

  /**
   * @generated from enum value: Awk = 66;
   */
  Awk = 66,

  /**
   * @generated from enum value: Bat = 68;
   */
  Bat = 68,

  /**
   * @generated from enum value: BibTeX = 81;
   */
  BibTeX = 81,

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

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

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

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

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

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

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

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

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

  /**
   * @generated from enum value: CUDA = 97;
   */
  CUDA = 97,

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

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

  /**
   * @generated from enum value: Diff = 88;
   */
  Diff = 88,

  /**
   * @generated from enum value: Dockerfile = 80;
   */
  Dockerfile = 80,

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

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

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

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

  /**
   * @generated from enum value: Fish = 65;
   */
  Fish = 65,

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

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

  /**
   * @generated from enum value: Git_Commit = 91;
   */
  Git_Commit = 91,

  /**
   * @generated from enum value: Git_Config = 89;
   */
  Git_Config = 89,

  /**
   * @generated from enum value: Git_Rebase = 92;
   */
  Git_Rebase = 92,

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

  /**
   * @generated from enum value: GraphQL = 98;
   */
  GraphQL = 98,

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

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

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

  /**
   * @generated from enum value: Handlebars = 90;
   */
  Handlebars = 90,

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

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

  /**
   * @generated from enum value: Ini = 72;
   */
  Ini = 72,

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

  /**
   * @generated from enum value: JSON = 75;
   */
  JSON = 75,

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

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

  /**
   * @generated from enum value: JavaScriptReact = 93;
   */
  JavaScriptReact = 93,

  /**
   * @generated from enum value: Jsonnet = 76;
   */
  Jsonnet = 76,

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

  /**
   * @generated from enum value: Justfile = 109;
   */
  Justfile = 109,

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

  /**
   * @generated from enum value: LaTeX = 83;
   */
  LaTeX = 83,

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

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

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

  /**
   * @generated from enum value: Luau = 108;
   */
  Luau = 108,

  /**
   * @generated from enum value: Makefile = 79;
   */
  Makefile = 79,

  /**
   * @generated from enum value: Markdown = 84;
   */
  Markdown = 84,

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

  /**
   * @generated from enum value: Nickel = 110;
   */
  Nickel = 110,

  /**
   * @generated from enum value: Nix = 77;
   */
  Nix = 77,

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

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

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

  /**
   * @generated from enum value: Pascal = 99;
   */
  Pascal = 99,

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

  /**
   * @generated from enum value: PLSQL = 70;
   */
  PLSQL = 70,

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

  /**
   * @generated from enum value: PowerShell = 67;
   */
  PowerShell = 67,

  /**
   * @generated from enum value: Prolog = 71;
   */
  Prolog = 71,

  /**
   * @generated from enum value: Protobuf = 100;
   */
  Protobuf = 100,

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

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

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

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

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

  /**
   * @generated from enum value: Repro = 102;
   */
  Repro = 102,

  /**
   * @generated from enum value: ReST = 85;
   */
  ReST = 85,

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

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

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

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

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

  /**
   * @generated from enum value: SQL = 69;
   */
  SQL = 69,

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

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

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

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

  /**
   * @generated from enum value: Skylark = 78;
   */
  Skylark = 78,

  /**
   * @generated from enum value: Slang = 107;
   */
  Slang = 107,

  /**
   * @generated from enum value: Solidity = 95;
   */
  Solidity = 95,

  /**
   * @generated from enum value: Svelte = 106;
   */
  Svelte = 106,

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

  /**
   * @generated from enum value: Tcl = 101;
   */
  Tcl = 101,

  /**
   * @generated from enum value: TOML = 73;
   */
  TOML = 73,

  /**
   * @generated from enum value: TeX = 82;
   */
  TeX = 82,

  /**
   * @generated from enum value: Thrift = 103;
   */
  Thrift = 103,

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

  /**
   * @generated from enum value: TypeScriptReact = 94;
   */
  TypeScriptReact = 94,

  /**
   * @generated from enum value: Verilog = 104;
   */
  Verilog = 104,

  /**
   * @generated from enum value: VHDL = 105;
   */
  VHDL = 105,

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

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

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

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

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

  /**
   * @generated from enum value: YAML = 74;
   */
  YAML = 74,

  /**
   * @generated from enum value: Zig = 38;
   */
  Zig = 38,
}

/**
 * Describes the enum scip.Language.
 */
export const LanguageSchema: GenEnum<Language> = /*@__PURE__*/
  enumDesc(file_scip, 7);

