sig
  module type Fdkaac_t =
    sig
      module Encoder :
        sig
          exception Invalid_handle
          exception Unsupported_parameter
          exception Invalid_config
          exception Error of int
          exception End_of_file
          exception Unknown of int
          val string_of_exception : exn -> string option
          type t
          type mpeg2_aac = [ `AAC_LC | `HE_AAC | `HE_AAC_v2 ]
          type mpeg4_aac =
              [ `AAC_ELD | `AAC_LC | `AAC_LD | `HE_AAC | `HE_AAC_v2 ]
          type aot =
              [ `Mpeg_2 of Fdkaac_dynlink.Fdkaac_t.Encoder.mpeg2_aac
              | `Mpeg_4 of Fdkaac_dynlink.Fdkaac_t.Encoder.mpeg4_aac ]
          type bitrate_mode =
              [ `Constant | `Full_bitreservoir | `Variable of int ]
          type transmux =
              [ `Adif | `Adts | `Latm | `Latm_out_of_band | `Loas | `Raw ]
          type param_name =
              [ `Afterburner
              | `Aot
              | `Bandwidth
              | `Bitrate
              | `Bitrate_mode
              | `Granule_length
              | `Samplerate
              | `Sbr_mode
              | `Transmux ]
          type param =
              [ `Afterburner of bool
              | `Aot of Fdkaac_dynlink.Fdkaac_t.Encoder.aot
              | `Bandwidth of bool
              | `Bitrate of int
              | `Bitrate_mode of Fdkaac_dynlink.Fdkaac_t.Encoder.bitrate_mode
              | `Granule_length of int
              | `Samplerate of int
              | `Sbr_mode of bool
              | `Transmux of Fdkaac_dynlink.Fdkaac_t.Encoder.transmux ]
          val create : int -> Fdkaac_dynlink.Fdkaac_t.Encoder.t
          val set :
            Fdkaac_dynlink.Fdkaac_t.Encoder.t ->
            Fdkaac_dynlink.Fdkaac_t.Encoder.param -> unit
          val get :
            Fdkaac_dynlink.Fdkaac_t.Encoder.t ->
            Fdkaac_dynlink.Fdkaac_t.Encoder.param_name ->
            Fdkaac_dynlink.Fdkaac_t.Encoder.param
          val encode :
            Fdkaac_dynlink.Fdkaac_t.Encoder.t ->
            string -> int -> int -> string
          val flush : Fdkaac_dynlink.Fdkaac_t.Encoder.t -> string
        end
    end
  type handler = {
    mutable fdkaac_module : (module Fdkaac_dynlink.Fdkaac_t) option;
  }
  val handler : Fdkaac_dynlink.handler
end