sig
  type elt = int
  type rawimage
  type t = {
    width : int;
    height : int;
    rawimage : Index8.rawimage;
    mutable infos : Info.info list;
    mutable colormap : Color.rgb Color.map;
    mutable transparent : int;
  }
  val to_rgb24 : ?failsafe:Color.rgb -> Index8.t -> Rgb24.t
  val to_rgba32 : ?failsafe:Color.rgba -> Index8.t -> Rgba32.t
  val dump : Index8.t -> bytes
  val unsafe_access : Index8.t -> int -> int -> bytes * int
  val get_strip : Index8.t -> int -> int -> int -> bytes
  val set_strip : Index8.t -> int -> int -> int -> bytes -> unit
  val get_scanline : Index8.t -> int -> bytes
  val set_scanline : Index8.t -> int -> bytes -> unit
  val unsafe_get : Index8.t -> int -> int -> Index8.elt
  val unsafe_set : Index8.t -> int -> int -> Index8.elt -> unit
  val get : Index8.t -> int -> int -> Index8.elt
  val set : Index8.t -> int -> int -> Index8.elt -> unit
  val unsafe_get_color : Index8.t -> int -> int -> Color.rgb
  val get_color : Index8.t -> int -> int -> Color.rgb
  val unsafe_get_rgb : Index8.t -> int -> int -> Color.rgb
  val get_rgb : Index8.t -> int -> int -> Color.rgb
  val destroy : Index8.t -> unit
  val blit :
    Index8.t -> int -> int -> Index8.t -> int -> int -> int -> int -> unit
  val blocks : Index8.t -> int * int
  val dump_block : Index8.t -> int -> int -> Bitmap.Block.t
  val map :
    (Index8.elt -> Index8.elt -> Index8.elt) ->
    Index8.t -> int -> int -> Index8.t -> int -> int -> int -> int -> unit
  val create_with :
    int ->
    int -> Info.info list -> Color.rgb Color.map -> int -> bytes -> Index8.t
  val create_with_scanlines :
    int ->
    int ->
    Info.info list -> Color.rgb Color.map -> int -> bytes array -> Index8.t
  val create : int -> int -> Index8.t
  val make : int -> int -> Index8.elt -> Index8.t
  val copy : Index8.t -> Index8.t
  val sub : Index8.t -> int -> int -> int -> int -> Index8.t
  val rawimage : Index8.t -> Index8.rawimage
end