/*
 * This file is generated by gdbus-codegen, do not modify it.
 *
 * The license of this code is the same as for the D-Bus interface description
 * it was derived from. Note that it links to GLib, so must comply with the
 * LGPL linking clauses.
 */

#ifndef __ORG_GNOME_REMOTEDESKTOP_H__
#define __ORG_GNOME_REMOTEDESKTOP_H__

#include <gio/gio.h>

G_BEGIN_DECLS


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.RemoteDesktop */

#define GSD_TYPE_REMOTE_DESKTOP (gsd_remote_desktop_get_type ())
#define GSD_REMOTE_DESKTOP(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_REMOTE_DESKTOP, GsdRemoteDesktop))
#define GSD_IS_REMOTE_DESKTOP(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_REMOTE_DESKTOP))
#define GSD_REMOTE_DESKTOP_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GSD_TYPE_REMOTE_DESKTOP, GsdRemoteDesktopIface))

struct _GsdRemoteDesktop;
typedef struct _GsdRemoteDesktop GsdRemoteDesktop;
typedef struct _GsdRemoteDesktopIface GsdRemoteDesktopIface;

struct _GsdRemoteDesktopIface
{
  GTypeInterface parent_iface;

  const gchar * (*get_runtime_mode) (GsdRemoteDesktop *object);

};

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GsdRemoteDesktop, g_object_unref)
#endif

GType gsd_remote_desktop_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *gsd_remote_desktop_interface_info (void);
guint gsd_remote_desktop_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus property accessors: */
const gchar *gsd_remote_desktop_get_runtime_mode (GsdRemoteDesktop *object);
gchar *gsd_remote_desktop_dup_runtime_mode (GsdRemoteDesktop *object);
void gsd_remote_desktop_set_runtime_mode (GsdRemoteDesktop *object, const gchar *value);


/* ---- */

#define GSD_TYPE_REMOTE_DESKTOP_PROXY (gsd_remote_desktop_proxy_get_type ())
#define GSD_REMOTE_DESKTOP_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_REMOTE_DESKTOP_PROXY, GsdRemoteDesktopProxy))
#define GSD_REMOTE_DESKTOP_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GSD_TYPE_REMOTE_DESKTOP_PROXY, GsdRemoteDesktopProxyClass))
#define GSD_REMOTE_DESKTOP_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_REMOTE_DESKTOP_PROXY, GsdRemoteDesktopProxyClass))
#define GSD_IS_REMOTE_DESKTOP_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_REMOTE_DESKTOP_PROXY))
#define GSD_IS_REMOTE_DESKTOP_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_REMOTE_DESKTOP_PROXY))

typedef struct _GsdRemoteDesktopProxy GsdRemoteDesktopProxy;
typedef struct _GsdRemoteDesktopProxyClass GsdRemoteDesktopProxyClass;
typedef struct _GsdRemoteDesktopProxyPrivate GsdRemoteDesktopProxyPrivate;

struct _GsdRemoteDesktopProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  GsdRemoteDesktopProxyPrivate *priv;
};

struct _GsdRemoteDesktopProxyClass
{
  GDBusProxyClass parent_class;
};

GType gsd_remote_desktop_proxy_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GsdRemoteDesktopProxy, g_object_unref)
#endif

void gsd_remote_desktop_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
GsdRemoteDesktop *gsd_remote_desktop_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
GsdRemoteDesktop *gsd_remote_desktop_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void gsd_remote_desktop_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
GsdRemoteDesktop *gsd_remote_desktop_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
GsdRemoteDesktop *gsd_remote_desktop_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define GSD_TYPE_REMOTE_DESKTOP_SKELETON (gsd_remote_desktop_skeleton_get_type ())
#define GSD_REMOTE_DESKTOP_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_REMOTE_DESKTOP_SKELETON, GsdRemoteDesktopSkeleton))
#define GSD_REMOTE_DESKTOP_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GSD_TYPE_REMOTE_DESKTOP_SKELETON, GsdRemoteDesktopSkeletonClass))
#define GSD_REMOTE_DESKTOP_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_REMOTE_DESKTOP_SKELETON, GsdRemoteDesktopSkeletonClass))
#define GSD_IS_REMOTE_DESKTOP_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_REMOTE_DESKTOP_SKELETON))
#define GSD_IS_REMOTE_DESKTOP_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_REMOTE_DESKTOP_SKELETON))

typedef struct _GsdRemoteDesktopSkeleton GsdRemoteDesktopSkeleton;
typedef struct _GsdRemoteDesktopSkeletonClass GsdRemoteDesktopSkeletonClass;
typedef struct _GsdRemoteDesktopSkeletonPrivate GsdRemoteDesktopSkeletonPrivate;

struct _GsdRemoteDesktopSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  GsdRemoteDesktopSkeletonPrivate *priv;
};

struct _GsdRemoteDesktopSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType gsd_remote_desktop_skeleton_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GsdRemoteDesktopSkeleton, g_object_unref)
#endif

GsdRemoteDesktop *gsd_remote_desktop_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.RemoteDesktop.Rdp.Server */

#define GSD_TYPE_REMOTE_DESKTOP_RDP_SERVER (gsd_remote_desktop_rdp_server_get_type ())
#define GSD_REMOTE_DESKTOP_RDP_SERVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_SERVER, GsdRemoteDesktopRdpServer))
#define GSD_IS_REMOTE_DESKTOP_RDP_SERVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_SERVER))
#define GSD_REMOTE_DESKTOP_RDP_SERVER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_SERVER, GsdRemoteDesktopRdpServerIface))

struct _GsdRemoteDesktopRdpServer;
typedef struct _GsdRemoteDesktopRdpServer GsdRemoteDesktopRdpServer;
typedef struct _GsdRemoteDesktopRdpServerIface GsdRemoteDesktopRdpServerIface;

struct _GsdRemoteDesktopRdpServerIface
{
  GTypeInterface parent_iface;


  gboolean  (*get_enabled) (GsdRemoteDesktopRdpServer *object);

  gboolean  (*get_negotiate_port) (GsdRemoteDesktopRdpServer *object);

  gint  (*get_port) (GsdRemoteDesktopRdpServer *object);

