#pragma once

#include <cstdint>

#include "app_core/canvas_hotkey.h"
#include "app_core/canvas_tool_ui.h"
#include "foundation/result.h"

class App;
class NodeCanvas;
class Node;
class Event;
enum class kEventResult : uint8_t;

namespace pp::panopainter {

[[nodiscard]] pp::foundation::Status execute_legacy_canvas_tool_plan(
    App& app,
    const pp::app::CanvasToolPlan& plan,
    Node* toolbar_button = nullptr);
[[nodiscard]] pp::foundation::Status execute_legacy_canvas_input_tool_plan(
    const pp::app::CanvasToolPlan& plan);
[[nodiscard]] pp::foundation::Status execute_legacy_canvas_hotkey_plan(
    const pp::app::CanvasHotkeyPlan& plan);
[[nodiscard]] kEventResult handle_legacy_node_canvas_event(NodeCanvas& node_canvas, Event* e);

} // namespace pp::panopainter
