#pragma once #include #include #include #include #include namespace notifications { constexpr inline const wchar_t TOAST_ACTIVATED_LAUNCH_ARG[] = L"-ToastActivated"; void register_background_toast_handler(); void run_desktop_app_activator_loop(); struct snooze_duration { std::wstring label; int minutes; }; struct snooze_button { std::wstring snooze_title; std::vector durations; }; struct link_button { std::wstring label; std::wstring url; bool context_menu = false; }; struct background_activated_button { std::wstring label; bool context_menu = false; }; struct toast_params { std::optional tag; bool resend_if_scheduled = true; }; using action_t = std::variant; void show_toast(std::wstring plaintext_message, toast_params params = {}); void show_toast_with_activations(std::wstring plaintext_message, std::wstring_view background_handler_id, std::vector actions, toast_params params = {}); }