  const gchar * (*get_tls_cert) (GsdRemoteDesktopRdpServer *object);

  const gchar * (*get_tls_fingerprint) (GsdRemoteDesktopRdpServer *object);

  const gchar * (*get_tls_key) (GsdRemoteDesktopRdpServer *object);

  gboolean  (*get_view_only) (GsdRemoteDesktopRdpServer *object);

  void (*binding) (
    GsdRemoteDesktopRdpServer *object,
    gint arg_port);

};

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GsdRemoteDesktopRdpServer, g_object_unref)
#endif

GType gsd_remote_desktop_rdp_server_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *gsd_remote_desktop_rdp_server_interface_info (void);
guint gsd_remote_desktop_rdp_server_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus signal emissions functions: */
void gsd_remote_desktop_rdp_server_emit_binding (
    GsdRemoteDesktopRdpServer *object,
    gint arg_port);



/* D-Bus property accessors: */
gboolean gsd_remote_desktop_rdp_server_get_enabled (GsdRemoteDesktopRdpServer *object);
void gsd_remote_desktop_rdp_server_set_enabled (GsdRemoteDesktopRdpServer *object, gboolean value);

gint gsd_remote_desktop_rdp_server_get_port (GsdRemoteDesktopRdpServer *object);
void gsd_remote_desktop_rdp_server_set_port (GsdRemoteDesktopRdpServer *object, gint value);

gboolean gsd_remote_desktop_rdp_server_get_negotiate_port (GsdRemoteDesktopRdpServer *object);
void gsd_remote_desktop_rdp_server_set_negotiate_port (GsdRemoteDesktopRdpServer *object, gboolean value);

const gchar *gsd_remote_desktop_rdp_server_get_tls_cert (GsdRemoteDesktopRdpServer *object);
gchar *gsd_remote_desktop_rdp_server_dup_tls_cert (GsdRemoteDesktopRdpServer *object);
void gsd_remote_desktop_rdp_server_set_tls_cert (GsdRemoteDesktopRdpServer *object, const gchar *value);

const gchar *gsd_remote_desktop_rdp_server_get_tls_fingerprint (GsdRemoteDesktopRdpServer *object);
gchar *gsd_remote_desktop_rdp_server_dup_tls_fingerprint (GsdRemoteDesktopRdpServer *object);
void gsd_remote_desktop_rdp_server_set_tls_fingerprint (GsdRemoteDesktopRdpServer *object, const gchar *value);

const gchar *gsd_remote_desktop_rdp_server_get_tls_key (GsdRemoteDesktopRdpServer *object);
gchar *gsd_remote_desktop_rdp_server_dup_tls_key (GsdRemoteDesktopRdpServer *object);
void gsd_remote_desktop_rdp_server_set_tls_key (GsdRemoteDesktopRdpServer *object, const gchar *value);

gboolean gsd_remote_desktop_rdp_server_get_view_only (GsdRemoteDesktopRdpServer *object);
void gsd_remote_desktop_rdp_server_set_view_only (GsdRemoteDesktopRdpServer *object, gboolean value);


/* ---- */

#define GSD_TYPE_REMOTE_DESKTOP_RDP_SERVER_PROXY (gsd_remote_desktop_rdp_server_proxy_get_type ())
#define GSD_REMOTE_DESKTOP_RDP_SERVER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_SERVER_PROXY, GsdRemoteDesktopRdpServerProxy))
#define GSD_REMOTE_DESKTOP_RDP_SERVER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GSD_TYPE_REMOTE_DESKTOP_RDP_SERVER_PROXY, GsdRemoteDesktopRdpServerProxyClass))
#define GSD_REMOTE_DESKTOP_RDP_SERVER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_SERVER_PROXY, GsdRemoteDesktopRdpServerProxyClass))
#define GSD_IS_REMOTE_DESKTOP_RDP_SERVER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_SERVER_PROXY))
#define GSD_IS_REMOTE_DESKTOP_RDP_SERVER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_REMOTE_DESKTOP_RDP_SERVER_PROXY))

typedef struct _GsdRemoteDesktopRdpServerProxy GsdRemoteDesktopRdpServerProxy;
typedef struct _GsdRemoteDesktopRdpServerProxyClass GsdRemoteDesktopRdpServerProxyClass;
typedef struct _GsdRemoteDesktopRdpServerProxyPrivate GsdRemoteDesktopRdpServerProxyPrivate;

struct _GsdRemoteDesktopRdpServerProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  GsdRemoteDesktopRdpServerProxyPrivate *priv;
};

struct _GsdRemoteDesktopRdpServerProxyClass
{
  GDBusProxyClass parent_class;
};

GType gsd_remote_desktop_rdp_server_proxy_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GsdRemoteDesktopRdpServerProxy, g_object_unref)
#endif

void gsd_remote_desktop_rdp_server_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
GsdRemoteDesktopRdpServer *gsd_remote_desktop_rdp_server_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
GsdRemoteDesktopRdpServer *gsd_remote_desktop_rdp_server_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void gsd_remote_desktop_rdp_server_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
GsdRemoteDesktopRdpServer *gsd_remote_desktop_rdp_server_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
GsdRemoteDesktopRdpServer *gsd_remote_desktop_rdp_server_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define GSD_TYPE_REMOTE_DESKTOP_RDP_SERVER_SKELETON (gsd_remote_desktop_rdp_server_skeleton_get_type ())
#define GSD_REMOTE_DESKTOP_RDP_SERVER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_SERVER_SKELETON, GsdRemoteDesktopRdpServerSkeleton))
#define GSD_REMOTE_DESKTOP_RDP_SERVER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GSD_TYPE_REMOTE_DESKTOP_RDP_SERVER_SKELETON, GsdRemoteDesktopRdpServerSkeletonClass))
#define GSD_REMOTE_DESKTOP_RDP_SERVER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_SERVER_SKELETON, GsdRemoteDesktopRdpServerSkeletonClass))
#define GSD_IS_REMOTE_DESKTOP_RDP_SERVER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_SERVER_SKELETON))
#define GSD_IS_REMOTE_DESKTOP_RDP_SERVER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_REMOTE_DESKTOP_RDP_SERVER_SKELETON))

