sig
  exception Not_a_plugin
  exception Failure
  val version : unit -> int * int
  type plugin
  val default_paths : string list
  val load : string -> Frei0r.plugin
  type plugin_type = Filter | Source | Mixer2 | Mixer3
  val string_of_plugin_type : Frei0r.plugin_type -> string
  type color_model = BGRA8888 | RGBA8888 | Packed32
  val string_of_color_model : Frei0r.color_model -> string
  type info = {
    name : string;
    author : string;
    plugin_type : Frei0r.plugin_type;
    color_model : Frei0r.color_model;
    frei0r_version : int;
    major_version : int;
    minor_version : int;
    num_params : int;
    explanation : string;
  }
  val info : Frei0r.plugin -> Frei0r.info
  type param_type = Bool | Double | Color | Position | String
  val string_of_param_type : Frei0r.param_type -> string
  type param_info = {
    param_name : string;
    param_type : Frei0r.param_type;
    param_explanation : string;
  }
  val param_info : Frei0r.plugin -> int -> Frei0r.param_info
  type t
  val create : Frei0r.plugin -> int -> int -> Frei0r.t
  type color = float * float * float
  type position = float * float
  val get_param_bool : Frei0r.t -> int -> bool
  val get_param_float : Frei0r.t -> int -> float
  val get_param_color : Frei0r.t -> int -> Frei0r.color
  val get_param_position : Frei0r.t -> int -> Frei0r.position
  val get_param_string : Frei0r.t -> int -> string
  val set_param_bool : Frei0r.t -> int -> bool -> unit
  val set_param_float : Frei0r.t -> int -> float -> unit
  val set_param_color : Frei0r.t -> int -> Frei0r.color -> unit
  val set_param_position : Frei0r.t -> int -> Frei0r.position -> unit
  val set_param_string : Frei0r.t -> int -> string -> unit
  type data =
      (int, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t
  val update0 : Frei0r.t -> float -> Frei0r.data -> unit
  val update1 : Frei0r.t -> float -> Frei0r.data -> Frei0r.data -> unit
  val update2 :
    Frei0r.t -> float -> Frei0r.data -> Frei0r.data -> Frei0r.data -> unit
  val update3 :
    Frei0r.t ->
    float -> Frei0r.data -> Frei0r.data -> Frei0r.data -> Frei0r.data -> unit
end