sig
  type t = {
    nocol : (string, string) Hashtbl.t;
    cols : (string, (string, string) Hashtbl.t) Hashtbl.t;
  }
  val load : '-> (Main.In_memory.DB.t, 'b) Pvem_lwt_unix.Deferred_result.t
  val close : '-> (unit, 'b) Pvem_lwt_unix.Deferred_result.t
  val get_collection :
    Main.In_memory.DB.t -> string option -> (string, string) Hashtbl.t
  val get :
    ?collection:string ->
    Main.In_memory.DB.t ->
    key:string -> (string option, 'a) Pvem_lwt_unix.Deferred_result.t
  val get_all :
    Main.In_memory.DB.t ->
    collection:string -> (string list, 'a) Pvem_lwt_unix.Deferred_result.t
  val iterator :
    Main.In_memory.DB.t ->
    collection:string ->
    unit -> (string option, 'a) Pvem_lwt_unix.Deferred_result.t
  val act :
    Main.In_memory.DB.t ->
    action:Trakeva.Action.t ->
    ([> `Done | `Not_done ], 'a) Pvem_lwt_unix.Deferred_result.t
end