sig
  module Image :
    sig
      type t = Image.RGBA32.t
      val create : int -> int -> Video.Image.t
      val of_RGB24_string : string -> int -> Video.Image.t
      val to_int_image : Video.Image.t -> int array array
      val copy : Video.Image.t -> Video.Image.t
      val width : Video.Image.t -> int
      val height : Video.Image.t -> int
      val dimensions : Video.Image.t -> int * int
      val size : Video.Image.t -> int
      val blank : Video.Image.t -> unit
      val fill_alpha : Video.Image.t -> int -> unit
      val scale :
        ?proportional:bool -> Video.Image.t -> Video.Image.t -> unit
      val randomize : Video.Image.t -> unit
      val blit :
        Video.Image.t ->
        ?blank:bool -> ?x:int -> ?y:int -> Video.Image.t -> unit
      val get_pixel_rgba :
        Video.Image.t -> int -> int -> int * int * int * int
      val set_pixel_rgba :
        Video.Image.t -> int -> int -> int * int * int * int -> unit
      val add : Video.Image.t -> ?x:int -> ?y:int -> Video.Image.t -> unit
      module Effect :
        sig
          val greyscale : Video.Image.t -> unit
          val sepia : Video.Image.t -> unit
          val invert : Video.Image.t -> unit
          val lomo : Video.Image.t -> unit
        end
    end
  type t = Video.Image.t array
  type buffer = Video.t
  val make : int -> int -> int -> Video.t
  val single : Video.Image.t -> Video.t
  val blit : Video.t -> int -> Video.t -> int -> int -> unit
  val copy : Video.t -> Video.t
  val length : Video.t -> int
  val size : Video.t -> int
  val get : Video.t -> int -> Video.Image.t
  val set : Video.t -> int -> Video.Image.t -> unit
  val iter : (Video.Image.t -> unit) -> Video.t -> int -> int -> unit
  val blank : Video.t -> int -> int -> unit
  val randomize : Video.t -> int -> int -> unit
  module FPS : sig type t = float val to_frac : Video.FPS.t -> int * int end
  module IO :
    sig
      exception Invalid_file
      module Reader :
        sig
          class type t =
            object
              method close : unit
              method frame_rate : Video.FPS.t
              method height : int
              method read : Video.buffer -> int -> int -> int
              method width : int
            end
        end
      module Writer :
        sig
          class type t =
            object
              method close : unit
              method write : Video.buffer -> int -> int -> unit
            end
          class to_avi_file : string -> Video.FPS.t -> int -> int -> t
        end
    end
end