/* shotwell-plugin-common.h generated by valac 0.32.1, the Vala compiler, do not modify */


#ifndef __PLUGINS_SHOTWELL_PLUGIN_COMMON_H__
#define __PLUGINS_SHOTWELL_PLUGIN_COMMON_H__

#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <glib-object.h>
#include <libsoup/soup.h>
#include "shotwell-plugin-dev-1.0.h"
#include <gee.h>
#include <libxml/tree.h>
#include <gio/gio.h>
#include <gdk-pixbuf/gdk-pixbuf.h>

G_BEGIN_DECLS


#define PUBLISHING_REST_SUPPORT_TYPE_SESSION (publishing_rest_support_session_get_type ())
#define PUBLISHING_REST_SUPPORT_SESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_REST_SUPPORT_TYPE_SESSION, PublishingRESTSupportSession))
#define PUBLISHING_REST_SUPPORT_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_REST_SUPPORT_TYPE_SESSION, PublishingRESTSupportSessionClass))
#define PUBLISHING_REST_SUPPORT_IS_SESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_REST_SUPPORT_TYPE_SESSION))
#define PUBLISHING_REST_SUPPORT_IS_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_REST_SUPPORT_TYPE_SESSION))
#define PUBLISHING_REST_SUPPORT_SESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_REST_SUPPORT_TYPE_SESSION, PublishingRESTSupportSessionClass))

typedef struct _PublishingRESTSupportSession PublishingRESTSupportSession;
typedef struct _PublishingRESTSupportSessionClass PublishingRESTSupportSessionClass;
typedef struct _PublishingRESTSupportSessionPrivate PublishingRESTSupportSessionPrivate;

#define PUBLISHING_REST_SUPPORT_TYPE_HTTP_METHOD (publishing_rest_support_http_method_get_type ())

#define PUBLISHING_REST_SUPPORT_TYPE_ARGUMENT (publishing_rest_support_argument_get_type ())
#define PUBLISHING_REST_SUPPORT_ARGUMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_REST_SUPPORT_TYPE_ARGUMENT, PublishingRESTSupportArgument))
#define PUBLISHING_REST_SUPPORT_ARGUMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_REST_SUPPORT_TYPE_ARGUMENT, PublishingRESTSupportArgumentClass))
#define PUBLISHING_REST_SUPPORT_IS_ARGUMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_REST_SUPPORT_TYPE_ARGUMENT))
#define PUBLISHING_REST_SUPPORT_IS_ARGUMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_REST_SUPPORT_TYPE_ARGUMENT))
#define PUBLISHING_REST_SUPPORT_ARGUMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_REST_SUPPORT_TYPE_ARGUMENT, PublishingRESTSupportArgumentClass))

typedef struct _PublishingRESTSupportArgument PublishingRESTSupportArgument;
typedef struct _PublishingRESTSupportArgumentClass PublishingRESTSupportArgumentClass;
typedef struct _PublishingRESTSupportArgumentPrivate PublishingRESTSupportArgumentPrivate;

#define PUBLISHING_REST_SUPPORT_TYPE_TRANSACTION (publishing_rest_support_transaction_get_type ())
#define PUBLISHING_REST_SUPPORT_TRANSACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_REST_SUPPORT_TYPE_TRANSACTION, PublishingRESTSupportTransaction))
#define PUBLISHING_REST_SUPPORT_TRANSACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_REST_SUPPORT_TYPE_TRANSACTION, PublishingRESTSupportTransactionClass))
#define PUBLISHING_REST_SUPPORT_IS_TRANSACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_REST_SUPPORT_TYPE_TRANSACTION))
#define PUBLISHING_REST_SUPPORT_IS_TRANSACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_REST_SUPPORT_TYPE_TRANSACTION))
#define PUBLISHING_REST_SUPPORT_TRANSACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_REST_SUPPORT_TYPE_TRANSACTION, PublishingRESTSupportTransactionClass))