typedef struct _GsdRemoteDesktopRdpServerSkeleton GsdRemoteDesktopRdpServerSkeleton;
typedef struct _GsdRemoteDesktopRdpServerSkeletonClass GsdRemoteDesktopRdpServerSkeletonClass;
typedef struct _GsdRemoteDesktopRdpServerSkeletonPrivate GsdRemoteDesktopRdpServerSkeletonPrivate;

struct _GsdRemoteDesktopRdpServerSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  GsdRemoteDesktopRdpServerSkeletonPrivate *priv;
};

struct _GsdRemoteDesktopRdpServerSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType gsd_remote_desktop_rdp_server_skeleton_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GsdRemoteDesktopRdpServerSkeleton, g_object_unref)
#endif

GsdRemoteDesktopRdpServer *gsd_remote_desktop_rdp_server_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.RemoteDesktop.Configuration.Rdp.Server */

#define GSD_TYPE_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER (gsd_remote_desktop_configuration_rdp_server_get_type ())
#define GSD_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER, GsdRemoteDesktopConfigurationRdpServer))
#define GSD_IS_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER))
#define GSD_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GSD_TYPE_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER, GsdRemoteDesktopConfigurationRdpServerIface))

struct _GsdRemoteDesktopConfigurationRdpServer;
typedef struct _GsdRemoteDesktopConfigurationRdpServer GsdRemoteDesktopConfigurationRdpServer;
typedef struct _GsdRemoteDesktopConfigurationRdpServerIface GsdRemoteDesktopConfigurationRdpServerIface;

struct _GsdRemoteDesktopConfigurationRdpServerIface
{
  GTypeInterface parent_iface;


  gboolean (*handle_disable) (
    GsdRemoteDesktopConfigurationRdpServer *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_enable) (
    GsdRemoteDesktopConfigurationRdpServer *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_get_credentials) (
    GsdRemoteDesktopConfigurationRdpServer *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_import_certificate) (
    GsdRemoteDesktopConfigurationRdpServer *object,
    GDBusMethodInvocation *invocation,
    GUnixFDList *fd_list,
    GVariant *arg_Certificate,
    GVariant *arg_PrivateKey);

  gboolean (*handle_set_credentials) (
    GsdRemoteDesktopConfigurationRdpServer *object,
    GDBusMethodInvocation *invocation,
    GVariant *arg_credentials);

  gboolean  (*get_enabled) (GsdRemoteDesktopConfigurationRdpServer *object);

  gint  (*get_port) (GsdRemoteDesktopConfigurationRdpServer *object);

  const gchar * (*get_tls_cert) (GsdRemoteDesktopConfigurationRdpServer *object);

  const gchar * (*get_tls_fingerprint) (GsdRemoteDesktopConfigurationRdpServer *object);

  const gchar * (*get_tls_key) (GsdRemoteDesktopConfigurationRdpServer *object);

};

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GsdRemoteDesktopConfigurationRdpServer, g_object_unref)
#endif

GType gsd_remote_desktop_configuration_rdp_server_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *gsd_remote_desktop_configuration_rdp_server_interface_info (void);
guint gsd_remote_desktop_configuration_rdp_server_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void gsd_remote_desktop_configuration_rdp_server_complete_enable (
    GsdRemoteDesktopConfigurationRdpServer *object,
    GDBusMethodInvocation *invocation);

void gsd_remote_desktop_configuration_rdp_server_complete_disable (
    GsdRemoteDesktopConfigurationRdpServer *object,
    GDBusMethodInvocation *invocation);

void gsd_remote_desktop_configuration_rdp_server_complete_get_credentials (
    GsdRemoteDesktopConfigurationRdpServer *object,
    GDBusMethodInvocation *invocation,
    GVariant *credentials);

void gsd_remote_desktop_configuration_rdp_server_complete_set_credentials (
    GsdRemoteDesktopConfigurationRdpServer *object,
    GDBusMethodInvocation *invocation);

void gsd_remote_desktop_configuration_rdp_server_complete_import_certificate (
    GsdRemoteDesktopConfigurationRdpServer *object,
    GDBusMethodInvocation *invocation,
    GUnixFDList *fd_list);



