G_BEGIN_DECLS

typedef void (*tp_cli_channel_signal_callback_closed) (TpChannel *proxy,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_connect_to_closed (TpChannel *proxy,
    tp_cli_channel_signal_callback_closed callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_callback_for_close) (TpChannel *proxy,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_call_close (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_callback_for_close callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_run_close (TpChannel *proxy,
    gint timeout_ms,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_callback_for_get_channel_type) (TpChannel *proxy,
    const gchar *out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_call_get_channel_type (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_callback_for_get_channel_type callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_run_get_channel_type (TpChannel *proxy,
    gint timeout_ms,
    gchar **out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_callback_for_get_handle) (TpChannel *proxy,
    guint out0,
    guint out1,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_call_get_handle (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_callback_for_get_handle callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_run_get_handle (TpChannel *proxy,
    gint timeout_ms,
    guint *out0,
    guint *out1,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_callback_for_get_interfaces) (TpChannel *proxy,
    const gchar **out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_call_get_interfaces (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_callback_for_get_interfaces callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_run_get_interfaces (TpChannel *proxy,
    gint timeout_ms,
    gchar ***out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_interface_chat_state_signal_callback_chat_state_changed) (TpChannel *proxy,
    guint arg_contact,
    guint arg_state,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_interface_chat_state_connect_to_chat_state_changed (TpChannel *proxy,
    tp_cli_channel_interface_chat_state_signal_callback_chat_state_changed callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_interface_chat_state_callback_for_set_chat_state) (TpChannel *proxy,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_interface_chat_state_call_set_chat_state (TpChannel *proxy,
    gint timeout_ms,
    guint in_state,
    tp_cli_channel_interface_chat_state_callback_for_set_chat_state callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_interface_chat_state_run_set_chat_state (TpChannel *proxy,
    gint timeout_ms,
    guint in_state,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_interface_dtmf_callback_for_start_tone) (TpChannel *proxy,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_interface_dtmf_call_start_tone (TpChannel *proxy,
    gint timeout_ms,
    guint in_stream_id,
    guchar in_event,
    tp_cli_channel_interface_dtmf_callback_for_start_tone callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_interface_dtmf_run_start_tone (TpChannel *proxy,
    gint timeout_ms,
    guint in_stream_id,
    guchar in_event,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_interface_dtmf_callback_for_stop_tone) (TpChannel *proxy,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_interface_dtmf_call_stop_tone (TpChannel *proxy,
    gint timeout_ms,
    guint in_stream_id,
    tp_cli_channel_interface_dtmf_callback_for_stop_tone callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_interface_dtmf_run_stop_tone (TpChannel *proxy,
    gint timeout_ms,
    guint in_stream_id,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_interface_group_signal_callback_group_flags_changed) (TpChannel *proxy,
    guint arg_added,
    guint arg_removed,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_interface_group_connect_to_group_flags_changed (TpChannel *proxy,
    tp_cli_channel_interface_group_signal_callback_group_flags_changed callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_interface_group_signal_callback_members_changed) (TpChannel *proxy,
    const gchar *arg_message,
    const GArray *arg_added,
    const GArray *arg_removed,
    const GArray *arg_local_pending,
    const GArray *arg_remote_pending,
    guint arg_actor,
    guint arg_reason,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_interface_group_connect_to_members_changed (TpChannel *proxy,
    tp_cli_channel_interface_group_signal_callback_members_changed callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_interface_group_callback_for_add_members) (TpChannel *proxy,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_interface_group_call_add_members (TpChannel *proxy,
    gint timeout_ms,
    const GArray *in_contacts,
    const gchar *in_message,
    tp_cli_channel_interface_group_callback_for_add_members callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_interface_group_run_add_members (TpChannel *proxy,
    gint timeout_ms,
    const GArray *in_contacts,
    const gchar *in_message,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_interface_group_callback_for_get_all_members) (TpChannel *proxy,
    const GArray *out0,
    const GArray *out1,
    const GArray *out2,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_interface_group_call_get_all_members (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_interface_group_callback_for_get_all_members callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_interface_group_run_get_all_members (TpChannel *proxy,
    gint timeout_ms,
    GArray **out0,
    GArray **out1,
    GArray **out2,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_interface_group_callback_for_get_group_flags) (TpChannel *proxy,
    guint out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_interface_group_call_get_group_flags (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_interface_group_callback_for_get_group_flags callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_interface_group_run_get_group_flags (TpChannel *proxy,
    gint timeout_ms,
    guint *out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_interface_group_callback_for_get_handle_owners) (TpChannel *proxy,
    const GArray *out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_interface_group_call_get_handle_owners (TpChannel *proxy,
    gint timeout_ms,
    const GArray *in_handles,
    tp_cli_channel_interface_group_callback_for_get_handle_owners callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_interface_group_run_get_handle_owners (TpChannel *proxy,
    gint timeout_ms,
    const GArray *in_handles,
    GArray **out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_interface_group_callback_for_get_local_pending_members) (TpChannel *proxy,
    const GArray *out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_interface_group_call_get_local_pending_members (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_interface_group_callback_for_get_local_pending_members callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_interface_group_run_get_local_pending_members (TpChannel *proxy,
    gint timeout_ms,
    GArray **out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_interface_group_callback_for_get_local_pending_members_with_info) (TpChannel *proxy,
    const GPtrArray *out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_interface_group_call_get_local_pending_members_with_info (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_interface_group_callback_for_get_local_pending_members_with_info callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_interface_group_run_get_local_pending_members_with_info (TpChannel *proxy,
    gint timeout_ms,
    GPtrArray **out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_interface_group_callback_for_get_members) (TpChannel *proxy,
    const GArray *out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_interface_group_call_get_members (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_interface_group_callback_for_get_members callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_interface_group_run_get_members (TpChannel *proxy,
    gint timeout_ms,
    GArray **out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_interface_group_callback_for_get_remote_pending_members) (TpChannel *proxy,
    const GArray *out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_interface_group_call_get_remote_pending_members (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_interface_group_callback_for_get_remote_pending_members callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_interface_group_run_get_remote_pending_members (TpChannel *proxy,
    gint timeout_ms,
    GArray **out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_interface_group_callback_for_get_self_handle) (TpChannel *proxy,
    guint out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_interface_group_call_get_self_handle (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_interface_group_callback_for_get_self_handle callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_interface_group_run_get_self_handle (TpChannel *proxy,
    gint timeout_ms,
    guint *out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_interface_group_callback_for_remove_members) (TpChannel *proxy,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_interface_group_call_remove_members (TpChannel *proxy,
    gint timeout_ms,
    const GArray *in_contacts,
    const gchar *in_message,
    tp_cli_channel_interface_group_callback_for_remove_members callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_interface_group_run_remove_members (TpChannel *proxy,
    gint timeout_ms,
    const GArray *in_contacts,
    const gchar *in_message,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_interface_group_callback_for_remove_members_with_reason) (TpChannel *proxy,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_interface_group_call_remove_members_with_reason (TpChannel *proxy,
    gint timeout_ms,
    const GArray *in_contacts,
    const gchar *in_message,
    guint in_reason,
    tp_cli_channel_interface_group_callback_for_remove_members_with_reason callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_interface_group_run_remove_members_with_reason (TpChannel *proxy,
    gint timeout_ms,
    const GArray *in_contacts,
    const gchar *in_message,
    guint in_reason,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_interface_media_signalling_signal_callback_new_session_handler) (TpChannel *proxy,
    const gchar *arg_session_handler,
    const gchar *arg_type,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_interface_media_signalling_connect_to_new_session_handler (TpChannel *proxy,
    tp_cli_channel_interface_media_signalling_signal_callback_new_session_handler callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_interface_media_signalling_callback_for_get_session_handlers) (TpChannel *proxy,
    const GPtrArray *out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_interface_media_signalling_call_get_session_handlers (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_interface_media_signalling_callback_for_get_session_handlers callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_interface_media_signalling_run_get_session_handlers (TpChannel *proxy,
    gint timeout_ms,
    GPtrArray **out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_interface_password_signal_callback_password_flags_changed) (TpChannel *proxy,
    guint arg_added,
    guint arg_removed,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_interface_password_connect_to_password_flags_changed (TpChannel *proxy,
    tp_cli_channel_interface_password_signal_callback_password_flags_changed callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_interface_password_callback_for_get_password_flags) (TpChannel *proxy,
    guint out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_interface_password_call_get_password_flags (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_interface_password_callback_for_get_password_flags callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_interface_password_run_get_password_flags (TpChannel *proxy,
    gint timeout_ms,
    guint *out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_interface_password_callback_for_provide_password) (TpChannel *proxy,
    gboolean out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_interface_password_call_provide_password (TpChannel *proxy,
    gint timeout_ms,
    const gchar *in_password,
    tp_cli_channel_interface_password_callback_for_provide_password callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_interface_password_run_provide_password (TpChannel *proxy,
    gint timeout_ms,
    const gchar *in_password,
    gboolean *out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_room_list_signal_callback_got_rooms) (TpChannel *proxy,
    const GPtrArray *arg_rooms,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_type_room_list_connect_to_got_rooms (TpChannel *proxy,
    tp_cli_channel_type_room_list_signal_callback_got_rooms callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_type_room_list_signal_callback_listing_rooms) (TpChannel *proxy,
    gboolean arg_listing,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_type_room_list_connect_to_listing_rooms (TpChannel *proxy,
    tp_cli_channel_type_room_list_signal_callback_listing_rooms callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_type_room_list_callback_for_get_listing_rooms) (TpChannel *proxy,
    gboolean out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_room_list_call_get_listing_rooms (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_type_room_list_callback_for_get_listing_rooms callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_room_list_run_get_listing_rooms (TpChannel *proxy,
    gint timeout_ms,
    gboolean *out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_room_list_callback_for_list_rooms) (TpChannel *proxy,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_room_list_call_list_rooms (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_type_room_list_callback_for_list_rooms callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_room_list_run_list_rooms (TpChannel *proxy,
    gint timeout_ms,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_room_list_callback_for_stop_listing) (TpChannel *proxy,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_room_list_call_stop_listing (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_type_room_list_callback_for_stop_listing callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_room_list_run_stop_listing (TpChannel *proxy,
    gint timeout_ms,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_streamed_media_signal_callback_stream_added) (TpChannel *proxy,
    guint arg_stream_id,
    guint arg_contact_handle,
    guint arg_stream_type,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_type_streamed_media_connect_to_stream_added (TpChannel *proxy,
    tp_cli_channel_type_streamed_media_signal_callback_stream_added callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_type_streamed_media_signal_callback_stream_direction_changed) (TpChannel *proxy,
    guint arg_stream_id,
    guint arg_stream_direction,
    guint arg_pending_flags,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_type_streamed_media_connect_to_stream_direction_changed (TpChannel *proxy,
    tp_cli_channel_type_streamed_media_signal_callback_stream_direction_changed callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_type_streamed_media_signal_callback_stream_error) (TpChannel *proxy,
    guint arg_stream_id,
    guint arg_errno,
    const gchar *arg_message,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_type_streamed_media_connect_to_stream_error (TpChannel *proxy,
    tp_cli_channel_type_streamed_media_signal_callback_stream_error callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_type_streamed_media_signal_callback_stream_removed) (TpChannel *proxy,
    guint arg_stream_id,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_type_streamed_media_connect_to_stream_removed (TpChannel *proxy,
    tp_cli_channel_type_streamed_media_signal_callback_stream_removed callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_type_streamed_media_signal_callback_stream_state_changed) (TpChannel *proxy,
    guint arg_stream_id,
    guint arg_stream_state,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_type_streamed_media_connect_to_stream_state_changed (TpChannel *proxy,
    tp_cli_channel_type_streamed_media_signal_callback_stream_state_changed callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_type_streamed_media_callback_for_list_streams) (TpChannel *proxy,
    const GPtrArray *out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_streamed_media_call_list_streams (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_type_streamed_media_callback_for_list_streams callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_streamed_media_run_list_streams (TpChannel *proxy,
    gint timeout_ms,
    GPtrArray **out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_streamed_media_callback_for_remove_streams) (TpChannel *proxy,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_streamed_media_call_remove_streams (TpChannel *proxy,
    gint timeout_ms,
    const GArray *in_streams,
    tp_cli_channel_type_streamed_media_callback_for_remove_streams callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_streamed_media_run_remove_streams (TpChannel *proxy,
    gint timeout_ms,
    const GArray *in_streams,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_streamed_media_callback_for_request_stream_direction) (TpChannel *proxy,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_streamed_media_call_request_stream_direction (TpChannel *proxy,
    gint timeout_ms,
    guint in_stream_id,
    guint in_stream_direction,
    tp_cli_channel_type_streamed_media_callback_for_request_stream_direction callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_streamed_media_run_request_stream_direction (TpChannel *proxy,
    gint timeout_ms,
    guint in_stream_id,
    guint in_stream_direction,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_streamed_media_callback_for_request_streams) (TpChannel *proxy,
    const GPtrArray *out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_streamed_media_call_request_streams (TpChannel *proxy,
    gint timeout_ms,
    guint in_contact_handle,
    const GArray *in_types,
    tp_cli_channel_type_streamed_media_callback_for_request_streams callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_streamed_media_run_request_streams (TpChannel *proxy,
    gint timeout_ms,
    guint in_contact_handle,
    const GArray *in_types,
    GPtrArray **out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_text_signal_callback_lost_message) (TpChannel *proxy,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_type_text_connect_to_lost_message (TpChannel *proxy,
    tp_cli_channel_type_text_signal_callback_lost_message callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_type_text_signal_callback_received) (TpChannel *proxy,
    guint arg_id,
    guint arg_timestamp,
    guint arg_sender,
    guint arg_type,
    guint arg_flags,
    const gchar *arg_text,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_type_text_connect_to_received (TpChannel *proxy,
    tp_cli_channel_type_text_signal_callback_received callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_type_text_signal_callback_send_error) (TpChannel *proxy,
    guint arg_error,
    guint arg_timestamp,
    guint arg_type,
    const gchar *arg_text,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_type_text_connect_to_send_error (TpChannel *proxy,
    tp_cli_channel_type_text_signal_callback_send_error callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_type_text_signal_callback_sent) (TpChannel *proxy,
    guint arg_timestamp,
    guint arg_type,
    const gchar *arg_text,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_type_text_connect_to_sent (TpChannel *proxy,
    tp_cli_channel_type_text_signal_callback_sent callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_type_text_callback_for_acknowledge_pending_messages) (TpChannel *proxy,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_text_call_acknowledge_pending_messages (TpChannel *proxy,
    gint timeout_ms,
    const GArray *in_ids,
    tp_cli_channel_type_text_callback_for_acknowledge_pending_messages callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_text_run_acknowledge_pending_messages (TpChannel *proxy,
    gint timeout_ms,
    const GArray *in_ids,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_text_callback_for_get_message_types) (TpChannel *proxy,
    const GArray *out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_text_call_get_message_types (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_type_text_callback_for_get_message_types callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_text_run_get_message_types (TpChannel *proxy,
    gint timeout_ms,
    GArray **out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_text_callback_for_list_pending_messages) (TpChannel *proxy,
    const GPtrArray *out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_text_call_list_pending_messages (TpChannel *proxy,
    gint timeout_ms,
    gboolean in_clear,
    tp_cli_channel_type_text_callback_for_list_pending_messages callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_text_run_list_pending_messages (TpChannel *proxy,
    gint timeout_ms,
    gboolean in_clear,
    GPtrArray **out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_text_callback_for_send) (TpChannel *proxy,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_text_call_send (TpChannel *proxy,
    gint timeout_ms,
    guint in_type,
    const gchar *in_text,
    tp_cli_channel_type_text_callback_for_send callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_text_run_send (TpChannel *proxy,
    gint timeout_ms,
    guint in_type,
    const gchar *in_text,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_tubes_signal_callback_new_tube) (TpChannel *proxy,
    guint arg_id,
    guint arg_initiator,
    guint arg_type,
    const gchar *arg_service,
    GHashTable *arg_parameters,
    guint arg_state,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_type_tubes_connect_to_new_tube (TpChannel *proxy,
    tp_cli_channel_type_tubes_signal_callback_new_tube callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_type_tubes_signal_callback_tube_state_changed) (TpChannel *proxy,
    guint arg_id,
    guint arg_state,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_type_tubes_connect_to_tube_state_changed (TpChannel *proxy,
    tp_cli_channel_type_tubes_signal_callback_tube_state_changed callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_type_tubes_signal_callback_tube_closed) (TpChannel *proxy,
    guint arg_id,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_type_tubes_connect_to_tube_closed (TpChannel *proxy,
    tp_cli_channel_type_tubes_signal_callback_tube_closed callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_type_tubes_signal_callback_d_bus_names_changed) (TpChannel *proxy,
    guint arg_id,
    const GPtrArray *arg_added,
    const GArray *arg_removed,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_type_tubes_connect_to_d_bus_names_changed (TpChannel *proxy,
    tp_cli_channel_type_tubes_signal_callback_d_bus_names_changed callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_type_tubes_signal_callback_stream_tube_new_connection) (TpChannel *proxy,
    guint arg_id,
    guint arg_handle,
    gpointer user_data, GObject *weak_object);
TpProxySignalConnection *tp_cli_channel_type_tubes_connect_to_stream_tube_new_connection (TpChannel *proxy,
    tp_cli_channel_type_tubes_signal_callback_stream_tube_new_connection callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object,
    GError **error);

typedef void (*tp_cli_channel_type_tubes_callback_for_get_available_stream_tube_types) (TpChannel *proxy,
    GHashTable *out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_tubes_call_get_available_stream_tube_types (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_type_tubes_callback_for_get_available_stream_tube_types callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_tubes_run_get_available_stream_tube_types (TpChannel *proxy,
    gint timeout_ms,
    GHashTable **out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_tubes_callback_for_get_available_tube_types) (TpChannel *proxy,
    const GArray *out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_tubes_call_get_available_tube_types (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_type_tubes_callback_for_get_available_tube_types callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_tubes_run_get_available_tube_types (TpChannel *proxy,
    gint timeout_ms,
    GArray **out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_tubes_callback_for_list_tubes) (TpChannel *proxy,
    const GPtrArray *out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_tubes_call_list_tubes (TpChannel *proxy,
    gint timeout_ms,
    tp_cli_channel_type_tubes_callback_for_list_tubes callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_tubes_run_list_tubes (TpChannel *proxy,
    gint timeout_ms,
    GPtrArray **out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_tubes_callback_for_offer_d_bus_tube) (TpChannel *proxy,
    guint out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_tubes_call_offer_d_bus_tube (TpChannel *proxy,
    gint timeout_ms,
    const gchar *in_service,
    GHashTable *in_parameters,
    tp_cli_channel_type_tubes_callback_for_offer_d_bus_tube callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_tubes_run_offer_d_bus_tube (TpChannel *proxy,
    gint timeout_ms,
    const gchar *in_service,
    GHashTable *in_parameters,
    guint *out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_tubes_callback_for_offer_stream_tube) (TpChannel *proxy,
    guint out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_tubes_call_offer_stream_tube (TpChannel *proxy,
    gint timeout_ms,
    const gchar *in_service,
    GHashTable *in_parameters,
    guint in_address_type,
    const GValue *in_address,
    guint in_access_control,
    const GValue *in_access_control_param,
    tp_cli_channel_type_tubes_callback_for_offer_stream_tube callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_tubes_run_offer_stream_tube (TpChannel *proxy,
    gint timeout_ms,
    const gchar *in_service,
    GHashTable *in_parameters,
    guint in_address_type,
    const GValue *in_address,
    guint in_access_control,
    const GValue *in_access_control_param,
    guint *out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_tubes_callback_for_accept_d_bus_tube) (TpChannel *proxy,
    const gchar *out_address,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_tubes_call_accept_d_bus_tube (TpChannel *proxy,
    gint timeout_ms,
    guint in_id,
    tp_cli_channel_type_tubes_callback_for_accept_d_bus_tube callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_tubes_run_accept_d_bus_tube (TpChannel *proxy,
    gint timeout_ms,
    guint in_id,
    gchar **out_address,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_tubes_callback_for_accept_stream_tube) (TpChannel *proxy,
    const GValue *out_address,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_tubes_call_accept_stream_tube (TpChannel *proxy,
    gint timeout_ms,
    guint in_id,
    guint in_address_type,
    guint in_access_control,
    const GValue *in_access_control_param,
    tp_cli_channel_type_tubes_callback_for_accept_stream_tube callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_tubes_run_accept_stream_tube (TpChannel *proxy,
    gint timeout_ms,
    guint in_id,
    guint in_address_type,
    guint in_access_control,
    const GValue *in_access_control_param,
    GValue **out_address,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_tubes_callback_for_close_tube) (TpChannel *proxy,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_tubes_call_close_tube (TpChannel *proxy,
    gint timeout_ms,
    guint in_id,
    tp_cli_channel_type_tubes_callback_for_close_tube callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_tubes_run_close_tube (TpChannel *proxy,
    gint timeout_ms,
    guint in_id,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_tubes_callback_for_get_d_bus_tube_address) (TpChannel *proxy,
    const gchar *out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_tubes_call_get_d_bus_tube_address (TpChannel *proxy,
    gint timeout_ms,
    guint in_id,
    tp_cli_channel_type_tubes_callback_for_get_d_bus_tube_address callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_tubes_run_get_d_bus_tube_address (TpChannel *proxy,
    gint timeout_ms,
    guint in_id,
    gchar **out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_tubes_callback_for_get_d_bus_names) (TpChannel *proxy,
    const GPtrArray *out0,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_tubes_call_get_d_bus_names (TpChannel *proxy,
    gint timeout_ms,
    guint in_id,
    tp_cli_channel_type_tubes_callback_for_get_d_bus_names callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_tubes_run_get_d_bus_names (TpChannel *proxy,
    gint timeout_ms,
    guint in_id,
    GPtrArray **out0,
    GError **error,
    GMainLoop **loop);


typedef void (*tp_cli_channel_type_tubes_callback_for_get_stream_tube_socket_address) (TpChannel *proxy,
    guint out_address_type,
    const GValue *out_address,
    const GError *error, gpointer user_data,
    GObject *weak_object);

TpProxyPendingCall *tp_cli_channel_type_tubes_call_get_stream_tube_socket_address (TpChannel *proxy,
    gint timeout_ms,
    guint in_id,
    tp_cli_channel_type_tubes_callback_for_get_stream_tube_socket_address callback,
    gpointer user_data,
    GDestroyNotify destroy,
    GObject *weak_object);

gboolean tp_cli_channel_type_tubes_run_get_stream_tube_socket_address (TpChannel *proxy,
    gint timeout_ms,
    guint in_id,
    guint *out_address_type,
    GValue **out_address,
    GError **error,
    GMainLoop **loop);


G_END_DECLS