typedef struct _PublishingRESTSupportTransaction PublishingRESTSupportTransaction;
typedef struct _PublishingRESTSupportTransactionClass PublishingRESTSupportTransactionClass;
typedef struct _PublishingRESTSupportTransactionPrivate PublishingRESTSupportTransactionPrivate;

#define PUBLISHING_REST_SUPPORT_TYPE_UPLOAD_TRANSACTION (publishing_rest_support_upload_transaction_get_type ())
#define PUBLISHING_REST_SUPPORT_UPLOAD_TRANSACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_REST_SUPPORT_TYPE_UPLOAD_TRANSACTION, PublishingRESTSupportUploadTransaction))
#define PUBLISHING_REST_SUPPORT_UPLOAD_TRANSACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_REST_SUPPORT_TYPE_UPLOAD_TRANSACTION, PublishingRESTSupportUploadTransactionClass))
#define PUBLISHING_REST_SUPPORT_IS_UPLOAD_TRANSACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_REST_SUPPORT_TYPE_UPLOAD_TRANSACTION))
#define PUBLISHING_REST_SUPPORT_IS_UPLOAD_TRANSACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_REST_SUPPORT_TYPE_UPLOAD_TRANSACTION))
#define PUBLISHING_REST_SUPPORT_UPLOAD_TRANSACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_REST_SUPPORT_TYPE_UPLOAD_TRANSACTION, PublishingRESTSupportUploadTransactionClass))

typedef struct _PublishingRESTSupportUploadTransaction PublishingRESTSupportUploadTransaction;
typedef struct _PublishingRESTSupportUploadTransactionClass PublishingRESTSupportUploadTransactionClass;
typedef struct _PublishingRESTSupportUploadTransactionPrivate PublishingRESTSupportUploadTransactionPrivate;

#define PUBLISHING_REST_SUPPORT_TYPE_XML_DOCUMENT (publishing_rest_support_xml_document_get_type ())
#define PUBLISHING_REST_SUPPORT_XML_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_REST_SUPPORT_TYPE_XML_DOCUMENT, PublishingRESTSupportXmlDocument))
#define PUBLISHING_REST_SUPPORT_XML_DOCUMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_REST_SUPPORT_TYPE_XML_DOCUMENT, PublishingRESTSupportXmlDocumentClass))
#define PUBLISHING_REST_SUPPORT_IS_XML_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_REST_SUPPORT_TYPE_XML_DOCUMENT))
#define PUBLISHING_REST_SUPPORT_IS_XML_DOCUMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_REST_SUPPORT_TYPE_XML_DOCUMENT))
#define PUBLISHING_REST_SUPPORT_XML_DOCUMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_REST_SUPPORT_TYPE_XML_DOCUMENT, PublishingRESTSupportXmlDocumentClass))

typedef struct _PublishingRESTSupportXmlDocument PublishingRESTSupportXmlDocument;
typedef struct _PublishingRESTSupportXmlDocumentClass PublishingRESTSupportXmlDocumentClass;
typedef struct _PublishingRESTSupportXmlDocumentPrivate PublishingRESTSupportXmlDocumentPrivate;

#define PUBLISHING_REST_SUPPORT_TYPE_BATCH_UPLOADER (publishing_rest_support_batch_uploader_get_type ())
#define PUBLISHING_REST_SUPPORT_BATCH_UPLOADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_REST_SUPPORT_TYPE_BATCH_UPLOADER, PublishingRESTSupportBatchUploader))
#define PUBLISHING_REST_SUPPORT_BATCH_UPLOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_REST_SUPPORT_TYPE_BATCH_UPLOADER, PublishingRESTSupportBatchUploaderClass))
#define PUBLISHING_REST_SUPPORT_IS_BATCH_UPLOADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_REST_SUPPORT_TYPE_BATCH_UPLOADER))
#define PUBLISHING_REST_SUPPORT_IS_BATCH_UPLOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_REST_SUPPORT_TYPE_BATCH_UPLOADER))
#define PUBLISHING_REST_SUPPORT_BATCH_UPLOADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_REST_SUPPORT_TYPE_BATCH_UPLOADER, PublishingRESTSupportBatchUploaderClass))

