/* astal-niri.h generated by valac 0.56.18-dirty, the Vala compiler, do not modify */

#ifndef __ASTAL_NIRI_H__
#define __ASTAL_NIRI_H__

#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <glib-object.h>
#include <float.h>
#include <math.h>
#include <json-glib/json-glib.h>
#include <gio/gio.h>

G_BEGIN_DECLS

#define ASTAL_NIRI_MAJOR_VERSION 0
#define ASTAL_NIRI_MINOR_VERSION 1
#define ASTAL_NIRI_MICRO_VERSION 0
#define ASTAL_NIRI_VERSION "0.1.0"
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define ASTAL_NIRI_TYPE_NIRI (astal_niri_niri_get_type ())
#define ASTAL_NIRI_NIRI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_NIRI_TYPE_NIRI, AstalNiriNiri))
#define ASTAL_NIRI_NIRI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_NIRI_TYPE_NIRI, AstalNiriNiriClass))
#define ASTAL_NIRI_IS_NIRI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_NIRI_TYPE_NIRI))
#define ASTAL_NIRI_IS_NIRI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_NIRI_TYPE_NIRI))
#define ASTAL_NIRI_NIRI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_NIRI_TYPE_NIRI, AstalNiriNiriClass))

typedef struct _AstalNiriNiri AstalNiriNiri;
typedef struct _AstalNiriNiriClass AstalNiriNiriClass;
typedef struct _AstalNiriNiriPrivate AstalNiriNiriPrivate;

#define ASTAL_NIRI_TYPE_WORKSPACE (astal_niri_workspace_get_type ())
#define ASTAL_NIRI_WORKSPACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_NIRI_TYPE_WORKSPACE, AstalNiriWorkspace))
#define ASTAL_NIRI_WORKSPACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_NIRI_TYPE_WORKSPACE, AstalNiriWorkspaceClass))
#define ASTAL_NIRI_IS_WORKSPACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_NIRI_TYPE_WORKSPACE))
#define ASTAL_NIRI_IS_WORKSPACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_NIRI_TYPE_WORKSPACE))
#define ASTAL_NIRI_WORKSPACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_NIRI_TYPE_WORKSPACE, AstalNiriWorkspaceClass))

typedef struct _AstalNiriWorkspace AstalNiriWorkspace;
typedef struct _AstalNiriWorkspaceClass AstalNiriWorkspaceClass;

#define ASTAL_NIRI_TYPE_WINDOW (astal_niri_window_get_type ())
#define ASTAL_NIRI_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_NIRI_TYPE_WINDOW, AstalNiriWindow))
#define ASTAL_NIRI_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_NIRI_TYPE_WINDOW, AstalNiriWindowClass))
#define ASTAL_NIRI_IS_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_NIRI_TYPE_WINDOW))
#define ASTAL_NIRI_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_NIRI_TYPE_WINDOW))
#define ASTAL_NIRI_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_NIRI_TYPE_WINDOW, AstalNiriWindowClass))

typedef struct _AstalNiriWindow AstalNiriWindow;
typedef struct _AstalNiriWindowClass AstalNiriWindowClass;

#define ASTAL_NIRI_TYPE_OUTPUT (astal_niri_output_get_type ())
#define ASTAL_NIRI_OUTPUT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_NIRI_TYPE_OUTPUT, AstalNiriOutput))
#define ASTAL_NIRI_OUTPUT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_NIRI_TYPE_OUTPUT, AstalNiriOutputClass))
#define ASTAL_NIRI_IS_OUTPUT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_NIRI_TYPE_OUTPUT))
#define ASTAL_NIRI_IS_OUTPUT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_NIRI_TYPE_OUTPUT))
#define ASTAL_NIRI_OUTPUT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_NIRI_TYPE_OUTPUT, AstalNiriOutputClass))

typedef struct _AstalNiriOutput AstalNiriOutput;
typedef struct _AstalNiriOutputClass AstalNiriOutputClass;

#define ASTAL_NIRI_TYPE_OVERVIEW (astal_niri_overview_get_type ())
#define ASTAL_NIRI_OVERVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_NIRI_TYPE_OVERVIEW, AstalNiriOverview))
#define ASTAL_NIRI_OVERVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_NIRI_TYPE_OVERVIEW, AstalNiriOverviewClass))
#define ASTAL_NIRI_IS_OVERVIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_NIRI_TYPE_OVERVIEW))
#define ASTAL_NIRI_IS_OVERVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_NIRI_TYPE_OVERVIEW))
#define ASTAL_NIRI_OVERVIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_NIRI_TYPE_OVERVIEW, AstalNiriOverviewClass))

typedef struct _AstalNiriOverview AstalNiriOverview;
typedef struct _AstalNiriOverviewClass AstalNiriOverviewClass;
typedef struct _AstalNiriWindowPrivate AstalNiriWindowPrivate;

