import CppUtils.Terminal.Area:Widget;
import CppUtils;
virtual Widget::~Widget() noexcept;
auto Widget::clearWidgetManager() noexcept -> void;
[[nodiscard]] virtual auto Widget::getSize() const noexcept -> Container::Size2<> = 0;
virtual auto Widget::draw(WritableAreaView& view) noexcept -> void = 0;
virtual auto Widget::onMouseEvent([[maybe_unused]] const Mouse::Event& event) -> bool;
template <std::derived_from< Widget > T, class... Args>auto Widget::newWidget(this auto&& self [[clang::lifetimebound, msvc::lifetimebound]], Args&&... args) -> T&;
auto Widget::drawFinished() noexcept -> void;
[[nodiscard]] auto Widget::needUpdate() const noexcept -> bool;
auto Widget::setWidgetManager(WidgetManager& widgetManager) noexcept -> void;
[[nodiscard]] auto Widget::getWidgetManager() -> WidgetManager&;
[[nodiscard]] auto Widget::hasWidgetManager() const noexcept -> bool;
auto Widget::requestUpdate() -> void;
auto Widget::requestUpdate(Chrono::Duration auto delay) -> void;