typedef struct _PublishingRESTSupportBatchUploader PublishingRESTSupportBatchUploader;
typedef struct _PublishingRESTSupportBatchUploaderClass PublishingRESTSupportBatchUploaderClass;
typedef struct _PublishingRESTSupportBatchUploaderPrivate PublishingRESTSupportBatchUploaderPrivate;

#define PUBLISHING_REST_SUPPORT_TYPE_GOOGLE_SESSION (publishing_rest_support_google_session_get_type ())
#define PUBLISHING_REST_SUPPORT_GOOGLE_SESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_REST_SUPPORT_TYPE_GOOGLE_SESSION, PublishingRESTSupportGoogleSession))
#define PUBLISHING_REST_SUPPORT_GOOGLE_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_REST_SUPPORT_TYPE_GOOGLE_SESSION, PublishingRESTSupportGoogleSessionClass))
#define PUBLISHING_REST_SUPPORT_IS_GOOGLE_SESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_REST_SUPPORT_TYPE_GOOGLE_SESSION))
#define PUBLISHING_REST_SUPPORT_IS_GOOGLE_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_REST_SUPPORT_TYPE_GOOGLE_SESSION))
#define PUBLISHING_REST_SUPPORT_GOOGLE_SESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_REST_SUPPORT_TYPE_GOOGLE_SESSION, PublishingRESTSupportGoogleSessionClass))

typedef struct _PublishingRESTSupportGoogleSession PublishingRESTSupportGoogleSession;
typedef struct _PublishingRESTSupportGoogleSessionClass PublishingRESTSupportGoogleSessionClass;
typedef struct _PublishingRESTSupportGoogleSessionPrivate PublishingRESTSupportGoogleSessionPrivate;

#define PUBLISHING_REST_SUPPORT_TYPE_GOOGLE_PUBLISHER (publishing_rest_support_google_publisher_get_type ())
#define PUBLISHING_REST_SUPPORT_GOOGLE_PUBLISHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_REST_SUPPORT_TYPE_GOOGLE_PUBLISHER, PublishingRESTSupportGooglePublisher))
#define PUBLISHING_REST_SUPPORT_GOOGLE_PUBLISHER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_REST_SUPPORT_TYPE_GOOGLE_PUBLISHER, PublishingRESTSupportGooglePublisherClass))
#define PUBLISHING_REST_SUPPORT_IS_GOOGLE_PUBLISHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_REST_SUPPORT_TYPE_GOOGLE_PUBLISHER))
#define PUBLISHING_REST_SUPPORT_IS_GOOGLE_PUBLISHER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_REST_SUPPORT_TYPE_GOOGLE_PUBLISHER))
#define PUBLISHING_REST_SUPPORT_GOOGLE_PUBLISHER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_REST_SUPPORT_TYPE_GOOGLE_PUBLISHER, PublishingRESTSupportGooglePublisherClass))

typedef struct _PublishingRESTSupportGooglePublisher PublishingRESTSupportGooglePublisher;
typedef struct _PublishingRESTSupportGooglePublisherClass PublishingRESTSupportGooglePublisherClass;
typedef struct _PublishingRESTSupportGooglePublisherPrivate PublishingRESTSupportGooglePublisherPrivate;