/* D-Bus method calls: */
void gsd_remote_desktop_configuration_rdp_server_call_enable (
    GsdRemoteDesktopConfigurationRdpServer *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean gsd_remote_desktop_configuration_rdp_server_call_enable_finish (
    GsdRemoteDesktopConfigurationRdpServer *proxy,
    GAsyncResult *res,
    GError **error);

gboolean gsd_remote_desktop_configuration_rdp_server_call_enable_sync (
    GsdRemoteDesktopConfigurationRdpServer *proxy,
    GCancellable *cancellable,
    GError **error);

void gsd_remote_desktop_configuration_rdp_server_call_disable (
    GsdRemoteDesktopConfigurationRdpServer *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean gsd_remote_desktop_configuration_rdp_server_call_disable_finish (
    GsdRemoteDesktopConfigurationRdpServer *proxy,
    GAsyncResult *res,
    GError **error);

gboolean gsd_remote_desktop_configuration_rdp_server_call_disable_sync (
    GsdRemoteDesktopConfigurationRdpServer *proxy,
    GCancellable *cancellable,
    GError **error);

void gsd_remote_desktop_configuration_rdp_server_call_get_credentials (
    GsdRemoteDesktopConfigurationRdpServer *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean gsd_remote_desktop_configuration_rdp_server_call_get_credentials_finish (
    GsdRemoteDesktopConfigurationRdpServer *proxy,
    GVariant ** out_credentials,
    GAsyncResult *res,
    GError **error);

gboolean gsd_remote_desktop_configuration_rdp_server_call_get_credentials_sync (
    GsdRemoteDesktopConfigurationRdpServer *proxy,
    GVariant ** out_credentials,
    GCancellable *cancellable,
    GError **error);

void gsd_remote_desktop_configuration_rdp_server_call_set_credentials (
    GsdRemoteDesktopConfigurationRdpServer *proxy,
    GVariant *arg_credentials,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean gsd_remote_desktop_configuration_rdp_server_call_set_credentials_finish (
    GsdRemoteDesktopConfigurationRdpServer *proxy,
    GAsyncResult *res,
    GError **error);

gboolean gsd_remote_desktop_configuration_rdp_server_call_set_credentials_sync (
    GsdRemoteDesktopConfigurationRdpServer *proxy,
    GVariant *arg_credentials,
    GCancellable *cancellable,
    GError **error);

void gsd_remote_desktop_configuration_rdp_server_call_import_certificate (
    GsdRemoteDesktopConfigurationRdpServer *proxy,
    GVariant *arg_Certificate,
    GVariant *arg_PrivateKey,
    GUnixFDList *fd_list,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean gsd_remote_desktop_configuration_rdp_server_call_import_certificate_finish (
    GsdRemoteDesktopConfigurationRdpServer *proxy,
    GUnixFDList **out_fd_list,
    GAsyncResult *res,
    GError **error);

gboolean gsd_remote_desktop_configuration_rdp_server_call_import_certificate_sync (
    GsdRemoteDesktopConfigurationRdpServer *proxy,
    GVariant *arg_Certificate,
    GVariant *arg_PrivateKey,
    GUnixFDList  *fd_list,
    GUnixFDList **out_fd_list,
    GCancellable *cancellable,
    GError **error);



/* D-Bus property accessors: */
gboolean gsd_remote_desktop_configuration_rdp_server_get_enabled (GsdRemoteDesktopConfigurationRdpServer *object);
void gsd_remote_desktop_configuration_rdp_server_set_enabled (GsdRemoteDesktopConfigurationRdpServer *object, gboolean value);

gint gsd_remote_desktop_configuration_rdp_server_get_port (GsdRemoteDesktopConfigurationRdpServer *object);
void gsd_remote_desktop_configuration_rdp_server_set_port (GsdRemoteDesktopConfigurationRdpServer *object, gint value);

const gchar *gsd_remote_desktop_configuration_rdp_server_get_tls_cert (GsdRemoteDesktopConfigurationRdpServer *object);
gchar *gsd_remote_desktop_configuration_rdp_server_dup_tls_cert (GsdRemoteDesktopConfigurationRdpServer *object);
void gsd_remote_desktop_configuration_rdp_server_set_tls_cert (GsdRemoteDesktopConfigurationRdpServer *object, const gchar *value);

const gchar *gsd_remote_desktop_configuration_rdp_server_get_tls_fingerprint (GsdRemoteDesktopConfigurationRdpServer *object);
gchar *gsd_remote_desktop_configuration_rdp_server_dup_tls_fingerprint (GsdRemoteDesktopConfigurationRdpServer *object);
void gsd_remote_desktop_configuration_rdp_server_set_tls_fingerprint (GsdRemoteDesktopConfigurationRdpServer *object, const gchar *value);

const gchar *gsd_remote_desktop_configuration_rdp_server_get_tls_key (GsdRemoteDesktopConfigurationRdpServer *object);
gchar *gsd_remote_desktop_configuration_rdp_server_dup_tls_key (GsdRemoteDesktopConfigurationRdpServer *object);
void gsd_remote_desktop_configuration_rdp_server_set_tls_key (GsdRemoteDesktopConfigurationRdpServer *object, const gchar *value);


/* ---- */

#define GSD_TYPE_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_PROXY (gsd_remote_desktop_configuration_rdp_server_proxy_get_type ())
#define GSD_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_PROXY, GsdRemoteDesktopConfigurationRdpServerProxy))
#define GSD_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GSD_TYPE_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_PROXY, GsdRemoteDesktopConfigurationRdpServerProxyClass))
#define GSD_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_PROXY, GsdRemoteDesktopConfigurationRdpServerProxyClass))
#define GSD_IS_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_PROXY))
#define GSD_IS_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_PROXY))

typedef struct _GsdRemoteDesktopConfigurationRdpServerProxy GsdRemoteDesktopConfigurationRdpServerProxy;
typedef struct _GsdRemoteDesktopConfigurationRdpServerProxyClass GsdRemoteDesktopConfigurationRdpServerProxyClass;
typedef struct _GsdRemoteDesktopConfigurationRdpServerProxyPrivate GsdRemoteDesktopConfigurationRdpServerProxyPrivate;

struct _GsdRemoteDesktopConfigurationRdpServerProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  GsdRemoteDesktopConfigurationRdpServerProxyPrivate *priv;
};

struct _GsdRemoteDesktopConfigurationRdpServerProxyClass
{
  GDBusProxyClass parent_class;
};

GType gsd_remote_desktop_configuration_rdp_server_proxy_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GsdRemoteDesktopConfigurationRdpServerProxy, g_object_unref)
#endif

void gsd_remote_desktop_configuration_rdp_server_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
GsdRemoteDesktopConfigurationRdpServer *gsd_remote_desktop_configuration_rdp_server_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
GsdRemoteDesktopConfigurationRdpServer *gsd_remote_desktop_configuration_rdp_server_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void gsd_remote_desktop_configuration_rdp_server_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
GsdRemoteDesktopConfigurationRdpServer *gsd_remote_desktop_configuration_rdp_server_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
GsdRemoteDesktopConfigurationRdpServer *gsd_remote_desktop_configuration_rdp_server_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define GSD_TYPE_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_SKELETON (gsd_remote_desktop_configuration_rdp_server_skeleton_get_type ())
#define GSD_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_SKELETON, GsdRemoteDesktopConfigurationRdpServerSkeleton))
#define GSD_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GSD_TYPE_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_SKELETON, GsdRemoteDesktopConfigurationRdpServerSkeletonClass))
#define GSD_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_SKELETON, GsdRemoteDesktopConfigurationRdpServerSkeletonClass))
#define GSD_IS_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_SKELETON))
#define GSD_IS_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_REMOTE_DESKTOP_CONFIGURATION_RDP_SERVER_SKELETON))

typedef struct _GsdRemoteDesktopConfigurationRdpServerSkeleton GsdRemoteDesktopConfigurationRdpServerSkeleton;
typedef struct _GsdRemoteDesktopConfigurationRdpServerSkeletonClass GsdRemoteDesktopConfigurationRdpServerSkeletonClass;
typedef struct _GsdRemoteDesktopConfigurationRdpServerSkeletonPrivate GsdRemoteDesktopConfigurationRdpServerSkeletonPrivate;

struct _GsdRemoteDesktopConfigurationRdpServerSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  GsdRemoteDesktopConfigurationRdpServerSkeletonPrivate *priv;
};

struct _GsdRemoteDesktopConfigurationRdpServerSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType gsd_remote_desktop_configuration_rdp_server_skeleton_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GsdRemoteDesktopConfigurationRdpServerSkeleton, g_object_unref)
#endif

GsdRemoteDesktopConfigurationRdpServer *gsd_remote_desktop_configuration_rdp_server_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.RemoteDesktop.Vnc.Server */

#define GSD_TYPE_REMOTE_DESKTOP_VNC_SERVER (gsd_remote_desktop_vnc_server_get_type ())
#define GSD_REMOTE_DESKTOP_VNC_SERVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_REMOTE_DESKTOP_VNC_SERVER, GsdRemoteDesktopVncServer))
#define GSD_IS_REMOTE_DESKTOP_VNC_SERVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_REMOTE_DESKTOP_VNC_SERVER))
#define GSD_REMOTE_DESKTOP_VNC_SERVER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GSD_TYPE_REMOTE_DESKTOP_VNC_SERVER, GsdRemoteDesktopVncServerIface))

struct _GsdRemoteDesktopVncServer;
typedef struct _GsdRemoteDesktopVncServer GsdRemoteDesktopVncServer;
typedef struct _GsdRemoteDesktopVncServerIface GsdRemoteDesktopVncServerIface;

struct _GsdRemoteDesktopVncServerIface
{
  GTypeInterface parent_iface;

  const gchar * (*get_auth_method) (GsdRemoteDesktopVncServer *object);

  gboolean  (*get_enabled) (GsdRemoteDesktopVncServer *object);

  gboolean  (*get_negotiate_port) (GsdRemoteDesktopVncServer *object);

  gint  (*get_port) (GsdRemoteDesktopVncServer *object);

  gboolean  (*get_view_only) (GsdRemoteDesktopVncServer *object);

};

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GsdRemoteDesktopVncServer, g_object_unref)
#endif

