import CodeMirror from 'codemirror'; import 'codemirror/mode/clike/clike.js'; import 'codemirror-addon-infotip'; import 'codemirror-addon-lint-fix'; import type { DiagnosticData, ServerOptions, Language } from '../interfaces/protocol'; import type { Connection } from './connection'; import type { SelfDebug } from './self-debug'; interface EditorOptions { language?: Language; on?: { slowUpdateWait?: () => void; slowUpdateResult?: (args: { diagnostics: ReadonlyArray; x: TSlowUpdateExtensionData; }) => void; textChange?: (getText: () => string) => void; connectionChange?: { (event: 'open', e: Event): void; (event: 'error', e: ErrorEvent): void; (event: 'close', e: CloseEvent): void; }; serverError?: (message: string) => void; }; forCodeMirror?: CodeMirror.EditorConfiguration; initialServerOptions?: TExtensionServerOptions; } export declare class Editor { #private; constructor(textarea: HTMLTextAreaElement, connection: Connection, selfDebug: SelfDebug | null, options: EditorOptions); getCodeMirror(): CodeMirror.EditorFromTextArea; setText(text: string): void; getLanguage(): Language; setLanguage(value: Language): Promise; setServerOptions(value: ServerOptions): Promise; destroy(destroyOptions?: { readonly keepCodeMirror?: boolean; }): void; } export {};