#define PUBLISHING_REST_SUPPORT_GOOGLE_PUBLISHER_TYPE_AUTHENTICATED_TRANSACTION (publishing_rest_support_google_publisher_authenticated_transaction_get_type ())
#define PUBLISHING_REST_SUPPORT_GOOGLE_PUBLISHER_AUTHENTICATED_TRANSACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_REST_SUPPORT_GOOGLE_PUBLISHER_TYPE_AUTHENTICATED_TRANSACTION, PublishingRESTSupportGooglePublisherAuthenticatedTransaction))
#define PUBLISHING_REST_SUPPORT_GOOGLE_PUBLISHER_AUTHENTICATED_TRANSACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_REST_SUPPORT_GOOGLE_PUBLISHER_TYPE_AUTHENTICATED_TRANSACTION, PublishingRESTSupportGooglePublisherAuthenticatedTransactionClass))
#define PUBLISHING_REST_SUPPORT_GOOGLE_PUBLISHER_IS_AUTHENTICATED_TRANSACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_REST_SUPPORT_GOOGLE_PUBLISHER_TYPE_AUTHENTICATED_TRANSACTION))
#define PUBLISHING_REST_SUPPORT_GOOGLE_PUBLISHER_IS_AUTHENTICATED_TRANSACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_REST_SUPPORT_GOOGLE_PUBLISHER_TYPE_AUTHENTICATED_TRANSACTION))
#define PUBLISHING_REST_SUPPORT_GOOGLE_PUBLISHER_AUTHENTICATED_TRANSACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_REST_SUPPORT_GOOGLE_PUBLISHER_TYPE_AUTHENTICATED_TRANSACTION, PublishingRESTSupportGooglePublisherAuthenticatedTransactionClass))

typedef struct _PublishingRESTSupportGooglePublisherAuthenticatedTransaction PublishingRESTSupportGooglePublisherAuthenticatedTransaction;
typedef struct _PublishingRESTSupportGooglePublisherAuthenticatedTransactionClass PublishingRESTSupportGooglePublisherAuthenticatedTransactionClass;
typedef struct _PublishingRESTSupportGooglePublisherAuthenticatedTransactionPrivate PublishingRESTSupportGooglePublisherAuthenticatedTransactionPrivate;

struct _PublishingRESTSupportSession {
	GTypeInstance parent_instance;
	volatile int ref_count;
	PublishingRESTSupportSessionPrivate * priv;
};

struct _PublishingRESTSupportSessionClass {
	GTypeClass parent_class;
	void (*finalize) (PublishingRESTSupportSession *self);
	gboolean (*is_authenticated) (PublishingRESTSupportSession* self);
};

typedef enum  {
	PUBLISHING_REST_SUPPORT_HTTP_METHOD_GET,
	PUBLISHING_REST_SUPPORT_HTTP_METHOD_POST,
	PUBLISHING_REST_SUPPORT_HTTP_METHOD_PUT
} PublishingRESTSupportHttpMethod;

struct _PublishingRESTSupportArgument {
	GTypeInstance parent_instance;
	volatile int ref_count;
	PublishingRESTSupportArgumentPrivate * priv;
	gchar* key;
	gchar* value;
};

struct _PublishingRESTSupportArgumentClass {
	GTypeClass parent_class;
	void (*finalize) (PublishingRESTSupportArgument *self);
};

struct _PublishingRESTSupportTransaction {
	GTypeInstance parent_instance;
	volatile int ref_count;
	PublishingRESTSupportTransactionPrivate * priv;
};

struct _PublishingRESTSupportTransactionClass {
	GTypeClass parent_class;
	void (*finalize) (PublishingRESTSupportTransaction *self);
	void (*add_header) (PublishingRESTSupportTransaction* self, const gchar* key, const gchar* value);
	void (*execute) (PublishingRESTSupportTransaction* self, GError** error);
};

struct _PublishingRESTSupportUploadTransaction {
	PublishingRESTSupportTransaction parent_instance;
	PublishingRESTSupportUploadTransactionPrivate * priv;
	GHashTable* binary_disposition_table;
	SpitPublishingPublishable* publishable;
	gchar* mime_type;
	GeeHashMap* message_headers;
};

struct _PublishingRESTSupportUploadTransactionClass {
	PublishingRESTSupportTransactionClass parent_class;
};

struct _PublishingRESTSupportXmlDocument {
	GTypeInstance parent_instance;
	volatile int ref_count;
	PublishingRESTSupportXmlDocumentPrivate * priv;
};

struct _PublishingRESTSupportXmlDocumentClass {
	GTypeClass parent_class;
	void (*finalize) (PublishingRESTSupportXmlDocument *self);
};

typedef gchar* (*PublishingRESTSupportXmlDocumentCheckForErrorResponse) (PublishingRESTSupportXmlDocument* doc, void* user_data);
struct _PublishingRESTSupportBatchUploader {
	GTypeInstance parent_instance;
	volatile int ref_count;
	PublishingRESTSupportBatchUploaderPrivate * priv;
};