GType gsd_remote_desktop_vnc_server_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *gsd_remote_desktop_vnc_server_interface_info (void);
guint gsd_remote_desktop_vnc_server_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus property accessors: */
gboolean gsd_remote_desktop_vnc_server_get_enabled (GsdRemoteDesktopVncServer *object);
void gsd_remote_desktop_vnc_server_set_enabled (GsdRemoteDesktopVncServer *object, gboolean value);

gint gsd_remote_desktop_vnc_server_get_port (GsdRemoteDesktopVncServer *object);
void gsd_remote_desktop_vnc_server_set_port (GsdRemoteDesktopVncServer *object, gint value);

gboolean gsd_remote_desktop_vnc_server_get_negotiate_port (GsdRemoteDesktopVncServer *object);
void gsd_remote_desktop_vnc_server_set_negotiate_port (GsdRemoteDesktopVncServer *object, gboolean value);

const gchar *gsd_remote_desktop_vnc_server_get_auth_method (GsdRemoteDesktopVncServer *object);
gchar *gsd_remote_desktop_vnc_server_dup_auth_method (GsdRemoteDesktopVncServer *object);
void gsd_remote_desktop_vnc_server_set_auth_method (GsdRemoteDesktopVncServer *object, const gchar *value);

gboolean gsd_remote_desktop_vnc_server_get_view_only (GsdRemoteDesktopVncServer *object);
void gsd_remote_desktop_vnc_server_set_view_only (GsdRemoteDesktopVncServer *object, gboolean value);


/* ---- */

#define GSD_TYPE_REMOTE_DESKTOP_VNC_SERVER_PROXY (gsd_remote_desktop_vnc_server_proxy_get_type ())
#define GSD_REMOTE_DESKTOP_VNC_SERVER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_REMOTE_DESKTOP_VNC_SERVER_PROXY, GsdRemoteDesktopVncServerProxy))
#define GSD_REMOTE_DESKTOP_VNC_SERVER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GSD_TYPE_REMOTE_DESKTOP_VNC_SERVER_PROXY, GsdRemoteDesktopVncServerProxyClass))
#define GSD_REMOTE_DESKTOP_VNC_SERVER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_REMOTE_DESKTOP_VNC_SERVER_PROXY, GsdRemoteDesktopVncServerProxyClass))
#define GSD_IS_REMOTE_DESKTOP_VNC_SERVER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_REMOTE_DESKTOP_VNC_SERVER_PROXY))
#define GSD_IS_REMOTE_DESKTOP_VNC_SERVER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_REMOTE_DESKTOP_VNC_SERVER_PROXY))

typedef struct _GsdRemoteDesktopVncServerProxy GsdRemoteDesktopVncServerProxy;
typedef struct _GsdRemoteDesktopVncServerProxyClass GsdRemoteDesktopVncServerProxyClass;
typedef struct _GsdRemoteDesktopVncServerProxyPrivate GsdRemoteDesktopVncServerProxyPrivate;

struct _GsdRemoteDesktopVncServerProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  GsdRemoteDesktopVncServerProxyPrivate *priv;
};

struct _GsdRemoteDesktopVncServerProxyClass
{
  GDBusProxyClass parent_class;
};

GType gsd_remote_desktop_vnc_server_proxy_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GsdRemoteDesktopVncServerProxy, g_object_unref)
#endif

void gsd_remote_desktop_vnc_server_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
GsdRemoteDesktopVncServer *gsd_remote_desktop_vnc_server_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
GsdRemoteDesktopVncServer *gsd_remote_desktop_vnc_server_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void gsd_remote_desktop_vnc_server_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
GsdRemoteDesktopVncServer *gsd_remote_desktop_vnc_server_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
GsdRemoteDesktopVncServer *gsd_remote_desktop_vnc_server_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define GSD_TYPE_REMOTE_DESKTOP_VNC_SERVER_SKELETON (gsd_remote_desktop_vnc_server_skeleton_get_type ())
#define GSD_REMOTE_DESKTOP_VNC_SERVER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_REMOTE_DESKTOP_VNC_SERVER_SKELETON, GsdRemoteDesktopVncServerSkeleton))
#define GSD_REMOTE_DESKTOP_VNC_SERVER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GSD_TYPE_REMOTE_DESKTOP_VNC_SERVER_SKELETON, GsdRemoteDesktopVncServerSkeletonClass))
#define GSD_REMOTE_DESKTOP_VNC_SERVER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_REMOTE_DESKTOP_VNC_SERVER_SKELETON, GsdRemoteDesktopVncServerSkeletonClass))
#define GSD_IS_REMOTE_DESKTOP_VNC_SERVER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_REMOTE_DESKTOP_VNC_SERVER_SKELETON))
#define GSD_IS_REMOTE_DESKTOP_VNC_SERVER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_REMOTE_DESKTOP_VNC_SERVER_SKELETON))

