// Copyright (C) 2026 UnionTech Software Technology Co., Ltd.
// SPDX-License-Identifier: Apache-2.0 OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only

// Aggregate forward declarations for every wlroots struct tag, companion to
// wlr_all.h (which provides the full definitions). Include this header
// instead of sprinkling `struct wlr_xxx;` declarations across waylib and
// treeland headers — declarations are free at compile time (no definition is
// expanded), so declaring everything once keeps every header self-contained
// without pulling in heavy wlr_* headers.
//
// Note: forward declarations have no linkage semantics, so no extern "C"
// guard is needed here (unlike wlr_all.h, which includes the definitions).

#pragma once

struct wlr_addon;
struct wlr_addon_interface;
struct wlr_addon_set;
struct wlr_allocator;
struct wlr_allocator_interface;
struct wlr_alpha_modifier_surface_v1_state;
struct wlr_alpha_modifier_v1;
struct wlr_backend;
struct wlr_backend_impl;
struct wlr_backend_output_state;
struct wlr_box;
struct wlr_buffer;
struct wlr_buffer_impl;
struct wlr_buffer_pass_options;
struct wlr_buffer_resource_interface;
struct wlr_client_buffer;
struct wlr_color_management_v1;
struct wlr_compositor;
struct wlr_cursor;
struct wlr_cursor_shape_manager_v1;
struct wlr_data_control_manager_v1;
struct wlr_data_device;
struct wlr_data_device_manager;
struct wlr_data_source;
struct wlr_dmabuf_attributes;
struct wlr_drag;
struct wlr_drm_backend;
struct wlr_drm_connector;
struct wlr_drm_format;
struct wlr_drm_format_set;
struct wlr_export_dmabuf_manager_v1;
struct wlr_ext_foreign_toplevel_handle_v1;
struct wlr_ext_foreign_toplevel_handle_v1_state;
struct wlr_ext_foreign_toplevel_list_v1;
struct wlr_ext_foreign_toplevel_list_v1_clients;
struct wlr_ext_foreign_toplevel_list_v1_outputs;
struct wlr_ext_image_capture_copy_frame_v1;
struct wlr_ext_image_capture_source_v1;
struct wlr_ext_foreign_toplevel_image_capture_source_manager_v1;
struct wlr_ext_foreign_toplevel_image_capture_source_manager_v1_request;
struct wlr_foreign_toplevel_manager_v1;
struct wlr_foreign_toplevel_handle_v1;
struct wlr_gamma_control_manager_v1;
struct wlr_gamma_control_v1;
struct wlr_gles2_renderer;
struct wlr_headless_backend;
struct wlr_idle_inhibit_manager_v1;
struct wlr_idle_inhibitor_v1;
struct wlr_idle_notifier_v1;
struct wlr_input_device;
struct wlr_input_device_impl;
struct wlr_input_method_keyboard_grab_v2;
struct wlr_input_method_manager_v2;
struct wlr_input_method_v2;
struct wlr_input_method_v2_state;
struct wlr_input_popup_surface_v2;
struct wlr_keyboard;
struct wlr_keyboard_group;
struct wlr_keyboard_modifiers;
struct wlr_keyboard_shortcuts_inhibitor_v1;
struct wlr_keyboard_shortcuts_inhibit_manager_v1;
struct wlr_layer_shell_v1;
struct wlr_layer_surface_v1;
struct wlr_layer_surface_v1_state;
struct wlr_linux_dmabuf_feedback_v1;
struct wlr_linux_dmabuf_v1;
struct wlr_linux_dmabuf_v1_buffer;
struct wlr_output;
struct wlr_output_configuration_v1;
struct wlr_output_configuration_head_v1;
struct wlr_output_cursor;
struct wlr_output_damage;
struct wlr_output_layout;
struct wlr_output_layer;
struct wlr_output_layer_state;
struct wlr_output_management_v1;
struct wlr_output_manager_v1;
struct wlr_output_mode;
struct wlr_output_power_manager_v1;
struct wlr_output_power_v1_set_mode_event;
struct wlr_output_state;
struct wlr_pointer;
struct wlr_pointer_axis_event;
struct wlr_pointer_button_event;
struct wlr_pointer_gestures_v1;
struct wlr_pointer_hold_begin_event;
struct wlr_pointer_hold_end_event;
struct wlr_pointer_motion_absolute_event;
struct wlr_pointer_motion_event;
struct wlr_pointer_pinch_begin_event;
struct wlr_pointer_pinch_end_event;
struct wlr_pointer_pinch_update_event;
struct wlr_pointer_swipe_begin_event;
struct wlr_pointer_swipe_end_event;
struct wlr_pointer_swipe_update_event;
struct wlr_presentation;
struct wlr_primary_selection_v1_device_manager;
struct wlr_primary_selection_v1_source;
struct wlr_renderer;
struct wlr_renderer_impl;
struct wlr_scene;
struct wlr_scene_buffer;
struct wlr_scene_node;
struct wlr_scene_rect;
struct wlr_scene_surface;
struct wlr_scene_tree;
struct wlr_screencopy_manager_v1;
struct wlr_seat;
struct wlr_seat_client;
struct wlr_seat_keyboard_grab;
struct wlr_seat_pointer_request_set_cursor_event;
struct wlr_security_context_manager_v1;
struct wlr_security_context_v1;
struct wlr_session;
struct wlr_session_lock_manager_v1;
struct wlr_session_lock_surface_v1;
struct wlr_session_lock_v1;
struct wlr_shm;
struct wlr_shm_attributes;
struct wlr_single_pixel_buffer_v1;
struct wlr_single_pixel_buffer_v1_manager;
struct wlr_subcompositor;
struct wlr_subsurface;
struct wlr_surface;
struct wlr_surface_state;
struct wlr_swapchain;
struct wlr_swapchain_slot;
struct wlr_tablet_pad;
struct wlr_tablet_pad_gesture;
struct wlr_tablet_tool;
struct wlr_tablet_tool_axis_event;
struct wlr_tablet_tool_button_event;
struct wlr_tablet_tool_proximity_event;
struct wlr_tablet_tool_tip_event;
struct wlr_tablet_v2;
struct wlr_tablet_v2_tablet;
struct wlr_text_input_manager_v3;
struct wlr_text_input_v3;
struct wlr_text_input_v3_state;
struct wlr_texture;
struct wlr_texture_impl;
struct wlr_touch;
struct wlr_touch_cancel_event;
struct wlr_touch_down_event;
struct wlr_touch_motion_event;
struct wlr_touch_up_event;
struct wlr_virtual_keyboard_manager_v1;
struct wlr_virtual_keyboard_v1;
struct wlr_vulkan_renderer;
struct wlr_vulkan_texture;
struct wlr_xcursor;
struct wlr_xcursor_manager;
struct wlr_xdg_decoration_manager_v1;
struct wlr_xdg_dialog_manager_v1;
struct wlr_xdg_dialog_v1;
struct wlr_xdg_foreign_registry;
struct wlr_xdg_foreign_v1;
struct wlr_xdg_foreign_v2;
struct wlr_xdg_output_manager_v1;
struct wlr_xdg_popup;
struct wlr_xdg_popup_grab;
struct wlr_xdg_shell;
struct wlr_xdg_surface;
struct wlr_xdg_toplevel;
struct wlr_xdg_toplevel_tag_manager_v1;
struct wlr_xdg_toplevel_tag_v1;
struct wlr_xdg_wm_dialog_v1;
struct wlr_xwayland;
struct wlr_xwayland_surface;
struct wlr_xwayland_surface_state;
