sig
  val url : string
  val commands : TelegramApi.Command.command list
  val inline :
    TelegramApi.InlineQuery.inline_query -> TelegramApi.Command.action
  val callback :
    TelegramApi.CallbackQuery.callback_query -> TelegramApi.Command.action
  val get_me : TelegramApi.User.user TelegramApi.Result.result Lwt.t
  val send_message :
    chat_id:int ->
    text:string ->
    ?disable_notification:bool ->
    reply_to:int option ->
    reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
    unit TelegramApi.Result.result Lwt.t
  val forward_message :
    chat_id:int ->
    from_chat_id:int ->
    ?disable_notification:bool ->
    message_id:int -> unit TelegramApi.Result.result Lwt.t
  val send_chat_action :
    chat_id:int ->
    action:TelegramApi.ChatAction.action ->
    unit TelegramApi.Result.result Lwt.t
  val send_photo :
    chat_id:int ->
    photo:string ->
    ?caption:string option ->
    ?disable_notification:bool ->
    reply_to:int option ->
    reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
    string TelegramApi.Result.result Lwt.t
  val resend_photo :
    chat_id:int ->
    photo:string ->
    ?caption:string option ->
    ?disable_notification:bool ->
    reply_to:int option ->
    reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
    unit TelegramApi.Result.result Lwt.t
  val send_audio :
    chat_id:int ->
    audio:string ->
    performer:string ->
    title:string ->
    ?disable_notification:bool ->
    reply_to:int option ->
    reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
    string TelegramApi.Result.result Lwt.t
  val resend_audio :
    chat_id:int ->
    audio:string ->
    performer:string ->
    title:string ->
    ?disable_notification:bool ->
    reply_to:int option ->
    reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
    unit TelegramApi.Result.result Lwt.t
  val send_document :
    chat_id:int ->
    document:string ->
    ?disable_notification:bool ->
    reply_to:int option ->
    reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
    string TelegramApi.Result.result Lwt.t
  val resend_document :
    chat_id:int ->
    document:string ->
    ?disable_notification:bool ->
    reply_to:int option ->
    reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
    unit TelegramApi.Result.result Lwt.t
  val send_sticker :
    chat_id:int ->
    sticker:string ->
    ?disable_notification:bool ->
    reply_to:int option ->
    reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
    string TelegramApi.Result.result Lwt.t
  val resend_sticker :
    chat_id:int ->
    sticker:string ->
    ?disable_notification:bool ->
    reply_to:int option ->
    reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
    unit TelegramApi.Result.result Lwt.t
  val send_video :
    chat_id:int ->
    video:string ->
    ?duration:int option ->
    ?caption:string option ->
    ?disable_notification:bool ->
    reply_to:int option ->
    reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
    string TelegramApi.Result.result Lwt.t
  val resend_video :
    chat_id:int ->
    video:string ->
    ?duration:int option ->
    ?caption:string option ->
    ?disable_notification:bool ->
    reply_to:int option ->
    reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
    unit TelegramApi.Result.result Lwt.t
  val send_voice :
    chat_id:int ->
    voice:string ->
    ?disable_notification:bool ->
    reply_to:int option ->
    reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
    string TelegramApi.Result.result Lwt.t
  val resend_voice :
    chat_id:int ->
    voice:string ->
    ?disable_notification:bool ->
    reply_to:int option ->
    reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
    unit TelegramApi.Result.result Lwt.t
  val send_location :
    chat_id:int ->
    latitude:float ->
    longitude:float ->
    ?disable_notification:bool ->
    reply_to:int option ->
    reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
    unit TelegramApi.Result.result Lwt.t
  val send_venue :
    chat_id:int ->
    latitude:float ->
    longitude:float ->
    title:string ->
    address:string ->
    foursquare_id:string option ->
    ?disable_notification:bool ->
    reply_to:int option ->
    reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
    unit TelegramApi.Result.result Lwt.t
  val send_contact :
    chat_id:int ->
    phone_number:string ->
    first_name:string ->
    last_name:string option ->
    ?disable_notification:bool ->
    reply_to:int option ->
    reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
    unit TelegramApi.Result.result Lwt.t
  val get_user_profile_photos :
    user_id:int ->
    offset:int option ->
    limit:int option ->
    TelegramApi.UserProfilePhotos.user_profile_photos
    TelegramApi.Result.result Lwt.t
  val get_file :
    file_id:string -> TelegramApi.File.file TelegramApi.Result.result Lwt.t
  val get_file' : file_id:string -> string option Lwt.t
  val download_file : file:TelegramApi.File.file -> string option Lwt.t
  val kick_chat_member :
    chat_id:int -> user_id:int -> unit TelegramApi.Result.result Lwt.t
  val leave_chat : chat_id:int -> unit TelegramApi.Result.result Lwt.t
  val unban_chat_member :
    chat_id:int -> user_id:int -> unit TelegramApi.Result.result Lwt.t
  val get_chat :
    chat_id:int -> TelegramApi.Chat.chat TelegramApi.Result.result Lwt.t
  val get_chat_administrators :
    chat_id:int ->
    TelegramApi.ChatMember.chat_member list TelegramApi.Result.result Lwt.t
  val get_chat_members_count :
    chat_id:int -> int TelegramApi.Result.result Lwt.t
  val get_chat_member :
    chat_id:int ->
    user_id:int ->
    TelegramApi.ChatMember.chat_member TelegramApi.Result.result Lwt.t
  val answer_callback_query :
    callback_query_id:string ->
    ?text:string option ->
    ?show_alert:bool -> unit -> unit TelegramApi.Result.result Lwt.t
  val answer_inline_query :
    inline_query_id:string ->
    results:TelegramApi.InlineQuery.Out.inline_query_result list ->
    ?cache_time:int option ->
    ?is_personal:bool option ->
    ?next_offset:string option ->
    unit -> unit TelegramApi.Result.result Lwt.t
  val edit_message_text :
    ?chat_id:string option ->
    ?message_id:int option ->
    ?inline_message_id:string option ->
    text:string ->
    parse_mode:TelegramApi.ParseMode.parse_mode option ->
    disable_web_page_preview:bool ->
    reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
    unit -> unit TelegramApi.Result.result Lwt.t
  val edit_message_caption :
    ?chat_id:string option ->
    ?message_id:int option ->
    ?inline_message_id:string option ->
    caption:string ->
    reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
    unit -> unit TelegramApi.Result.result Lwt.t
  val edit_message_reply_markup :
    ?chat_id:string option ->
    ?message_id:int option ->
    ?inline_message_id:string option ->
    reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
    unit -> unit TelegramApi.Result.result Lwt.t
  val get_updates :
    TelegramApi.Update.update list TelegramApi.Result.result Lwt.t
  val peek_update : TelegramApi.Update.update TelegramApi.Result.result Lwt.t
  val pop_update :
    ?run_cmds:bool ->
    unit -> TelegramApi.Update.update TelegramApi.Result.result Lwt.t
  val run : ?log:bool -> unit -> unit
end