typedef struct _GsdRemoteDesktopVncServerSkeleton GsdRemoteDesktopVncServerSkeleton;
typedef struct _GsdRemoteDesktopVncServerSkeletonClass GsdRemoteDesktopVncServerSkeletonClass;
typedef struct _GsdRemoteDesktopVncServerSkeletonPrivate GsdRemoteDesktopVncServerSkeletonPrivate;

struct _GsdRemoteDesktopVncServerSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  GsdRemoteDesktopVncServerSkeletonPrivate *priv;
};

struct _GsdRemoteDesktopVncServerSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType gsd_remote_desktop_vnc_server_skeleton_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GsdRemoteDesktopVncServerSkeleton, g_object_unref)
#endif

GsdRemoteDesktopVncServer *gsd_remote_desktop_vnc_server_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.RemoteDesktop.Rdp.Dispatcher */

#define GSD_TYPE_REMOTE_DESKTOP_RDP_DISPATCHER (gsd_remote_desktop_rdp_dispatcher_get_type ())
#define GSD_REMOTE_DESKTOP_RDP_DISPATCHER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_DISPATCHER, GsdRemoteDesktopRdpDispatcher))
#define GSD_IS_REMOTE_DESKTOP_RDP_DISPATCHER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_DISPATCHER))
#define GSD_REMOTE_DESKTOP_RDP_DISPATCHER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_DISPATCHER, GsdRemoteDesktopRdpDispatcherIface))

struct _GsdRemoteDesktopRdpDispatcher;
typedef struct _GsdRemoteDesktopRdpDispatcher GsdRemoteDesktopRdpDispatcher;
typedef struct _GsdRemoteDesktopRdpDispatcherIface GsdRemoteDesktopRdpDispatcherIface;

struct _GsdRemoteDesktopRdpDispatcherIface
{
  GTypeInterface parent_iface;

  gboolean (*handle_request_handover) (
    GsdRemoteDesktopRdpDispatcher *object,
    GDBusMethodInvocation *invocation);

};

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GsdRemoteDesktopRdpDispatcher, g_object_unref)
#endif

GType gsd_remote_desktop_rdp_dispatcher_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *gsd_remote_desktop_rdp_dispatcher_interface_info (void);
guint gsd_remote_desktop_rdp_dispatcher_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void gsd_remote_desktop_rdp_dispatcher_complete_request_handover (
    GsdRemoteDesktopRdpDispatcher *object,
    GDBusMethodInvocation *invocation,
    const gchar *handover);



/* D-Bus method calls: */
void gsd_remote_desktop_rdp_dispatcher_call_request_handover (
    GsdRemoteDesktopRdpDispatcher *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean gsd_remote_desktop_rdp_dispatcher_call_request_handover_finish (
    GsdRemoteDesktopRdpDispatcher *proxy,
    gchar ** out_handover,
    GAsyncResult *res,
    GError **error);

gboolean gsd_remote_desktop_rdp_dispatcher_call_request_handover_sync (
    GsdRemoteDesktopRdpDispatcher *proxy,
    gchar ** out_handover,
    GCancellable *cancellable,
    GError **error);



/* ---- */

#define GSD_TYPE_REMOTE_DESKTOP_RDP_DISPATCHER_PROXY (gsd_remote_desktop_rdp_dispatcher_proxy_get_type ())
#define GSD_REMOTE_DESKTOP_RDP_DISPATCHER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_DISPATCHER_PROXY, GsdRemoteDesktopRdpDispatcherProxy))
#define GSD_REMOTE_DESKTOP_RDP_DISPATCHER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GSD_TYPE_REMOTE_DESKTOP_RDP_DISPATCHER_PROXY, GsdRemoteDesktopRdpDispatcherProxyClass))
#define GSD_REMOTE_DESKTOP_RDP_DISPATCHER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_DISPATCHER_PROXY, GsdRemoteDesktopRdpDispatcherProxyClass))
#define GSD_IS_REMOTE_DESKTOP_RDP_DISPATCHER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_DISPATCHER_PROXY))
#define GSD_IS_REMOTE_DESKTOP_RDP_DISPATCHER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_REMOTE_DESKTOP_RDP_DISPATCHER_PROXY))

typedef struct _GsdRemoteDesktopRdpDispatcherProxy GsdRemoteDesktopRdpDispatcherProxy;
typedef struct _GsdRemoteDesktopRdpDispatcherProxyClass GsdRemoteDesktopRdpDispatcherProxyClass;
typedef struct _GsdRemoteDesktopRdpDispatcherProxyPrivate GsdRemoteDesktopRdpDispatcherProxyPrivate;

struct _GsdRemoteDesktopRdpDispatcherProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  GsdRemoteDesktopRdpDispatcherProxyPrivate *priv;
};

struct _GsdRemoteDesktopRdpDispatcherProxyClass
{
  GDBusProxyClass parent_class;
};

GType gsd_remote_desktop_rdp_dispatcher_proxy_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GsdRemoteDesktopRdpDispatcherProxy, g_object_unref)
#endif