#define ASTAL_NIRI_TYPE_WINDOW_LAYOUT (astal_niri_window_layout_get_type ())
typedef struct _AstalNiriWindowLayout AstalNiriWindowLayout;
typedef struct _AstalNiriWorkspacePrivate AstalNiriWorkspacePrivate;
typedef struct _AstalNiriOutputPrivate AstalNiriOutputPrivate;

#define ASTAL_NIRI_TYPE_PHYSICAL_SIZE (astal_niri_physical_size_get_type ())
typedef struct _AstalNiriPhysicalSize AstalNiriPhysicalSize;

#define ASTAL_NIRI_TYPE_MODE (astal_niri_mode_get_type ())
typedef struct _AstalNiriMode AstalNiriMode;

#define ASTAL_NIRI_TYPE_LOGICAL_OUTPUT (astal_niri_logical_output_get_type ())
typedef struct _AstalNiriLogicalOutput AstalNiriLogicalOutput;
typedef enum  {
	ASTAL_NIRI_WORKSPACE_REFERENCE_ARG_TAG_Id,
	ASTAL_NIRI_WORKSPACE_REFERENCE_ARG_TAG_Index,
	ASTAL_NIRI_WORKSPACE_REFERENCE_ARG_TAG_Name
} AstalNiriWorkspaceReferenceArgTag;

#define ASTAL_NIRI_TYPE_WORKSPACE_REFERENCE_ARG_TAG (astal_niri_workspace_reference_arg_tag_get_type ())
typedef enum  {
	ASTAL_NIRI_COLUMN_DISPLAY_TAG_Normal,
	ASTAL_NIRI_COLUMN_DISPLAY_TAG_Tabbed
} AstalNiriColumnDisplayTag;

#define ASTAL_NIRI_TYPE_COLUMN_DISPLAY_TAG (astal_niri_column_display_tag_get_type ())
typedef enum  {
	ASTAL_NIRI_SIZE_CHANGE_TAG_SetFixed,
	ASTAL_NIRI_SIZE_CHANGE_TAG_SetProportion,
	ASTAL_NIRI_SIZE_CHANGE_TAG_AdjustFixed,
	ASTAL_NIRI_SIZE_CHANGE_TAG_AdjustProportion
} AstalNiriSizeChangeTag;

#define ASTAL_NIRI_TYPE_SIZE_CHANGE_TAG (astal_niri_size_change_tag_get_type ())
typedef enum  {
	ASTAL_NIRI_LAYOUT_SWITCH_TARGET_TAG_Next,
	ASTAL_NIRI_LAYOUT_SWITCH_TARGET_TAG_Prev,
	ASTAL_NIRI_LAYOUT_SWITCH_TARGET_TAG_Index
} AstalNiriLayoutSwitchTargetTag;

#define ASTAL_NIRI_TYPE_LAYOUT_SWITCH_TARGET_TAG (astal_niri_layout_switch_target_tag_get_type ())
typedef struct _AstalNiriOverviewPrivate AstalNiriOverviewPrivate;

#define ASTAL_NIRI_TYPE_MSG (astal_niri_msg_get_type ())
#define ASTAL_NIRI_MSG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_NIRI_TYPE_MSG, AstalNirimsg))
#define ASTAL_NIRI_MSG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_NIRI_TYPE_MSG, AstalNirimsgClass))
#define ASTAL_NIRI_IS_MSG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_NIRI_TYPE_MSG))
#define ASTAL_NIRI_IS_MSG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_NIRI_TYPE_MSG))
#define ASTAL_NIRI_MSG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_NIRI_TYPE_MSG, AstalNirimsgClass))

typedef struct _AstalNirimsg AstalNirimsg;
typedef struct _AstalNirimsgClass AstalNirimsgClass;
typedef struct _AstalNirimsgPrivate AstalNirimsgPrivate;

struct _AstalNiriNiri {
	GObject parent_instance;
	AstalNiriNiriPrivate * priv;
	GHashTable* _workspaces;
	GHashTable* _windows;
	GHashTable* _outputs;
};

struct _AstalNiriNiriClass {
	GObjectClass parent_class;
};

struct _AstalNiriWindow {
	GObject parent_instance;
	AstalNiriWindowPrivate * priv;
};

struct _AstalNiriWindowClass {
	GObjectClass parent_class;
};

struct _AstalNiriWindowLayout {
	guint pos_in_scrolling_layout[2];
	gdouble tile_size[2];
	gint32 window_size[2];
	gdouble tile_pos_in_workspace_view[2];
	gdouble window_offset_in_tile[2];
};

struct _AstalNiriWorkspace {
	GObject parent_instance;
	AstalNiriWorkspacePrivate * priv;
};

struct _AstalNiriWorkspaceClass {
	GObjectClass parent_class;
};

struct _AstalNiriOutput {
	GObject parent_instance;
	AstalNiriOutputPrivate * priv;
};

