-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()})), widgets :: list(telega@dialog@types:keyboard_widget(any(), any(), any(), any())), on_sub_result :: gleam@option:option(fun((any(), gleam@dict:dict(binary(), binary()), telega@bot:context(any(), any(), any())) -> {ok, telega@dialog@types:dialog_action(any())} | {error, any()})) }).