void gsd_remote_desktop_rdp_dispatcher_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
GsdRemoteDesktopRdpDispatcher *gsd_remote_desktop_rdp_dispatcher_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
GsdRemoteDesktopRdpDispatcher *gsd_remote_desktop_rdp_dispatcher_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void gsd_remote_desktop_rdp_dispatcher_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
GsdRemoteDesktopRdpDispatcher *gsd_remote_desktop_rdp_dispatcher_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
GsdRemoteDesktopRdpDispatcher *gsd_remote_desktop_rdp_dispatcher_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define GSD_TYPE_REMOTE_DESKTOP_RDP_DISPATCHER_SKELETON (gsd_remote_desktop_rdp_dispatcher_skeleton_get_type ())
#define GSD_REMOTE_DESKTOP_RDP_DISPATCHER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_DISPATCHER_SKELETON, GsdRemoteDesktopRdpDispatcherSkeleton))
#define GSD_REMOTE_DESKTOP_RDP_DISPATCHER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GSD_TYPE_REMOTE_DESKTOP_RDP_DISPATCHER_SKELETON, GsdRemoteDesktopRdpDispatcherSkeletonClass))
#define GSD_REMOTE_DESKTOP_RDP_DISPATCHER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_DISPATCHER_SKELETON, GsdRemoteDesktopRdpDispatcherSkeletonClass))
#define GSD_IS_REMOTE_DESKTOP_RDP_DISPATCHER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_DISPATCHER_SKELETON))
#define GSD_IS_REMOTE_DESKTOP_RDP_DISPATCHER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_REMOTE_DESKTOP_RDP_DISPATCHER_SKELETON))

typedef struct _GsdRemoteDesktopRdpDispatcherSkeleton GsdRemoteDesktopRdpDispatcherSkeleton;
typedef struct _GsdRemoteDesktopRdpDispatcherSkeletonClass GsdRemoteDesktopRdpDispatcherSkeletonClass;
typedef struct _GsdRemoteDesktopRdpDispatcherSkeletonPrivate GsdRemoteDesktopRdpDispatcherSkeletonPrivate;

struct _GsdRemoteDesktopRdpDispatcherSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  GsdRemoteDesktopRdpDispatcherSkeletonPrivate *priv;
};

struct _GsdRemoteDesktopRdpDispatcherSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType gsd_remote_desktop_rdp_dispatcher_skeleton_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GsdRemoteDesktopRdpDispatcherSkeleton, g_object_unref)
#endif

GsdRemoteDesktopRdpDispatcher *gsd_remote_desktop_rdp_dispatcher_skeleton_new (void);


/* ------------------------------------------------------------------------ */
/* Declarations for org.gnome.RemoteDesktop.Rdp.Handover */

#define GSD_TYPE_REMOTE_DESKTOP_RDP_HANDOVER (gsd_remote_desktop_rdp_handover_get_type ())
#define GSD_REMOTE_DESKTOP_RDP_HANDOVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_HANDOVER, GsdRemoteDesktopRdpHandover))
#define GSD_IS_REMOTE_DESKTOP_RDP_HANDOVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_HANDOVER))
#define GSD_REMOTE_DESKTOP_RDP_HANDOVER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_HANDOVER, GsdRemoteDesktopRdpHandoverIface))

struct _GsdRemoteDesktopRdpHandover;
typedef struct _GsdRemoteDesktopRdpHandover GsdRemoteDesktopRdpHandover;
typedef struct _GsdRemoteDesktopRdpHandoverIface GsdRemoteDesktopRdpHandoverIface;

struct _GsdRemoteDesktopRdpHandoverIface
{
  GTypeInterface parent_iface;


  gboolean (*handle_get_system_credentials) (
    GsdRemoteDesktopRdpHandover *object,
    GDBusMethodInvocation *invocation);

  gboolean (*handle_start_handover) (
    GsdRemoteDesktopRdpHandover *object,
    GDBusMethodInvocation *invocation,
    const gchar *arg_username,
    const gchar *arg_password);

  gboolean (*handle_take_client) (
    GsdRemoteDesktopRdpHandover *object,
    GDBusMethodInvocation *invocation,
    GUnixFDList *fd_list);

  void (*redirect_client) (
    GsdRemoteDesktopRdpHandover *object,
    const gchar *arg_routing_token,
    const gchar *arg_username,
    const gchar *arg_password);

  void (*take_client_ready) (
    GsdRemoteDesktopRdpHandover *object,
    gboolean arg_use_system_credentials);

};

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GsdRemoteDesktopRdpHandover, g_object_unref)
#endif

GType gsd_remote_desktop_rdp_handover_get_type (void) G_GNUC_CONST;

GDBusInterfaceInfo *gsd_remote_desktop_rdp_handover_interface_info (void);
guint gsd_remote_desktop_rdp_handover_override_properties (GObjectClass *klass, guint property_id_begin);


/* D-Bus method call completion functions: */
void gsd_remote_desktop_rdp_handover_complete_start_handover (
    GsdRemoteDesktopRdpHandover *object,
    GDBusMethodInvocation *invocation,
    const gchar *certificate,
    const gchar *key);

void gsd_remote_desktop_rdp_handover_complete_take_client (
    GsdRemoteDesktopRdpHandover *object,
    GDBusMethodInvocation *invocation,
    GUnixFDList *fd_list,
    GVariant *fd);

void gsd_remote_desktop_rdp_handover_complete_get_system_credentials (
    GsdRemoteDesktopRdpHandover *object,
    GDBusMethodInvocation *invocation,
    const gchar *username,
    const gchar *password);



/* D-Bus signal emissions functions: */
void gsd_remote_desktop_rdp_handover_emit_redirect_client (
    GsdRemoteDesktopRdpHandover *object,
    const gchar *arg_routing_token,
    const gchar *arg_username,
    const gchar *arg_password);

void gsd_remote_desktop_rdp_handover_emit_take_client_ready (
    GsdRemoteDesktopRdpHandover *object,
    gboolean arg_use_system_credentials);



