open Js_of_ocaml open Brr type t val v : unit -> t module rec Model : sig include module type of Bindings.Model val schema_spec: node_spec Bindings.ordered_map Js.t -> mark_spec Bindings.ordered_map Js.t option -> string option -> schema_spec Js.t val schema : t -> schema_spec Js.t -> schema Js.t module DOMParser : sig type parser val from_schema : t -> schema Js.t -> parser val parse : parser -> El.t -> node Js.t end val empty_fragment : t -> fragment Js.t end and SchemaList : sig val add_list_nodes : t -> Model.node_spec Bindings.ordered_map Js.t -> Jstr.t -> Jstr.t option -> Model.node_spec Bindings.ordered_map Js.t end (* State *) and State : sig include module type of Bindings.State val configuration_prop : unit -> configuration_prop Js.t val creation_prop : unit -> creation_prop Js.t val create : t -> creation_prop Js.t -> editor_state Js.t val fromJSON : t -> configuration_prop Js.t -> Brr.Json.t -> editor_state Js.t end (* Editor view *) and View : sig module EditorProps : sig type t end include module type of Bindings.View val direct_editor_props : unit -> direct_editor_props Js.t val editor_view : t -> El.t -> direct_editor_props Js.t -> editor_view Js.t end module SchemaBasic : sig include module type of Bindings.SchemaBasic val schema : t -> Model.schema Js.t end module History : sig include module type of Bindings.History val history_prop : unit -> history_prop Js.t val history : t -> history_prop Js.t -> State.plugin Js.t val undo : t -> State.editor_state Js.t -> (State.transaction -> unit) -> bool val redo : t -> State.editor_state Js.t -> (State.transaction -> unit) -> bool end module Keymap : sig val keymap : t -> (string * (State.editor_state Js.t -> (State.transaction -> unit) -> bool)) array -> State.plugin Js.t end module Commands : sig val baseKeymap : t -> (string * (State.editor_state Js.t -> (State.transaction -> unit) -> bool)) array end (* Example Setup *) val example_setup : t -> Model.schema Js.t -> State.plugin Js.t Js.js_array Js.t