import { EditorState, Extension } from '@codemirror/state'; import type { StyleSpec } from 'style-mod'; import { Theme } from '../main/theme'; import type { Connection } from '../protocol/connection'; import type { Language } from '../protocol/languages'; import type { Session } from '../protocol/session'; export declare const createExtensions: (connection: Connection, session: Session, options: { language: Language; theme: Theme; themeSpec: { [selector: string]: StyleSpec; }; onTextChange: ((getText: () => string) => void) | undefined; extraExtensions: ReadonlyArray; }) => readonly [(Extension | (Extension | import("@codemirror/state").StateField<{ pos: number; promise: Promise; resolve: (tooltip: import("@codemirror/view").Tooltip) => void; } | null | undefined>)[] | (Extension | import("@codemirror/state").StateField)[] | (import("@codemirror/state").StateField | import("@codemirror/view").ViewPlugin<{ destroy: () => void; }>)[])[], { readonly switchLanguageExtension: (extensions: readonly Extension[], newState: Language) => readonly Extension[]; readonly switchThemeExtension: (extensions: readonly Extension[], newState: Theme) => readonly Extension[]; }]; export type ExtensionSwitcher = ReturnType[1]; export declare const createState: (extensions: ReadonlyArray, options?: { text?: string | undefined; cursorOffset?: number | undefined; }) => EditorState;