export const cmOrigin: "prosemirror-binding";
/**
 * A binding that binds a YText to a CodeMirror editor.
 *
 * @example
 *   const ytext = ydocument.define('codemirror', Y.Text)
 *   const editor = new CodeMirror(document.querySelector('#container'), {
 *     mode: 'javascript',
 *     lineNumbers: true
 *   })
 *   const binding = new CodemirrorBinding(ytext, editor)
 *
 */
export class CodemirrorBinding {
    /**
     * @param {Y.Text} textType
     * @param {import('codemirror').Editor} codeMirror
     * @param {any} [awareness]
     */
    constructor(textType: Y.Text, codeMirror: import('codemirror').Editor, awareness?: any);
    doc: Y.Doc;
    type: Y.Text;
    cm: CodeMirror.Editor;
    cmDoc: CodeMirror.Doc;
    awareness: any;
    _mux: import("lib0/mutex").mutex;
    _typeObserver: (event: any) => void;
    _targetObserver: (_: any, change: any) => void;
    _cursors: Map<any, any>;
    _changedCursors: Set<any>;
    _debounceCursorEvent: (arg0: Function) => void;
    _awarenessListener: (event: any) => void;
    _cursorListener: () => void;
    _blurListeer: () => any;
    destroy(): void;
}
export const CodeMirrorBinding: typeof CodemirrorBinding;
import * as Y from "yjs";
import CodeMirror from "codemirror";
