import { EditorView } from "@codemirror/view";
import { Extension, Transaction, Line, StateField } from "@codemirror/state";
import { EditorMarker, ExtensionConfiguration, Keybindings, Keymap, LanguageServerHelpers, TextEditorConfiguration, LanguageId, LineGutter } from "./types";
import { VimOptions } from "./extensions/keymap";
export declare const exposeMethods: readonly ["ls"];
export declare class TextEditor {
    protected view: EditorView;
    private config;
    private ls;
    initialize(config: TextEditorConfiguration): void;
    extendExtensions(config: TextEditorConfiguration): Extension;
    protected getExtensions(config: ExtensionConfiguration): Extension[];
    private handleUpdate;
    setReadOnly(readOnly: boolean): void;
    setValue(value: string): void;
    getValue(): string;
    getLength(): number;
    getStateField(field: StateField<any>): any;
    dispatchChange(change: Transaction): void;
    getLineInfo(num: number): Line;
    getLineAt(pos: number): Line;
    setKeymap(keymap: Keymap, options?: VimOptions): void;
    setKeybindings(keybindings: Keybindings): void;
    setLineWrapping(enabled: boolean): void;
    setLineNumbers(enabled: boolean): void;
    setLanguageId(languageId: LanguageId): void;
    setMarkers(markers: EditorMarker[]): void;
    setLineGutters(lineGutters: LineGutter[]): void;
    getSelection(): string;
    getLsHelpers(): LanguageServerHelpers;
    private getLsClient;
    focus(): void;
    foldAll(): void;
    unfoldAll(): void;
    destroy(): void;
}
