-record(bot, { self :: gleam@erlang@process:subject(telega@bot:bot_message()), config :: telega@internal@config:config(), bot_info :: telega@model@types:user(), catch_handler :: fun((telega@bot:context(any(), any(), any()), any()) -> {ok, nil} | {error, any()}), session_settings :: telega@bot:session_settings(any(), any()), dependencies :: any(), router_handler :: fun((telega@bot:context(any(), any(), any()), telega@update:update()) -> {ok, telega@bot:context(any(), any(), any())} | {error, any()}), pre_handlers :: list(fun((telega@bot:pre_context(any())) -> telega@bot:pre_router_result())), registry :: telega@internal@registry:registry(telega@bot:chat_instance_message(any(), any(), any())), chat_factory :: gleam@otp@factory_supervisor:supervisor(telega@bot:chat_instance_args(any(), any(), any()), gleam@erlang@process:subject(telega@bot:chat_instance_message(any(), any(), any()))), accepting :: boolean(), in_flight :: integer(), draining :: boolean(), drain_count :: integer(), drain_waiter :: gleam@option:option(gleam@erlang@process:subject(integer())) }).