struct _AstalNiriOutputClass {
	GObjectClass parent_class;
};

struct _AstalNiriPhysicalSize {
	guint32 x;
	guint32 y;
};

struct _AstalNiriMode {
	gint64 _width;
	gint64 _height;
	gint64 _refresh_rate;
	gboolean _is_preferred;
};

struct _AstalNiriLogicalOutput {
	gint32 _x;
	gint32 _y;
	guint32 _width;
	guint32 _height;
	gfloat _scale;
	gchar* _transform;
};

struct _AstalNiriOverview {
	GObject parent_instance;
	AstalNiriOverviewPrivate * priv;
};

struct _AstalNiriOverviewClass {
	GObjectClass parent_class;
};

struct _AstalNirimsg {
	GObject parent_instance;
	AstalNirimsgPrivate * priv;
};

struct _AstalNirimsgClass {
	GObjectClass parent_class;
};

VALA_EXTERN GType astal_niri_niri_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalNiriNiri, g_object_unref)
VALA_EXTERN AstalNiriNiri* astal_niri_get_default (void);
VALA_EXTERN GType astal_niri_workspace_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalNiriWorkspace, g_object_unref)
VALA_EXTERN GType astal_niri_window_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalNiriWindow, g_object_unref)
VALA_EXTERN GType astal_niri_output_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalNiriOutput, g_object_unref)
VALA_EXTERN AstalNiriNiri* astal_niri_niri_get_default (void);
VALA_EXTERN AstalNiriWindow* astal_niri_niri_get_window (AstalNiriNiri* self,
                                             guint64 id);
VALA_EXTERN AstalNiriWorkspace* astal_niri_niri_get_workspace (AstalNiriNiri* self,
                                                   guint64 id);
VALA_EXTERN AstalNiriNiri* astal_niri_niri_new (void);
VALA_EXTERN AstalNiriNiri* astal_niri_niri_construct (GType object_type);
VALA_EXTERN guint8 astal_niri_niri_get_keyboard_layout_idx (AstalNiriNiri* self);
VALA_EXTERN gboolean astal_niri_niri_get_config_load_failed (AstalNiriNiri* self);
VALA_EXTERN GType astal_niri_overview_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalNiriOverview, g_object_unref)
VALA_EXTERN AstalNiriOverview* astal_niri_niri_get_overview (AstalNiriNiri* self);
VALA_EXTERN AstalNiriWorkspace* astal_niri_niri_get_focused_workspace (AstalNiriNiri* self);
VALA_EXTERN AstalNiriWindow* astal_niri_niri_get_focused_window (AstalNiriNiri* self);
VALA_EXTERN AstalNiriOutput* astal_niri_niri_get_focused_output (AstalNiriNiri* self);
VALA_EXTERN GList* astal_niri_niri_get_windows (AstalNiriNiri* self);
VALA_EXTERN GList* astal_niri_niri_get_outputs (AstalNiriNiri* self);
VALA_EXTERN GList* astal_niri_niri_get_workspaces (AstalNiriNiri* self);
VALA_EXTERN gboolean astal_niri_window_focus (AstalNiriWindow* self,
                                  gint id);
VALA_EXTERN gboolean astal_niri_window_set_urgency (AstalNiriWindow* self,
                                        gboolean new_urgency);
VALA_EXTERN gboolean astal_niri_window_move_to_workspace (AstalNiriWindow* self,
                                              gint workspace_id,
                                              gboolean* focus);
VALA_EXTERN gboolean astal_niri_window_move_to_monitor (AstalNiriWindow* self,
                                            const gchar* output);
VALA_EXTERN AstalNiriWindow* astal_niri_window_new (void);
VALA_EXTERN AstalNiriWindow* astal_niri_window_construct (GType object_type);
VALA_EXTERN guint64 astal_niri_window_get_id (AstalNiriWindow* self);
VALA_EXTERN const gchar* astal_niri_window_get_title (AstalNiriWindow* self);
VALA_EXTERN const gchar* astal_niri_window_get_app_id (AstalNiriWindow* self);
VALA_EXTERN guint64 astal_niri_window_get_workspace_id (AstalNiriWindow* self);
VALA_EXTERN gboolean astal_niri_window_get_is_urgent (AstalNiriWindow* self);
VALA_EXTERN gboolean astal_niri_window_get_is_focused (AstalNiriWindow* self);
VALA_EXTERN gboolean astal_niri_window_get_is_floating (AstalNiriWindow* self);
VALA_EXTERN GType astal_niri_window_layout_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AstalNiriWindowLayout* astal_niri_window_layout_dup (const AstalNiriWindowLayout* self);
VALA_EXTERN void astal_niri_window_layout_free (AstalNiriWindowLayout* self);
VALA_EXTERN void astal_niri_window_get_layout (AstalNiriWindow* self,
                                   AstalNiriWindowLayout * result);
