sig
  type elt = int
  type t = { width : int; height : int; data : Gdk.image; }
  val destroy : Ximage2.t -> unit
  val create :
    kind:Gdk.Image.image_type ->
    visual:Gdk.visual -> width:int -> height:int -> Ximage2.t
  val unsafe_get : Ximage2.t -> int -> int -> Ximage2.elt
  val unsafe_set : Ximage2.t -> int -> int -> Ximage2.elt -> unit
  val get : Ximage2.t -> int -> int -> Ximage2.elt
  val set : Ximage2.t -> int -> int -> Ximage2.elt -> unit
  val get_image :
    [> `drawable ] Gobject.obj ->
    x:int -> y:int -> width:int -> height:int -> Ximage2.t
  val of_image :
    Gdk.visual -> (float -> unit) option -> Images.t -> Ximage2.t
  val get_mono_gc : Gdk.window -> Gdk.gc
  val plain_mask : Gdk.window -> int -> int -> Gdk.bitmap
  val pixmap_of : Gdk.window -> Ximage2.t -> Gdk.pixmap
  val mask_of_image : Gdk.window -> Images.t -> Gdk.bitmap option
  val pixmap_of_image :
    Gdk.window -> (float -> unit) option -> Images.t -> GDraw.pixmap
  module Truecolor :
    sig
      val color_creator : Gdk.visual -> Images.rgb -> int
      val color_parser : Gdk.visual -> int -> Images.rgb
    end
end