/* geary-web-process.h generated by valac 0.56.19, the Vala compiler, do not modify */

#ifndef __SRC_GEARY_WEB_PROCESS_H__
#define __SRC_GEARY_WEB_PROCESS_H__

#include <webkit2/webkit-web-extension.h>
#include <glib.h>
#include <glib-object.h>
#include <jsc/jsc.h>
#include <float.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>

G_BEGIN_DECLS

#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define TYPE_GEARY_WEB_EXTENSION (geary_web_extension_get_type ())
#define GEARY_WEB_EXTENSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GEARY_WEB_EXTENSION, GearyWebExtension))
#define GEARY_WEB_EXTENSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GEARY_WEB_EXTENSION, GearyWebExtensionClass))
#define IS_GEARY_WEB_EXTENSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GEARY_WEB_EXTENSION))
#define IS_GEARY_WEB_EXTENSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GEARY_WEB_EXTENSION))
#define GEARY_WEB_EXTENSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GEARY_WEB_EXTENSION, GearyWebExtensionClass))

typedef struct _GearyWebExtension GearyWebExtension;
typedef struct _GearyWebExtensionClass GearyWebExtensionClass;
typedef struct _GearyWebExtensionPrivate GearyWebExtensionPrivate;

#define UTIL_JS_TYPE_ERROR (util_js_error_get_type ())
typedef enum  {
	UTIL_JS_JSC_TYPE_UNKNOWN,
	UTIL_JS_JSC_TYPE_UNDEFINED,
	UTIL_JS_JSC_TYPE_NULL,
	UTIL_JS_JSC_TYPE_FUNCTION,
	UTIL_JS_JSC_TYPE_STRING,
	UTIL_JS_JSC_TYPE_NUMBER,
	UTIL_JS_JSC_TYPE_BOOLEAN,
	UTIL_JS_JSC_TYPE_ARRAY,
	UTIL_JS_JSC_TYPE_CONSTRUCTOR,
	UTIL_JS_JSC_TYPE_OBJECT
} UtilJSJscType;

#define UTIL_JS_TYPE_JSC_TYPE (util_js_jsc_type_get_type ())

#define UTIL_JS_TYPE_CALLABLE (util_js_callable_get_type ())
#define UTIL_JS_CALLABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UTIL_JS_TYPE_CALLABLE, UtilJSCallable))
#define UTIL_JS_CALLABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UTIL_JS_TYPE_CALLABLE, UtilJSCallableClass))
#define UTIL_JS_IS_CALLABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UTIL_JS_TYPE_CALLABLE))
#define UTIL_JS_IS_CALLABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UTIL_JS_TYPE_CALLABLE))
#define UTIL_JS_CALLABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UTIL_JS_TYPE_CALLABLE, UtilJSCallableClass))

typedef struct _UtilJSCallable UtilJSCallable;
typedef struct _UtilJSCallableClass UtilJSCallableClass;
typedef struct _UtilJSCallablePrivate UtilJSCallablePrivate;

struct _GearyWebExtension {
	GObject parent_instance;
	GearyWebExtensionPrivate * priv;
};

struct _GearyWebExtensionClass {
	GObjectClass parent_class;
};

typedef enum  {
	UTIL_JS_ERROR_EXCEPTION,
	UTIL_JS_ERROR_TYPE
} UtilJSError;
#define UTIL_JS_ERROR util_js_error_quark ()

struct _UtilJSCallable {
	GTypeInstance parent_instance;
	volatile int ref_count;
	UtilJSCallablePrivate * priv;
};

struct _UtilJSCallableClass {
	GTypeClass parent_class;
	void (*finalize) (UtilJSCallable *self);
};

VALA_EXTERN void webkit_web_extension_initialize_with_user_data (WebKitWebExtension* extension,
                                                     GVariant* data);
VALA_EXTERN GType geary_web_extension_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GearyWebExtension, g_object_unref)
VALA_EXTERN GearyWebExtension* geary_web_extension_new (WebKitWebExtension* extension);
VALA_EXTERN GearyWebExtension* geary_web_extension_construct (GType object_type,
                                                  WebKitWebExtension* extension);
VALA_EXTERN GQuark util_js_error_quark (void);
VALA_EXTERN GType util_js_error_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType util_js_jsc_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN UtilJSJscType util_js_jsc_type_to_type (JSCValue* value);
VALA_EXTERN gboolean util_js_to_bool (JSCValue* value,
                          GError** error);
VALA_EXTERN gdouble util_js_to_double (JSCValue* value,
                           GError** error);
VALA_EXTERN gint32 util_js_to_int32 (JSCValue* value,
                         GError** error);
VALA_EXTERN gchar* util_js_to_string (JSCValue* value,
                          GError** error);
VALA_EXTERN JSCValue* util_js_get_property (JSCValue* value,
                                const gchar* name,
                                GError** error);
VALA_EXTERN void util_js_check_exception (JSCContext* context,
                              GError** error);
VALA_EXTERN GVariant* util_js_value_to_variant (JSCValue* value,
                                    GError** error);
VALA_EXTERN JSCValue* util_js_variant_to_value (JSCContext* context,
                                    GVariant* variant,
                                    GError** error);
VALA_EXTERN gpointer util_js_callable_ref (gpointer instance);
VALA_EXTERN void util_js_callable_unref (gpointer instance);
VALA_EXTERN GParamSpec* util_js_param_spec_callable (const gchar* name,
                                         const gchar* nick,
                                         const gchar* blurb,
                                         GType object_type,
                                         GParamFlags flags);
VALA_EXTERN void util_js_value_set_callable (GValue* value,
                                 gpointer v_object);
VALA_EXTERN void util_js_value_take_callable (GValue* value,
                                  gpointer v_object);
VALA_EXTERN gpointer util_js_value_get_callable (const GValue* value);
VALA_EXTERN GType util_js_callable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (UtilJSCallable, util_js_callable_unref)
VALA_EXTERN UtilJSCallable* util_js_callable (const gchar* base_name);
VALA_EXTERN UtilJSCallable* util_js_callable_new (const gchar* name);
VALA_EXTERN UtilJSCallable* util_js_callable_construct (GType object_type,
                                            const gchar* name);
VALA_EXTERN WebKitUserMessage* util_js_callable_to_message (UtilJSCallable* self);
VALA_EXTERN gchar* util_js_callable_to_string (UtilJSCallable* self);
VALA_EXTERN UtilJSCallable* util_js_callable_string (UtilJSCallable* self,
                                         const gchar* value);
VALA_EXTERN UtilJSCallable* util_js_callable_double (UtilJSCallable* self,
                                         gdouble value);
VALA_EXTERN UtilJSCallable* util_js_callable_int (UtilJSCallable* self,
                                      gint value);
VALA_EXTERN UtilJSCallable* util_js_callable_bool (UtilJSCallable* self,
                                       gboolean value);

G_END_DECLS

#endif
