import React from 'react'; import { EditorProps } from '@monaco-editor/react'; import { Message, PartialMessage, proto3, FieldList, BinaryReadOptions, JsonValue, JsonReadOptions, PlainMessage } from '@bufbuild/protobuf'; /** * Every time this list is updated, we should be redeploying the API server * since it uses the string representation for BQ. * * @generated from enum exa.codeium_common_pb.Language */ declare enum Language { /** * @generated from enum value: LANGUAGE_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from enum value: LANGUAGE_C = 1; */ C = 1, /** * @generated from enum value: LANGUAGE_CLOJURE = 2; */ CLOJURE = 2, /** * @generated from enum value: LANGUAGE_COFFEESCRIPT = 3; */ COFFEESCRIPT = 3, /** * @generated from enum value: LANGUAGE_CPP = 4; */ CPP = 4, /** * @generated from enum value: LANGUAGE_CSHARP = 5; */ CSHARP = 5, /** * @generated from enum value: LANGUAGE_CSS = 6; */ CSS = 6, /** * @generated from enum value: LANGUAGE_CUDACPP = 7; */ CUDACPP = 7, /** * @generated from enum value: LANGUAGE_DOCKERFILE = 8; */ DOCKERFILE = 8, /** * @generated from enum value: LANGUAGE_GO = 9; */ GO = 9, /** * @generated from enum value: LANGUAGE_GROOVY = 10; */ GROOVY = 10, /** * @generated from enum value: LANGUAGE_HANDLEBARS = 11; */ HANDLEBARS = 11, /** * @generated from enum value: LANGUAGE_HASKELL = 12; */ HASKELL = 12, /** * @generated from enum value: LANGUAGE_HCL = 13; */ HCL = 13, /** * @generated from enum value: LANGUAGE_HTML = 14; */ HTML = 14, /** * @generated from enum value: LANGUAGE_INI = 15; */ INI = 15, /** * @generated from enum value: LANGUAGE_JAVA = 16; */ JAVA = 16, /** * @generated from enum value: LANGUAGE_JAVASCRIPT = 17; */ JAVASCRIPT = 17, /** * @generated from enum value: LANGUAGE_JSON = 18; */ JSON = 18, /** * @generated from enum value: LANGUAGE_JULIA = 19; */ JULIA = 19, /** * @generated from enum value: LANGUAGE_KOTLIN = 20; */ KOTLIN = 20, /** * @generated from enum value: LANGUAGE_LATEX = 21; */ LATEX = 21, /** * @generated from enum value: LANGUAGE_LESS = 22; */ LESS = 22, /** * @generated from enum value: LANGUAGE_LUA = 23; */ LUA = 23, /** * @generated from enum value: LANGUAGE_MAKEFILE = 24; */ MAKEFILE = 24, /** * @generated from enum value: LANGUAGE_MARKDOWN = 25; */ MARKDOWN = 25, /** * @generated from enum value: LANGUAGE_OBJECTIVEC = 26; */ OBJECTIVEC = 26, /** * @generated from enum value: LANGUAGE_OBJECTIVECPP = 27; */ OBJECTIVECPP = 27, /** * @generated from enum value: LANGUAGE_PERL = 28; */ PERL = 28, /** * @generated from enum value: LANGUAGE_PHP = 29; */ PHP = 29, /** * @generated from enum value: LANGUAGE_PLAINTEXT = 30; */ PLAINTEXT = 30, /** * @generated from enum value: LANGUAGE_PROTOBUF = 31; */ PROTOBUF = 31, /** * @generated from enum value: LANGUAGE_PBTXT = 32; */ PBTXT = 32, /** * @generated from enum value: LANGUAGE_PYTHON = 33; */ PYTHON = 33, /** * @generated from enum value: LANGUAGE_R = 34; */ R = 34, /** * @generated from enum value: LANGUAGE_RUBY = 35; */ RUBY = 35, /** * @generated from enum value: LANGUAGE_RUST = 36; */ RUST = 36, /** * @generated from enum value: LANGUAGE_SASS = 37; */ SASS = 37, /** * @generated from enum value: LANGUAGE_SCALA = 38; */ SCALA = 38, /** * @generated from enum value: LANGUAGE_SCSS = 39; */ SCSS = 39, /** * @generated from enum value: LANGUAGE_SHELL = 40; */ SHELL = 40, /** * @generated from enum value: LANGUAGE_SQL = 41; */ SQL = 41, /** * @generated from enum value: LANGUAGE_STARLARK = 42; */ STARLARK = 42, /** * @generated from enum value: LANGUAGE_SWIFT = 43; */ SWIFT = 43, /** * @generated from enum value: LANGUAGE_TSX = 44; */ TSX = 44, /** * @generated from enum value: LANGUAGE_TYPESCRIPT = 45; */ TYPESCRIPT = 45, /** * @generated from enum value: LANGUAGE_VISUALBASIC = 46; */ VISUALBASIC = 46, /** * @generated from enum value: LANGUAGE_VUE = 47; */ VUE = 47, /** * @generated from enum value: LANGUAGE_XML = 48; */ XML = 48, /** * @generated from enum value: LANGUAGE_XSL = 49; */ XSL = 49, /** * @generated from enum value: LANGUAGE_YAML = 50; */ YAML = 50, /** * @generated from enum value: LANGUAGE_SVELTE = 51; */ SVELTE = 51, /** * @generated from enum value: LANGUAGE_TOML = 52; */ TOML = 52, /** * @generated from enum value: LANGUAGE_DART = 53; */ DART = 53, /** * @generated from enum value: LANGUAGE_RST = 54; */ RST = 54, /** * @generated from enum value: LANGUAGE_OCAML = 55; */ OCAML = 55, /** * @generated from enum value: LANGUAGE_CMAKE = 56; */ CMAKE = 56, /** * @generated from enum value: LANGUAGE_PASCAL = 57; */ PASCAL = 57, /** * @generated from enum value: LANGUAGE_ELIXIR = 58; */ ELIXIR = 58, /** * @generated from enum value: LANGUAGE_FSHARP = 59; */ FSHARP = 59, /** * @generated from enum value: LANGUAGE_LISP = 60; */ LISP = 60, /** * @generated from enum value: LANGUAGE_MATLAB = 61; */ MATLAB = 61, /** * @generated from enum value: LANGUAGE_POWERSHELL = 62; */ POWERSHELL = 62, /** * @generated from enum value: LANGUAGE_SOLIDITY = 63; */ SOLIDITY = 63, /** * @generated from enum value: LANGUAGE_ADA = 64; */ ADA = 64, /** * @generated from enum value: LANGUAGE_OCAML_INTERFACE = 65; */ OCAML_INTERFACE = 65 } /** * @generated from message exa.language_server_pb.DocumentPosition */ declare class DocumentPosition extends Message { /** * 0-indexed. Measured in UTF-8 bytes. * * @generated from field: uint64 row = 1; */ row: bigint; /** * 0-indexed. Measured in UTF-8 bytes. * * @generated from field: uint64 col = 2; */ col: bigint; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "exa.language_server_pb.DocumentPosition"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): DocumentPosition; static fromJson(jsonValue: JsonValue, options?: Partial): DocumentPosition; static fromJsonString(jsonString: string, options?: Partial): DocumentPosition; static equals(a: DocumentPosition | PlainMessage | undefined, b: DocumentPosition | PlainMessage | undefined): boolean; } /** * Next ID: 9, Previous field: cursor_position. * * @generated from message exa.language_server_pb.Document */ declare class Document extends Message { /** * @generated from field: string absolute_path = 1; */ absolutePath: string; /** * Path relative to the root of the workspace. * * @generated from field: string relative_path = 2; */ relativePath: string; /** * @generated from field: string text = 3; */ text: string; /** * Language ID provided by the editor. * * @generated from field: string editor_language = 4; */ editorLanguage: string; /** * Language enum standardized across editors. * * @generated from field: exa.codeium_common_pb.Language language = 5; */ language: Language; /** * Measured in number of UTF-8 bytes. * * @generated from field: uint64 cursor_offset = 6; */ cursorOffset: bigint; /** * May be present instead of cursor_offset. * * @generated from field: exa.language_server_pb.DocumentPosition cursor_position = 8; */ cursorPosition?: DocumentPosition; /** * \n or \r\n, if known. * * @generated from field: string line_ending = 7; */ lineEnding: string; constructor(data?: PartialMessage); static readonly runtime: typeof proto3; static readonly typeName = "exa.language_server_pb.Document"; static readonly fields: FieldList; static fromBinary(bytes: Uint8Array, options?: Partial): Document; static fromJson(jsonValue: JsonValue, options?: Partial): Document; static fromJsonString(jsonString: string, options?: Partial): Document; static equals(a: Document | PlainMessage | undefined, b: Document | PlainMessage | undefined): boolean; } interface CodeiumEditorProps extends EditorProps { language: string; apiKey?: string; /** * Optional callback to detect when completions are accepted. Includes the accepted text for the completion. */ onAutocomplete?: (acceptedText: string) => void; /** * Optional address of the Language Server. This should not be needed for most use cases. Defaults * to Codeium's language server. */ languageServerAddress?: string; /** * Optional list of other documents in the workspace. This can be used to provide additional * context to Codeium beyond simply the current document. There is a limit of 10 medium sized * documents. */ otherDocuments?: Document[]; /** * Optional classname for the container. */ containerClassName?: string; /** * Optional styles for the container. */ containerStyle?: React.CSSProperties; /** * Optional multiline model threshold. Should not be needed for most use cases. * Numerical value between 0-1, higher = more single line, lower = more multiline, * 0.0 = only_multiline. */ multilineModelThreshold?: number; } /** * Code editor that enables Codeium AI suggestions in the editor. * The layout by default is width = 100% and height = 300px. These values can be overridden by passing in a string value to the width and/or height props. */ declare const CodeiumEditor: React.FC; export { CodeiumEditor, type CodeiumEditorProps, Document, Language };