import type { CustomMenuItems } from "../../context-menu";
import { PropType } from "vue";
import { Keybindings, Keymap, LanguageServerConfiguration, EditorMarker, LineGutter } from "./types";
import { Extension } from "@codemirror/state";
import { Config } from "./extensions/vim";
declare const _default: {
    value: {
        type: StringConstructor;
        default: string;
    };
    readOnly: {
        type: BooleanConstructor;
        default: boolean;
    };
    height: {
        type: NumberConstructor;
        deprecated: boolean;
        validator(): boolean;
    };
    isFocused: BooleanConstructor;
    forceInitialize: any;
    /**
     * Configure the keymap to use. The default is 'default'. Other possible
     * values are 'vim', 'emacs'.
     */
    keymap: {
        type: PropType<Keymap>;
        validator(value: Keymap): boolean;
        default: string;
    };
    lineWrapping: BooleanConstructor;
    lineNumbers: {
        type: BooleanConstructor;
        default: boolean;
    };
    keybindings: {
        type: PropType<Keybindings>;
        default: () => {};
    };
    contextMenuItems: PropType<CustomMenuItems>;
    /** The id of the language. If language server is enabled, this will be the language id sent to the language server.
     * This replaces `mode: [String, Object]` and `hint: String`. */
    languageId: {
        type: StringConstructor;
        default: string;
    };
    /** Enable language server support by passing the configuration. */
    lsConfig: PropType<LanguageServerConfiguration>;
    replaceExtensions: PropType<Extension | ((extensions: Extension) => Extension)>;
    vimConfig: PropType<Config>;
    markers: {
        type: PropType<EditorMarker[]>;
        default: () => any[];
    };
    lineGutters: {
        type: PropType<LineGutter[]>;
        default: () => any[];
    };
    /** Enable fold gutter. */
    foldGutters: BooleanConstructor;
    /** Fold all folds in the editor. */
    foldAll: any;
    /** Unfold all folds in the editor. */
    unfoldAll: any;
    /**
     * Configure custom key mappings in vim. `vimKeymaps` accepts an array of
     * objects that contain the following properties:
     * - lhs: The key you want to map
     * - rhs: The key you want to map to
     * - mode: (optional) The mode in which you want to map the key ('normal', 'visual', 'insert')
     *
     * For example, to map `;` to `:`, you can do:
     *
     * ```
     * const vimKeymaps = [
     *   { lhs: ';', rhs: ':' }
     * ]
     * ```
     *
     * In vim, that would be `:map ; :`.
     */
    vimKeymaps: ArrayConstructor;
    clipboard: PropType<Clipboard>;
};
export default _default;
