-record(window, { id :: binary(), render :: fun((any(), telega@bot:context(any(), any(), any())) -> telega@dialog@types:rendered_window()), on_action :: fun((any(), telega@dialog@types:action_event(), telega@bot:context(any(), any(), any())) -> {ok, telega@dialog@types:dialog_action(any())} | {error, any()}), on_text :: gleam@option:option(fun((any(), binary(), telega@bot:context(any(), any(), any())) -> {ok, telega@dialog@types:dialog_action(any())} | {error, any()})), on_message :: gleam@option:option(fun((any(), telega@dialog@types:message_input(), telega@bot:context(any(), any(), any())) -> {ok, telega@dialog@types:dialog_action(any())} | {error, any()})), widgets :: list(telega@dialog@types:keyboard_widget(any(), any(), any(), any())), on_sub_result :: gleam@dict:dict(binary(), fun((any(), binary(), telega@bot:context(any(), any(), any())) -> {ok, telega@dialog@types:dialog_action(any())} | {error, any()})), show_mode :: gleam@option:option(telega@dialog@types:show_mode()) }).