VALA_EXTERN AstalNiriWorkspace* astal_niri_window_get_workspace (AstalNiriWindow* self);
VALA_EXTERN gboolean astal_niri_workspace_focus (AstalNiriWorkspace* self);
VALA_EXTERN gboolean astal_niri_workspace_rename (AstalNiriWorkspace* self,
                                      const gchar* name);
VALA_EXTERN gboolean astal_niri_workspace_move_to_monitor (AstalNiriWorkspace* self,
                                               const gchar* output);
VALA_EXTERN AstalNiriWorkspace* astal_niri_workspace_new (void);
VALA_EXTERN AstalNiriWorkspace* astal_niri_workspace_construct (GType object_type);
VALA_EXTERN guint64 astal_niri_workspace_get_id (AstalNiriWorkspace* self);
VALA_EXTERN guint8 astal_niri_workspace_get_idx (AstalNiriWorkspace* self);
VALA_EXTERN const gchar* astal_niri_workspace_get_name (AstalNiriWorkspace* self);
VALA_EXTERN const gchar* astal_niri_workspace_get_output (AstalNiriWorkspace* self);
VALA_EXTERN gboolean astal_niri_workspace_get_is_urgent (AstalNiriWorkspace* self);
VALA_EXTERN gboolean astal_niri_workspace_get_is_active (AstalNiriWorkspace* self);
VALA_EXTERN gboolean astal_niri_workspace_get_is_focused (AstalNiriWorkspace* self);
VALA_EXTERN guint64 astal_niri_workspace_get_active_window_id (AstalNiriWorkspace* self);
VALA_EXTERN AstalNiriWindow* astal_niri_workspace_get_active_window (AstalNiriWorkspace* self);
VALA_EXTERN GList* astal_niri_workspace_get_windows (AstalNiriWorkspace* self);
VALA_EXTERN gboolean astal_niri_output_focus (AstalNiriOutput* self);
VALA_EXTERN AstalNiriOutput* astal_niri_output_new (void);
VALA_EXTERN AstalNiriOutput* astal_niri_output_construct (GType object_type);
VALA_EXTERN const gchar* astal_niri_output_get_name (AstalNiriOutput* self);
VALA_EXTERN const gchar* astal_niri_output_get_make (AstalNiriOutput* self);
VALA_EXTERN const gchar* astal_niri_output_get_model (AstalNiriOutput* self);
VALA_EXTERN const gchar* astal_niri_output_get_serial (AstalNiriOutput* self);
VALA_EXTERN GType astal_niri_physical_size_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AstalNiriPhysicalSize* astal_niri_physical_size_dup (const AstalNiriPhysicalSize* self);
VALA_EXTERN void astal_niri_physical_size_free (AstalNiriPhysicalSize* self);
VALA_EXTERN AstalNiriPhysicalSize* astal_niri_output_get_physical_size (AstalNiriOutput* self);
VALA_EXTERN GType astal_niri_mode_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AstalNiriMode* astal_niri_mode_dup (const AstalNiriMode* self);
VALA_EXTERN void astal_niri_mode_free (AstalNiriMode* self);
VALA_EXTERN GArray* astal_niri_output_get_modes (AstalNiriOutput* self);
VALA_EXTERN gint64 astal_niri_output_get_current_mode (AstalNiriOutput* self);
VALA_EXTERN gboolean astal_niri_output_get_vrr_supported (AstalNiriOutput* self);
VALA_EXTERN gboolean astal_niri_output_get_vrr_enabled (AstalNiriOutput* self);
VALA_EXTERN GType astal_niri_logical_output_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AstalNiriLogicalOutput* astal_niri_logical_output_dup (const AstalNiriLogicalOutput* self);
VALA_EXTERN void astal_niri_logical_output_free (AstalNiriLogicalOutput* self);
VALA_EXTERN void astal_niri_logical_output_copy (const AstalNiriLogicalOutput* self,
                                     AstalNiriLogicalOutput* dest);