struct _PublishingRESTSupportBatchUploaderClass {
	GTypeClass parent_class;
	void (*finalize) (PublishingRESTSupportBatchUploader *self);
	PublishingRESTSupportTransaction* (*create_transaction) (PublishingRESTSupportBatchUploader* self, SpitPublishingPublishable* publishable);
};

struct _PublishingRESTSupportGoogleSession {
	PublishingRESTSupportSession parent_instance;
	PublishingRESTSupportGoogleSessionPrivate * priv;
};

struct _PublishingRESTSupportGoogleSessionClass {
	PublishingRESTSupportSessionClass parent_class;
	gchar* (*get_user_name) (PublishingRESTSupportGoogleSession* self);
	gchar* (*get_access_token) (PublishingRESTSupportGoogleSession* self);
	gchar* (*get_refresh_token) (PublishingRESTSupportGoogleSession* self);
	void (*deauthenticate) (PublishingRESTSupportGoogleSession* self);
};

struct _PublishingRESTSupportGooglePublisher {
	GObject parent_instance;
	PublishingRESTSupportGooglePublisherPrivate * priv;
};

struct _PublishingRESTSupportGooglePublisherClass {
	GObjectClass parent_class;
	void (*on_login_flow_complete) (PublishingRESTSupportGooglePublisher* self);
	void (*do_logout) (PublishingRESTSupportGooglePublisher* self);
	gboolean (*is_running) (PublishingRESTSupportGooglePublisher* self);
	void (*start) (PublishingRESTSupportGooglePublisher* self);
	void (*stop) (PublishingRESTSupportGooglePublisher* self);
};

struct _PublishingRESTSupportGooglePublisherAuthenticatedTransaction {
	PublishingRESTSupportTransaction parent_instance;
	PublishingRESTSupportGooglePublisherAuthenticatedTransactionPrivate * priv;
};

struct _PublishingRESTSupportGooglePublisherAuthenticatedTransactionClass {
	PublishingRESTSupportTransactionClass parent_class;
};


