sig
  val url : string
  val commands : Api.Command.command list
  val get_me : Api.User.user Api.Result.result Lwt.t
  val send_message :
    chat_id:int -> text:string -> unit Api.Result.result Lwt.t
  val send_photo :
    chat_id:int ->
    photo:string ->
    ?caption:string option ->
    reply_to:int option -> string Api.Result.result Lwt.t
  val resend_photo :
    chat_id:int ->
    photo:string ->
    ?caption:string option ->
    reply_to:int option -> unit Api.Result.result Lwt.t
  val send_audio :
    chat_id:int ->
    audio:string ->
    performer:string ->
    title:string -> reply_to:int option -> string Api.Result.result Lwt.t
  val resend_audio :
    chat_id:int ->
    audio:string ->
    performer:string ->
    title:string -> reply_to:int option -> unit Api.Result.result Lwt.t
  val send_voice :
    chat_id:int ->
    voice:string -> reply_to:int option -> string Api.Result.result Lwt.t
  val resend_voice :
    chat_id:int ->
    voice:string -> reply_to:int option -> unit Api.Result.result Lwt.t
  val get_updates : Api.Update.update list Api.Result.result Lwt.t
  val peek_update : Api.Update.update Api.Result.result Lwt.t
  val pop_update :
    ?run_cmds:bool -> unit -> Api.Update.update Api.Result.result Lwt.t
end