VALA_EXTERN void astal_niri_logical_output_destroy (AstalNiriLogicalOutput* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (AstalNiriLogicalOutput, astal_niri_logical_output_destroy)
VALA_EXTERN AstalNiriLogicalOutput* astal_niri_output_get_logical (AstalNiriOutput* self);
VALA_EXTERN GList* astal_niri_output_get_workspaces (AstalNiriOutput* self);
VALA_EXTERN void astal_niri_physical_size_init_from_json (AstalNiriPhysicalSize *self,
                                              JsonArray* size);
VALA_EXTERN gint32 astal_niri_logical_output_get_x (AstalNiriLogicalOutput* self);
VALA_EXTERN gint32 astal_niri_logical_output_get_y (AstalNiriLogicalOutput* self);
VALA_EXTERN guint32 astal_niri_logical_output_get_width (AstalNiriLogicalOutput* self);
VALA_EXTERN guint32 astal_niri_logical_output_get_height (AstalNiriLogicalOutput* self);
VALA_EXTERN gfloat astal_niri_logical_output_get_scale (AstalNiriLogicalOutput* self);
VALA_EXTERN const gchar* astal_niri_logical_output_get_transform (AstalNiriLogicalOutput* self);
VALA_EXTERN gint64 astal_niri_mode_get_width (AstalNiriMode* self);
VALA_EXTERN gint64 astal_niri_mode_get_height (AstalNiriMode* self);
VALA_EXTERN gint64 astal_niri_mode_get_refresh_rate (AstalNiriMode* self);
VALA_EXTERN gboolean astal_niri_mode_get_is_preferred (AstalNiriMode* self);
VALA_EXTERN GType astal_niri_workspace_reference_arg_tag_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType astal_niri_column_display_tag_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType astal_niri_size_change_tag_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType astal_niri_layout_switch_target_tag_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void astal_niri_overview_toggle (AstalNiriOverview* self,
                                 GAsyncReadyCallback _callback_,
                                 gpointer _user_data_);
VALA_EXTERN gboolean astal_niri_overview_toggle_finish (AstalNiriOverview* self,
                                            GAsyncResult* _res_);
VALA_EXTERN AstalNiriOverview* astal_niri_overview_new (void);
VALA_EXTERN AstalNiriOverview* astal_niri_overview_construct (GType object_type);
VALA_EXTERN gboolean astal_niri_overview_get_is_open (AstalNiriOverview* self);
VALA_EXTERN GType astal_niri_msg_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalNirimsg, g_object_unref)
VALA_EXTERN gchar* astal_niri_msg_send (const gchar* message);
VALA_EXTERN void astal_niri_msg_send_async (const gchar* message,
                                GAsyncReadyCallback _callback_,
                                gpointer _user_data_);