gchar* publishing_rest_support_hmac_sha1 (const gchar* key, const gchar* message);
gpointer publishing_rest_support_session_ref (gpointer instance);
void publishing_rest_support_session_unref (gpointer instance);
GParamSpec* publishing_rest_support_param_spec_session (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void publishing_rest_support_value_set_session (GValue* value, gpointer v_object);
void publishing_rest_support_value_take_session (GValue* value, gpointer v_object);
gpointer publishing_rest_support_value_get_session (const GValue* value);
GType publishing_rest_support_session_get_type (void) G_GNUC_CONST;
PublishingRESTSupportSession* publishing_rest_support_session_construct (GType object_type, const gchar* endpoint_url);
void publishing_rest_support_session_notify_wire_message_unqueued (PublishingRESTSupportSession* self, SoupMessage* message);
void publishing_rest_support_session_notify_authenticated (PublishingRESTSupportSession* self);
void publishing_rest_support_session_notify_authentication_failed (PublishingRESTSupportSession* self, GError* err);
gboolean publishing_rest_support_session_is_authenticated (PublishingRESTSupportSession* self);
gchar* publishing_rest_support_session_get_endpoint_url (PublishingRESTSupportSession* self);
void publishing_rest_support_session_stop_transactions (PublishingRESTSupportSession* self);
gboolean publishing_rest_support_session_are_transactions_stopped (PublishingRESTSupportSession* self);
void publishing_rest_support_session_send_wire_message (PublishingRESTSupportSession* self, SoupMessage* message);
GType publishing_rest_support_http_method_get_type (void) G_GNUC_CONST;
gchar* publishing_rest_support_http_method_to_string (PublishingRESTSupportHttpMethod self);
PublishingRESTSupportHttpMethod publishing_rest_support_http_method_from_string (const gchar* str);
gpointer publishing_rest_support_argument_ref (gpointer instance);
void publishing_rest_support_argument_unref (gpointer instance);
GParamSpec* publishing_rest_support_param_spec_argument (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void publishing_rest_support_value_set_argument (GValue* value, gpointer v_object);
void publishing_rest_support_value_take_argument (GValue* value, gpointer v_object);
gpointer publishing_rest_support_value_get_argument (const GValue* value);
GType publishing_rest_support_argument_get_type (void) G_GNUC_CONST;
PublishingRESTSupportArgument* publishing_rest_support_argument_new (const gchar* key, const gchar* value);
PublishingRESTSupportArgument* publishing_rest_support_argument_construct (GType object_type, const gchar* key, const gchar* value);
gint publishing_rest_support_argument_compare (PublishingRESTSupportArgument* arg1, PublishingRESTSupportArgument* arg2);
PublishingRESTSupportArgument** publishing_rest_support_argument_sort (PublishingRESTSupportArgument** inputArray, int inputArray_length1, int* result_length1);
gchar* publishing_rest_support_argument_to_string (PublishingRESTSupportArgument* self);
gpointer publishing_rest_support_transaction_ref (gpointer instance);
void publishing_rest_support_transaction_unref (gpointer instance);
GParamSpec* publishing_rest_support_param_spec_transaction (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void publishing_rest_support_value_set_transaction (GValue* value, gpointer v_object);
void publishing_rest_support_value_take_transaction (GValue* value, gpointer v_object);
gpointer publishing_rest_support_value_get_transaction (const GValue* value);
GType publishing_rest_support_transaction_get_type (void) G_GNUC_CONST;
PublishingRESTSupportTransaction* publishing_rest_support_transaction_new (PublishingRESTSupportSession* parent_session, PublishingRESTSupportHttpMethod method);
PublishingRESTSupportTransaction* publishing_rest_support_transaction_construct (GType object_type, PublishingRESTSupportSession* parent_session, PublishingRESTSupportHttpMethod method);
PublishingRESTSupportTransaction* publishing_rest_support_transaction_new_with_endpoint_url (PublishingRESTSupportSession* parent_session, const gchar* endpoint_url, PublishingRESTSupportHttpMethod method);
PublishingRESTSupportTransaction* publishing_rest_support_transaction_construct_with_endpoint_url (GType object_type, PublishingRESTSupportSession* parent_session, const gchar* endpoint_url, PublishingRESTSupportHttpMethod method);
void publishing_rest_support_transaction_check_response (PublishingRESTSupportTransaction* self, SoupMessage* message, GError** error);
PublishingRESTSupportArgument** publishing_rest_support_transaction_get_arguments (PublishingRESTSupportTransaction* self, int* result_length1);
PublishingRESTSupportArgument** publishing_rest_support_transaction_get_sorted_arguments (PublishingRESTSupportTransaction* self, int* result_length1);
void publishing_rest_support_transaction_set_is_executed (PublishingRESTSupportTransaction* self, gboolean is_executed);
void publishing_rest_support_transaction_send (PublishingRESTSupportTransaction* self, GError** error);
PublishingRESTSupportHttpMethod publishing_rest_support_transaction_get_method (PublishingRESTSupportTransaction* self);
void publishing_rest_support_transaction_add_header (PublishingRESTSupportTransaction* self, const gchar* key, const gchar* value);
void publishing_rest_support_transaction_set_custom_payload (PublishingRESTSupportTransaction* self, const gchar* custom_payload, const gchar* payload_content_type, gulong payload_length);
void publishing_rest_support_transaction_set_message (PublishingRESTSupportTransaction* self, SoupMessage* message);
gboolean publishing_rest_support_transaction_get_is_executed (PublishingRESTSupportTransaction* self);
guint publishing_rest_support_transaction_get_status_code (PublishingRESTSupportTransaction* self);
void publishing_rest_support_transaction_execute (PublishingRESTSupportTransaction* self, GError** error);
gchar* publishing_rest_support_transaction_get_response (PublishingRESTSupportTransaction* self);
SoupMessageHeaders* publishing_rest_support_transaction_get_response_headers (PublishingRESTSupportTransaction* self);
SoupMessage* publishing_rest_support_transaction_get_message (PublishingRESTSupportTransaction* self);
void publishing_rest_support_transaction_add_argument (PublishingRESTSupportTransaction* self, const gchar* name, const gchar* value);
gchar* publishing_rest_support_transaction_get_endpoint_url (PublishingRESTSupportTransaction* self);
PublishingRESTSupportSession* publishing_rest_support_transaction_get_parent_session (PublishingRESTSupportTransaction* self);
GType publishing_rest_support_upload_transaction_get_type (void) G_GNUC_CONST;
PublishingRESTSupportUploadTransaction* publishing_rest_support_upload_transaction_new (PublishingRESTSupportSession* session, SpitPublishingPublishable* publishable);
PublishingRESTSupportUploadTransaction* publishing_rest_support_upload_transaction_construct (GType object_type, PublishingRESTSupportSession* session, SpitPublishingPublishable* publishable);
PublishingRESTSupportUploadTransaction* publishing_rest_support_upload_transaction_new_with_endpoint_url (PublishingRESTSupportSession* session, SpitPublishingPublishable* publishable, const gchar* endpoint_url);
PublishingRESTSupportUploadTransaction* publishing_rest_support_upload_transaction_construct_with_endpoint_url (GType object_type, PublishingRESTSupportSession* session, SpitPublishingPublishable* publishable, const gchar* endpoint_url);
void publishing_rest_support_upload_transaction_set_binary_disposition_table (PublishingRESTSupportUploadTransaction* self, GHashTable* new_disp_table);
gpointer publishing_rest_support_xml_document_ref (gpointer instance);
void publishing_rest_support_xml_document_unref (gpointer instance);
GParamSpec* publishing_rest_support_param_spec_xml_document (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void publishing_rest_support_value_set_xml_document (GValue* value, gpointer v_object);
void publishing_rest_support_value_take_xml_document (GValue* value, gpointer v_object);
gpointer publishing_rest_support_value_get_xml_document (const GValue* value);
GType publishing_rest_support_xml_document_get_type (void) G_GNUC_CONST;
xmlNode* publishing_rest_support_xml_document_get_root_node (PublishingRESTSupportXmlDocument* self);
xmlNode* publishing_rest_support_xml_document_get_named_child (PublishingRESTSupportXmlDocument* self, xmlNode* parent, const gchar* child_name, GError** error);
gchar* publishing_rest_support_xml_document_get_property_value (PublishingRESTSupportXmlDocument* self, xmlNode* node, const gchar* property_key, GError** error);
PublishingRESTSupportXmlDocument* publishing_rest_support_xml_document_parse_string (const gchar* input_string, PublishingRESTSupportXmlDocumentCheckForErrorResponse check_for_error_response, void* check_for_error_response_target, GError** error);
gchar* publishing_rest_support_decimal_entity_encode (const gchar* source);
gpointer publishing_rest_support_batch_uploader_ref (gpointer instance);
void publishing_rest_support_batch_uploader_unref (gpointer instance);
GParamSpec* publishing_rest_support_param_spec_batch_uploader (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void publishing_rest_support_value_set_batch_uploader (GValue* value, gpointer v_object);
void publishing_rest_support_value_take_batch_uploader (GValue* value, gpointer v_object);
gpointer publishing_rest_support_value_get_batch_uploader (const GValue* value);
GType publishing_rest_support_batch_uploader_get_type (void) G_GNUC_CONST;
PublishingRESTSupportBatchUploader* publishing_rest_support_batch_uploader_construct (GType object_type, PublishingRESTSupportSession* session, SpitPublishingPublishable** publishables, int publishables_length1);
PublishingRESTSupportSession* publishing_rest_support_batch_uploader_get_session (PublishingRESTSupportBatchUploader* self);
SpitPublishingPublishable* publishing_rest_support_batch_uploader_get_current_publishable (PublishingRESTSupportBatchUploader* self);
PublishingRESTSupportTransaction* publishing_rest_support_batch_uploader_create_transaction (PublishingRESTSupportBatchUploader* self, SpitPublishingPublishable* publishable);
void publishing_rest_support_batch_uploader_upload (PublishingRESTSupportBatchUploader* self, SpitPublishingProgressCallback status_updated, void* status_updated_target);
gchar* publishing_rest_support_asciify_string (const gchar* s);
GType publishing_rest_support_google_session_get_type (void) G_GNUC_CONST;
gchar* publishing_rest_support_google_session_get_user_name (PublishingRESTSupportGoogleSession* self);
gchar* publishing_rest_support_google_session_get_access_token (PublishingRESTSupportGoogleSession* self);
gchar* publishing_rest_support_google_session_get_refresh_token (PublishingRESTSupportGoogleSession* self);
void publishing_rest_support_google_session_deauthenticate (PublishingRESTSupportGoogleSession* self);
PublishingRESTSupportGoogleSession* publishing_rest_support_google_session_construct (GType object_type);
GType publishing_rest_support_google_publisher_get_type (void) G_GNUC_CONST;
PublishingRESTSupportGooglePublisher* publishing_rest_support_google_publisher_construct (GType object_type, SpitPublishingService* service, SpitPublishingPluginHost* host, const gchar* scope);
SpitPublishingPluginHost* publishing_rest_support_google_publisher_get_host (PublishingRESTSupportGooglePublisher* self);
PublishingRESTSupportGoogleSession* publishing_rest_support_google_publisher_get_session (PublishingRESTSupportGooglePublisher* self);
void publishing_rest_support_google_publisher_start_oauth_flow (PublishingRESTSupportGooglePublisher* self, const gchar* refresh_token);
void publishing_rest_support_google_publisher_on_login_flow_complete (PublishingRESTSupportGooglePublisher* self);
void publishing_rest_support_google_publisher_do_logout (PublishingRESTSupportGooglePublisher* self);
gboolean publishing_rest_support_google_publisher_is_running (PublishingRESTSupportGooglePublisher* self);
void publishing_rest_support_google_publisher_start (PublishingRESTSupportGooglePublisher* self);
void publishing_rest_support_google_publisher_stop (PublishingRESTSupportGooglePublisher* self);
GType publishing_rest_support_google_publisher_authenticated_transaction_get_type (void) G_GNUC_CONST;
PublishingRESTSupportGooglePublisherAuthenticatedTransaction* publishing_rest_support_google_publisher_authenticated_transaction_new (PublishingRESTSupportGoogleSession* session, const gchar* endpoint_url, PublishingRESTSupportHttpMethod method);
PublishingRESTSupportGooglePublisherAuthenticatedTransaction* publishing_rest_support_google_publisher_authenticated_transaction_construct (GType object_type, PublishingRESTSupportGoogleSession* session, const gchar* endpoint_url, PublishingRESTSupportHttpMethod method);
#define RESOURCES_WEBSITE_NAME _ ("Visit the Shotwell home page")
#define RESOURCES_WEBSITE_URL "https://wiki.gnome.org/Apps/Shotwell"
#define RESOURCES_LICENSE "\n" \
"Shotwell is free software; you can redistribute it and/or modify it un" \
"der the \n" \
"terms of the GNU Lesser General Public License as published by the Fre" \
"e \n" \
"Software Foundation; either version 2.1 of the License, or (at your op" \
"tion) \n" \
"any later version.\n" \
"\n" \
"Shotwell is distributed in the hope that it will be useful, but WITHOU" \
"T \n" \
"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " \
"FITNESS\n" \
"FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License f" \
"or \n" \
"more details.\n" \
"\n" \
"You should have received a copy of the GNU Lesser General Public Licen" \
"se \n" \
"along with Shotwell; if not, write to the Free Software Foundation, In" \
"c., \n" \
"51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA\n"
#define RESOURCES_TRANSLATORS _ ("translator-credits")
GdkPixbuf** resources_load_icon_set (GFile* icon_file, int* result_length1);
GdkPixbuf** resources_load_from_resource (const gchar* resource_path, int* result_length1);


G_END_DECLS

#endif