/* D-Bus method calls: */
void gsd_remote_desktop_rdp_handover_call_start_handover (
    GsdRemoteDesktopRdpHandover *proxy,
    const gchar *arg_username,
    const gchar *arg_password,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean gsd_remote_desktop_rdp_handover_call_start_handover_finish (
    GsdRemoteDesktopRdpHandover *proxy,
    gchar ** out_certificate,
    gchar ** out_key,
    GAsyncResult *res,
    GError **error);

gboolean gsd_remote_desktop_rdp_handover_call_start_handover_sync (
    GsdRemoteDesktopRdpHandover *proxy,
    const gchar *arg_username,
    const gchar *arg_password,
    gchar ** out_certificate,
    gchar ** out_key,
    GCancellable *cancellable,
    GError **error);

void gsd_remote_desktop_rdp_handover_call_take_client (
    GsdRemoteDesktopRdpHandover *proxy,
    GUnixFDList *fd_list,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean gsd_remote_desktop_rdp_handover_call_take_client_finish (
    GsdRemoteDesktopRdpHandover *proxy,
    GVariant ** out_fd,
    GUnixFDList **out_fd_list,
    GAsyncResult *res,
    GError **error);

gboolean gsd_remote_desktop_rdp_handover_call_take_client_sync (
    GsdRemoteDesktopRdpHandover *proxy,
    GUnixFDList  *fd_list,
    GVariant ** out_fd,
    GUnixFDList **out_fd_list,
    GCancellable *cancellable,
    GError **error);

void gsd_remote_desktop_rdp_handover_call_get_system_credentials (
    GsdRemoteDesktopRdpHandover *proxy,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data);

gboolean gsd_remote_desktop_rdp_handover_call_get_system_credentials_finish (
    GsdRemoteDesktopRdpHandover *proxy,
    gchar ** out_username,
    gchar ** out_password,
    GAsyncResult *res,
    GError **error);

gboolean gsd_remote_desktop_rdp_handover_call_get_system_credentials_sync (
    GsdRemoteDesktopRdpHandover *proxy,
    gchar ** out_username,
    gchar ** out_password,
    GCancellable *cancellable,
    GError **error);



/* ---- */

#define GSD_TYPE_REMOTE_DESKTOP_RDP_HANDOVER_PROXY (gsd_remote_desktop_rdp_handover_proxy_get_type ())
#define GSD_REMOTE_DESKTOP_RDP_HANDOVER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_HANDOVER_PROXY, GsdRemoteDesktopRdpHandoverProxy))
#define GSD_REMOTE_DESKTOP_RDP_HANDOVER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GSD_TYPE_REMOTE_DESKTOP_RDP_HANDOVER_PROXY, GsdRemoteDesktopRdpHandoverProxyClass))
#define GSD_REMOTE_DESKTOP_RDP_HANDOVER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_HANDOVER_PROXY, GsdRemoteDesktopRdpHandoverProxyClass))
#define GSD_IS_REMOTE_DESKTOP_RDP_HANDOVER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_HANDOVER_PROXY))
#define GSD_IS_REMOTE_DESKTOP_RDP_HANDOVER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_REMOTE_DESKTOP_RDP_HANDOVER_PROXY))

typedef struct _GsdRemoteDesktopRdpHandoverProxy GsdRemoteDesktopRdpHandoverProxy;
typedef struct _GsdRemoteDesktopRdpHandoverProxyClass GsdRemoteDesktopRdpHandoverProxyClass;
typedef struct _GsdRemoteDesktopRdpHandoverProxyPrivate GsdRemoteDesktopRdpHandoverProxyPrivate;

struct _GsdRemoteDesktopRdpHandoverProxy
{
  /*< private >*/
  GDBusProxy parent_instance;
  GsdRemoteDesktopRdpHandoverProxyPrivate *priv;
};

struct _GsdRemoteDesktopRdpHandoverProxyClass
{
  GDBusProxyClass parent_class;
};

GType gsd_remote_desktop_rdp_handover_proxy_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GsdRemoteDesktopRdpHandoverProxy, g_object_unref)
#endif

void gsd_remote_desktop_rdp_handover_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
GsdRemoteDesktopRdpHandover *gsd_remote_desktop_rdp_handover_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error);
GsdRemoteDesktopRdpHandover *gsd_remote_desktop_rdp_handover_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);

void gsd_remote_desktop_rdp_handover_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data);
GsdRemoteDesktopRdpHandover *gsd_remote_desktop_rdp_handover_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error);
GsdRemoteDesktopRdpHandover *gsd_remote_desktop_rdp_handover_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error);


/* ---- */

#define GSD_TYPE_REMOTE_DESKTOP_RDP_HANDOVER_SKELETON (gsd_remote_desktop_rdp_handover_skeleton_get_type ())
#define GSD_REMOTE_DESKTOP_RDP_HANDOVER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_HANDOVER_SKELETON, GsdRemoteDesktopRdpHandoverSkeleton))
#define GSD_REMOTE_DESKTOP_RDP_HANDOVER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GSD_TYPE_REMOTE_DESKTOP_RDP_HANDOVER_SKELETON, GsdRemoteDesktopRdpHandoverSkeletonClass))
#define GSD_REMOTE_DESKTOP_RDP_HANDOVER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_HANDOVER_SKELETON, GsdRemoteDesktopRdpHandoverSkeletonClass))
#define GSD_IS_REMOTE_DESKTOP_RDP_HANDOVER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_REMOTE_DESKTOP_RDP_HANDOVER_SKELETON))
#define GSD_IS_REMOTE_DESKTOP_RDP_HANDOVER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_REMOTE_DESKTOP_RDP_HANDOVER_SKELETON))

typedef struct _GsdRemoteDesktopRdpHandoverSkeleton GsdRemoteDesktopRdpHandoverSkeleton;
typedef struct _GsdRemoteDesktopRdpHandoverSkeletonClass GsdRemoteDesktopRdpHandoverSkeletonClass;
typedef struct _GsdRemoteDesktopRdpHandoverSkeletonPrivate GsdRemoteDesktopRdpHandoverSkeletonPrivate;

struct _GsdRemoteDesktopRdpHandoverSkeleton
{
  /*< private >*/
  GDBusInterfaceSkeleton parent_instance;
  GsdRemoteDesktopRdpHandoverSkeletonPrivate *priv;
};

struct _GsdRemoteDesktopRdpHandoverSkeletonClass
{
  GDBusInterfaceSkeletonClass parent_class;
};

GType gsd_remote_desktop_rdp_handover_skeleton_get_type (void) G_GNUC_CONST;

#if GLIB_CHECK_VERSION(2, 44, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GsdRemoteDesktopRdpHandoverSkeleton, g_object_unref)
#endif

GsdRemoteDesktopRdpHandover *gsd_remote_desktop_rdp_handover_skeleton_new (void);


G_END_DECLS

#endif /* __ORG_GNOME_REMOTEDESKTOP_H__ */