VALA_EXTERN gchar* astal_niri_msg_send_finish (GAsyncResult* _res_);
VALA_EXTERN gboolean astal_niri_msg_center_column (void);
VALA_EXTERN gboolean astal_niri_msg_center_visible_columns (void);
VALA_EXTERN gboolean astal_niri_msg_center_window (gint* id);
VALA_EXTERN gboolean astal_niri_msg_clear_dynamic_cast_target (void);
VALA_EXTERN gboolean astal_niri_msg_close_overview (void);
VALA_EXTERN gboolean astal_niri_msg_close_window (gint* id);
VALA_EXTERN gboolean astal_niri_msg_consume_or_expel_window_left (gint* id);
VALA_EXTERN gboolean astal_niri_msg_consume_or_expel_window_right (gint* id);
VALA_EXTERN gboolean astal_niri_msg_consume_window_into_column (void);
VALA_EXTERN gboolean astal_niri_msg_debug_toggle_damage (void);
VALA_EXTERN gboolean astal_niri_msg_debug_toggle_opaque_regions (void);
VALA_EXTERN gboolean astal_niri_msg_do_screen_transition (gint* delay_ms);
VALA_EXTERN gboolean astal_niri_msg_expand_column_to_available_width (void);
VALA_EXTERN gboolean astal_niri_msg_expel_window_from_column (void);
VALA_EXTERN gboolean astal_niri_msg_focus_column (gint index);
VALA_EXTERN gboolean astal_niri_msg_focus_column_first (void);
VALA_EXTERN gboolean astal_niri_msg_focus_column_last (void);
VALA_EXTERN gboolean astal_niri_msg_focus_column_left (void);
VALA_EXTERN gboolean astal_niri_msg_focus_column_left_or_last (void);
VALA_EXTERN gboolean astal_niri_msg_focus_column_or_monitor_left (void);
VALA_EXTERN gboolean astal_niri_msg_focus_column_or_monitor_right (void);
VALA_EXTERN gboolean astal_niri_msg_focus_column_right (void);
VALA_EXTERN gboolean astal_niri_msg_focus_column_right_or_first (void);
VALA_EXTERN gboolean astal_niri_msg_focus_floating (void);
VALA_EXTERN gboolean astal_niri_msg_focus_monitor (const gchar* output);
VALA_EXTERN gboolean astal_niri_msg_focus_monitor_down (void);
VALA_EXTERN gboolean astal_niri_msg_focus_monitor_left (void);
VALA_EXTERN gboolean astal_niri_msg_focus_monitor_next (void);
VALA_EXTERN gboolean astal_niri_msg_focus_monitor_previous (void);
VALA_EXTERN gboolean astal_niri_msg_focus_monitor_right (void);
VALA_EXTERN gboolean astal_niri_msg_focus_monitor_up (void);
VALA_EXTERN gboolean astal_niri_msg_focus_tiling (void);
VALA_EXTERN gboolean astal_niri_msg_focus_window (gint id);
VALA_EXTERN gboolean astal_niri_msg_focus_window_bottom (void);
VALA_EXTERN gboolean astal_niri_msg_focus_window_down (void);
VALA_EXTERN gboolean astal_niri_msg_focus_window_down_or_column_left (void);
VALA_EXTERN gboolean astal_niri_msg_focus_window_down_or_column_right (void);
VALA_EXTERN gboolean astal_niri_msg_focus_window_down_or_top (void);
VALA_EXTERN gboolean astal_niri_msg_focus_window_or_workspace_down (void);
VALA_EXTERN gboolean astal_niri_msg_focus_window_or_workspace_up (void);
VALA_EXTERN gboolean astal_niri_msg_focus_window_in_column (gint index);
VALA_EXTERN gboolean astal_niri_msg_focus_window_or_monitor_down (void);
VALA_EXTERN gboolean astal_niri_msg_focus_window_or_monitor_up (void);
VALA_EXTERN gboolean astal_niri_msg_focus_window_previous (void);
VALA_EXTERN gboolean astal_niri_msg_focus_window_top (void);
VALA_EXTERN gboolean astal_niri_msg_focus_window_up (void);
VALA_EXTERN gboolean astal_niri_msg_focus_window_up_or_bottom (void);
VALA_EXTERN gboolean astal_niri_msg_focus_window_up_or_column_left (void);
VALA_EXTERN gboolean astal_niri_msg_focus_window_up_or_column_right (void);
VALA_EXTERN gboolean astal_niri_msg_focus_workspace_by_id (gint workspace_id);
VALA_EXTERN gboolean astal_niri_msg_focus_workspace_by_index (gint workspace_index);
VALA_EXTERN gboolean astal_niri_msg_focus_workspace_by_name (const gchar* workspace_name);
VALA_EXTERN gboolean astal_niri_msg_focus_workspace_down (void);
VALA_EXTERN gboolean astal_niri_msg_focus_workspace_previous (void);
VALA_EXTERN gboolean astal_niri_msg_focus_workspace_next (void);
VALA_EXTERN gboolean astal_niri_msg_focus_workspace_up (void);
VALA_EXTERN gboolean astal_niri_msg_fullscreen_window (gint* id);
VALA_EXTERN gchar* astal_niri_msg_layers (AstalNirimsg* self);
VALA_EXTERN gboolean astal_niri_msg_maximize_column (void);
VALA_EXTERN gboolean astal_niri_msg_move_column_left (void);
VALA_EXTERN gboolean astal_niri_msg_move_column_left_or_to_monitor_left (void);
VALA_EXTERN gboolean astal_niri_msg_move_column_right (void);
VALA_EXTERN gboolean astal_niri_msg_move_column_right_or_to_monitor_right (void);
VALA_EXTERN gboolean astal_niri_msg_move_column_to_first (void);
VALA_EXTERN gboolean astal_niri_msg_move_column_to_index (gint index);
VALA_EXTERN gboolean astal_niri_msg_move_column_to_last (void);
VALA_EXTERN gboolean astal_niri_msg_move_column_to_monitor (const gchar* output);
VALA_EXTERN gboolean astal_niri_msg_move_column_to_monitor_down (void);
VALA_EXTERN gboolean astal_niri_msg_move_column_to_monitor_left (void);
VALA_EXTERN gboolean astal_niri_msg_move_column_to_monitor_next (void);
VALA_EXTERN gboolean astal_niri_msg_move_column_to_monitor_previous (void);
VALA_EXTERN gboolean astal_niri_msg_move_column_to_monitor_right (void);
VALA_EXTERN gboolean astal_niri_msg_move_column_to_monitor_up (void);
VALA_EXTERN gboolean astal_niri_msg_move_column_to_workspace_by_id (gint workspace_id,
                                                        gboolean focus);
VALA_EXTERN gboolean astal_niri_msg_move_column_to_workspace_by_index (gint workspace_index,
                                                           gboolean focus);
VALA_EXTERN gboolean astal_niri_msg_move_column_to_workspace_by_name (const gchar* workspace_name,
                                                          gboolean focus);
VALA_EXTERN gboolean astal_niri_msg_move_column_to_workspace_down (gboolean focus);
VALA_EXTERN gboolean astal_niri_msg_move_column_to_workspace_up (gboolean focus);
VALA_EXTERN gboolean astal_niri_msg_move_floating_window_adjust_x_adjust_y (gint* id,
                                                                gdouble adjust_x,
                                                                gdouble adjust_y);
VALA_EXTERN gboolean astal_niri_msg_move_floating_window_adjust_x_set_y (gint* id,
                                                             gdouble adjust_x,
                                                             gdouble set_y);
VALA_EXTERN gboolean astal_niri_msg_move_floating_window_set_x_adjust_y (gint* id,
                                                             gdouble set_x,
                                                             gdouble adjust_y);
VALA_EXTERN gboolean astal_niri_msg_move_floating_window_set_x_set_y (gint* id,
                                                          gdouble set_x,
                                                          gdouble set_y);
