import * as _codemirror_state from '@codemirror/state'; import { LRLanguage, LanguageSupport } from '@codemirror/language'; import { Completion, CompletionContext, CompletionResult, CompletionSource } from '@codemirror/autocomplete'; import { Diagnostic } from '@codemirror/lint'; import { EditorView } from '@codemirror/view'; /** A language provider based on the [Lezer JavaScript parser](https://github.com/lezer-parser/javascript), extended with highlighting and indentation information. */ declare const javascriptLanguage: LRLanguage; /** A language provider for TypeScript. */ declare const typescriptLanguage: LRLanguage; /** Language provider for JSX. */ declare const jsxLanguage: LRLanguage; /** Language provider for JSX + TypeScript. */ declare const tsxLanguage: LRLanguage; /** JavaScript support. Includes [snippet](https://codemirror.net/6/docs/ref/#lang-javascript.snippets) and local variable completion. */ declare function javascript(config?: { jsx?: boolean; typescript?: boolean; }): LanguageSupport; /** Extension that will automatically insert JSX close tags when a `>` or `/` is typed. */ declare const autoCloseTags: _codemirror_state.Extension; /** A collection of JavaScript-related [snippets](https://codemirror.net/6/docs/ref/#autocomplete.snippet). */ declare const snippets: readonly Completion[]; /** A collection of snippet completions for TypeScript. Includes the JavaScript [snippets](https://codemirror.net/6/docs/ref/#lang-javascript.snippets). */ declare const typescriptSnippets: Completion[]; /** Connects an [ESLint](https://eslint.org/) linter to CodeMirror's [lint](https://codemirror.net/6/docs/ref/#lint) integration. `eslint` should be an instance of the [`Linter`](https://eslint.org/docs/developer-guide/nodejs-api#linter) class, and `config` an optional ESLint configuration. The return value of this function can be passed to [`linter`](https://codemirror.net/6/docs/ref/#lint.linter) to create a JavaScript linting extension. Note that ESLint targets node, and is tricky to run in the browser. The [eslint-linter-browserify](https://github.com/UziTech/eslint-linter-browserify) package may help with that (see [example](https://github.com/UziTech/eslint-linter-browserify/blob/master/example/script.js)). */ declare function esLint(eslint: any, config?: any): (view: EditorView) => Diagnostic[]; /** Completion source that looks up locally defined names in JavaScript code. */ declare function localCompletionSource(context: CompletionContext): CompletionResult | null; /** Helper function for defining JavaScript completion sources. It returns the completable name and object path for a completion context, or null if no name/property completion should happen at that position. For example, when completing after `a.b.c` it will return `{path: ["a", "b"], name: "c"}`. When completing after `x` it will return `{path: [], name: "x"}`. When not in a property or name, it will return null if `context.explicit` is false, and `{path: [], name: ""}` otherwise. */ declare function completionPath(context: CompletionContext): { path: readonly string[]; name: string; } | null; /** Defines a [completion source](https://codemirror.net/6/docs/ref/#autocomplete.CompletionSource) that completes from the given scope object (for example `globalThis`). Will enter properties of the object when completing properties on a directly-named path. */ declare function scopeCompletionSource(scope: any): CompletionSource; export { autoCloseTags, completionPath, esLint, javascript, javascriptLanguage, jsxLanguage, localCompletionSource, scopeCompletionSource, snippets, tsxLanguage, typescriptLanguage, typescriptSnippets };