sig
  type 'a t
  type node_info = {
    model : string;
    memory : int64;
    cpus : int;
    mhz : int;
    nodes : int;
    sockets : int;
    cores : int;
    threads : int;
  }
  val connect : ?name:string -> unit -> Libvirt.rw Libvirt.Connect.t
  val connect_readonly : ?name:string -> unit -> Libvirt.ro Libvirt.Connect.t
  val close : [> `R ] Libvirt.Connect.t -> unit
  val get_type : [> `R ] Libvirt.Connect.t -> string
  val get_version : [> `R ] Libvirt.Connect.t -> int
  val get_hostname : [> `R ] Libvirt.Connect.t -> string
  val get_uri : [> `R ] Libvirt.Connect.t -> string
  val get_max_vcpus :
    [> `R ] Libvirt.Connect.t -> ?type_:string -> unit -> int
  val list_domains : [> `R ] Libvirt.Connect.t -> int -> int array
  val num_of_domains : [> `R ] Libvirt.Connect.t -> int
  val get_capabilities : [> `R ] Libvirt.Connect.t -> Libvirt.xml
  val num_of_defined_domains : [> `R ] Libvirt.Connect.t -> int
  val list_defined_domains : [> `R ] Libvirt.Connect.t -> int -> string array
  val num_of_networks : [> `R ] Libvirt.Connect.t -> int
  val list_networks : [> `R ] Libvirt.Connect.t -> int -> string array
  val num_of_defined_networks : [> `R ] Libvirt.Connect.t -> int
  val list_defined_networks :
    [> `R ] Libvirt.Connect.t -> int -> string array
  val num_of_pools : [> `R ] Libvirt.Connect.t -> int
  val list_pools : [> `R ] Libvirt.Connect.t -> int -> string array
  val num_of_defined_pools : [> `R ] Libvirt.Connect.t -> int
  val list_defined_pools : [> `R ] Libvirt.Connect.t -> int -> string array
  val get_node_info : [> `R ] Libvirt.Connect.t -> Libvirt.Connect.node_info
  val node_get_free_memory : [> `R ] Libvirt.Connect.t -> int64
  val node_get_cells_free_memory :
    [> `R ] Libvirt.Connect.t -> int -> int -> int64 array
  val maxcpus_of_node_info : Libvirt.Connect.node_info -> int
  val cpumaplen : int -> int
  val use_cpu : string -> int -> unit
  val unuse_cpu : string -> int -> unit
  val cpu_usable : string -> int -> int -> int -> bool
  external const : [> `R ] Libvirt.Connect.t -> Libvirt.ro Libvirt.Connect.t
    = "%identity"
end