VALA_EXTERN gboolean astal_niri_msg_move_window_down (void);
VALA_EXTERN gboolean astal_niri_msg_move_window_down_or_to_workspace_down (void);
VALA_EXTERN gboolean astal_niri_msg_move_window_to_floating (gint* id);
VALA_EXTERN gboolean astal_niri_msg_move_window_to_monitor (gint* id,
                                                const gchar* output);
VALA_EXTERN gboolean astal_niri_msg_move_window_to_monitor_down (void);
VALA_EXTERN gboolean astal_niri_msg_move_window_to_monitor_left (void);
VALA_EXTERN gboolean astal_niri_msg_move_window_to_monitor_right (void);
VALA_EXTERN gboolean astal_niri_msg_move_window_to_monitor_up (void);
VALA_EXTERN gboolean astal_niri_msg_move_window_to_monitor_previous (void);
VALA_EXTERN gboolean astal_niri_msg_move_window_to_monitor_next (void);
VALA_EXTERN gboolean astal_niri_msg_move_window_to_tiling (gint* id);
VALA_EXTERN gboolean astal_niri_msg_move_window_to_workspace_by_id (gint* window_id,
                                                        gint workspace_id,
                                                        gboolean focus);
VALA_EXTERN gboolean astal_niri_msg_move_window_to_workspace_by_index (gint* window_id,
                                                           gint workspace_index,
                                                           gboolean focus);
VALA_EXTERN gboolean astal_niri_msg_move_window_to_workspace_by_name (gint* window_id,
                                                          const gchar* workspace_name,
                                                          gboolean focus);
VALA_EXTERN gboolean astal_niri_msg_move_window_to_workspace_down (void);
VALA_EXTERN gboolean astal_niri_msg_move_window_to_workspace_up (void);
VALA_EXTERN gboolean astal_niri_msg_move_window_up (void);
VALA_EXTERN gboolean astal_niri_msg_move_window_up_or_to_workspace_up (void);
VALA_EXTERN gboolean astal_niri_msg_move_workspace_down (void);
VALA_EXTERN gboolean astal_niri_msg_move_workspace_to_index_by_id (gint workspace_id,
                                                       gint index);
VALA_EXTERN gboolean astal_niri_msg_move_workspace_to_index_by_index (gint workspace_index,
                                                          gint index);
VALA_EXTERN gboolean astal_niri_msg_move_workspace_to_index_by_name (const gchar* workspace_name,
                                                         gint index);
VALA_EXTERN gboolean astal_niri_msg_move_workspace_to_monitor_by_id (const gchar* output,
                                                         gint workspace_id);
VALA_EXTERN gboolean astal_niri_msg_move_workspace_to_monitor_by_index (const gchar* output,
                                                            gint workspace_index);
VALA_EXTERN gboolean astal_niri_msg_move_workspace_to_monitor_by_name (const gchar* output,
                                                           const gchar* workspace_name);
VALA_EXTERN gboolean astal_niri_msg_move_workspace_to_monitor_down (void);
VALA_EXTERN gboolean astal_niri_msg_move_workspace_to_monitor_left (void);
VALA_EXTERN gboolean astal_niri_msg_move_workspace_to_monitor_next (void);
VALA_EXTERN gboolean astal_niri_msg_move_workspace_to_monitor_previous (void);
VALA_EXTERN gboolean astal_niri_msg_move_workspace_to_monitor_right (void);
VALA_EXTERN gboolean astal_niri_msg_move_workspace_to_monitor_up (void);
VALA_EXTERN gboolean astal_niri_msg_move_workspace_up (void);
VALA_EXTERN gboolean astal_niri_msg_open_overview (void);
VALA_EXTERN void astal_niri_msg_pick_color (GAsyncReadyCallback _callback_,
                                gpointer _user_data_);
VALA_EXTERN gdouble* astal_niri_msg_pick_color_finish (GAsyncResult* _res_,
                                           gint* result_length1);
VALA_EXTERN void astal_niri_msg_pick_window (GAsyncReadyCallback _callback_,
                                 gpointer _user_data_);
VALA_EXTERN AstalNiriWindow* astal_niri_msg_pick_window_finish (GAsyncResult* _res_);
VALA_EXTERN gboolean astal_niri_msg_power_off_monitors (void);
VALA_EXTERN gboolean astal_niri_msg_power_on_monitors (void);
VALA_EXTERN gboolean astal_niri_msg_quit (gboolean skip_confirmation);
VALA_EXTERN gboolean astal_niri_msg_reset_window_height (gint* id);
VALA_EXTERN gboolean astal_niri_msg_screenshot (gboolean show_pointer);
VALA_EXTERN gboolean astal_niri_msg_screenshot_screen (gboolean write_to_disk,
                                           gboolean show_pointer);
VALA_EXTERN gboolean astal_niri_msg_screenshot_window (gint* id,
                                           gboolean write_to_disk);
