sig
  type audio = {
    file_id : string;
    duration : int;
    performer : string option;
    title : string option;
    mime_type : string option;
    file_size : int option;
  }
  val create :
    file_id:string ->
    duration:int ->
    ?performer:string option ->
    ?title:string option ->
    ?mime_type:string option ->
    ?file_size:int option -> unit -> Api.Audio.audio
  val read : Yojson.Safe.json -> Api.Audio.audio
  module Out :
    sig
      type audio = {
        chat_id : int;
        audio : string;
        duration : int option;
        performer : string;
        title : string;
        reply_to_message_id : int option;
        reply_markup : unit option;
      }
      val create :
        chat_id:int ->
        audio:string ->
        ?duration:int option ->
        performer:string ->
        title:string -> ?reply_to:int option -> unit -> Api.Audio.Out.audio
      val prepare : Api.Audio.Out.audio -> string
      val prepare_multipart : Api.Audio.Out.audio -> string -> string Lwt.t
    end
end