-record(router, { commands :: gleam@dict:dict(binary(), fun((telega@bot:context(any(), any(), any()), telega@update:update()) -> {ok, telega@bot:context(any(), any(), any())} | {error, any()})), command_descriptions :: gleam@dict:dict(binary(), binary()), callbacks :: gleam@dict:dict(binary(), fun((telega@bot:context(any(), any(), any()), telega@update:update()) -> {ok, telega@bot:context(any(), any(), any())} | {error, any()})), routes :: list(telega@router:route(any(), any(), any())), fallback :: gleam@option:option(fun((telega@bot:context(any(), any(), any()), telega@update:update()) -> {ok, telega@bot:context(any(), any(), any())} | {error, any()})), middleware :: list(fun((fun((telega@bot:context(any(), any(), any()), telega@update:update()) -> {ok, telega@bot:context(any(), any(), any())} | {error, any()})) -> fun((telega@bot:context(any(), any(), any()), telega@update:update()) -> {ok, telega@bot:context(any(), any(), any())} | {error, any()}))), catch_handler :: gleam@option:option(fun((any()) -> {ok, telega@bot:context(any(), any(), any())} | {error, any()})), name :: binary() }).