VALA_EXTERN gboolean astal_niri_msg_set_column_display (AstalNiriColumnDisplayTag display);
VALA_EXTERN gboolean astal_niri_msg_set_column_width_adjust_fixed (gint* id,
                                                       gint fixed_value);
VALA_EXTERN gboolean astal_niri_msg_set_column_width_adjust_proportion (gint* id,
                                                            gdouble proportion);
VALA_EXTERN gboolean astal_niri_msg_set_column_width_set_fixed (gint* id,
                                                    gint fixed_value);
VALA_EXTERN gboolean astal_niri_msg_set_column_width_set_proportion (gint* id,
                                                         gdouble proportion);
VALA_EXTERN gboolean astal_niri_msg_set_dynamic_cast_window (gint* id);
VALA_EXTERN gboolean astal_niri_msg_set_dynamic_cast_monitor (const gchar* output);
VALA_EXTERN gboolean astal_niri_msg_set_window_height_adjust_fixed (gint* id,
                                                        gint fixed_value);
VALA_EXTERN gboolean astal_niri_msg_set_window_height_adjust_proportion (gint* id,
                                                             gdouble proportion);
VALA_EXTERN gboolean astal_niri_msg_set_window_height_set_fixed (gint* id,
                                                     gint fixed_value);
VALA_EXTERN gboolean astal_niri_msg_set_window_height_set_proportion (gint* id,
                                                          gdouble proportion);
VALA_EXTERN gboolean astal_niri_msg_set_window_urgent (gint id);
VALA_EXTERN gboolean astal_niri_msg_set_window_width_adjust_fixed (gint* id,
                                                       gint fixed_value);
VALA_EXTERN gboolean astal_niri_msg_set_window_width_adjust_proportion (gint* id,
                                                            gdouble proportion);
VALA_EXTERN gboolean astal_niri_msg_set_window_width_set_fixed (gint* id,
                                                    gint fixed_value);
VALA_EXTERN gboolean astal_niri_msg_set_window_width_set_proportion (gint* id,
                                                         gdouble proportion);
VALA_EXTERN gboolean astal_niri_msg_set_workspace_name_by_id (gint workspace_id,
                                                  const gchar* new_name);
VALA_EXTERN gboolean astal_niri_msg_set_workspace_name_by_index (gint workspace_index,
                                                     const gchar* new_name);
VALA_EXTERN gboolean astal_niri_msg_set_workspace_name_by_name (const gchar* workspace_name,
                                                    const gchar* new_name);
VALA_EXTERN gboolean astal_niri_msg_show_hotkey_overlay (void);
VALA_EXTERN gboolean astal_niri_msg_spawn (gchar** command,
                               gint command_length1);
VALA_EXTERN gboolean astal_niri_msg_swap_window_left (void);
VALA_EXTERN gboolean astal_niri_msg_swap_window_right (void);
VALA_EXTERN gboolean astal_niri_msg_switch_focus_between_floating_and_tiling (void);
VALA_EXTERN gboolean astal_niri_msg_switch_layout_index (gint index);
VALA_EXTERN gboolean astal_niri_msg_switch_layout_next (void);
VALA_EXTERN gboolean astal_niri_msg_switch_layout_prev (void);
VALA_EXTERN gboolean astal_niri_msg_switch_preset_column_width (void);
VALA_EXTERN gboolean astal_niri_msg_switch_preset_window_height (gint* id);
VALA_EXTERN gboolean astal_niri_msg_switch_preset_window_width (gint* id);
VALA_EXTERN gboolean astal_niri_msg_toggle_column_tabbed_display (void);
VALA_EXTERN gboolean astal_niri_msg_toggle_debug_tint (void);
VALA_EXTERN gboolean astal_niri_msg_toggle_keyboard_shortcuts_inhibit (void);
VALA_EXTERN gboolean astal_niri_msg_toggle_overview (void);
VALA_EXTERN gboolean astal_niri_msg_toggle_window_floating (gint* id);
VALA_EXTERN gboolean astal_niri_msg_toggle_window_rule_opacity (gint* id);
VALA_EXTERN gboolean astal_niri_msg_toggle_window_urgent (gint id);
VALA_EXTERN gboolean astal_niri_msg_toggle_windowed_fullscreen (gint* id);
VALA_EXTERN gboolean astal_niri_msg_unset_window_urgent (gint id);
VALA_EXTERN gboolean astal_niri_msg_unset_workspace_name_by_id (gint workspace_id);
VALA_EXTERN gboolean astal_niri_msg_unset_workspace_name_by_index (gint workspace_index);
VALA_EXTERN gboolean astal_niri_msg_unset_workspace_name_by_name (const gchar* workspace_name);
VALA_EXTERN AstalNirimsg* astal_niri_msg_new (void);
VALA_EXTERN AstalNirimsg* astal_niri_msg_construct (GType object_type);

G_END_DECLS

#endif
