/* seahorse-common.h generated by valac 0.20.1, the Vala compiler, do not modify */


#ifndef __SEAHORSE_COMMON_H__
#define __SEAHORSE_COMMON_H__

#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>

G_BEGIN_DECLS


#define SEAHORSE_TYPE_DELETABLE (seahorse_deletable_get_type ())
#define SEAHORSE_DELETABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEAHORSE_TYPE_DELETABLE, SeahorseDeletable))
#define SEAHORSE_IS_DELETABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEAHORSE_TYPE_DELETABLE))
#define SEAHORSE_DELETABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SEAHORSE_TYPE_DELETABLE, SeahorseDeletableIface))

typedef struct _SeahorseDeletable SeahorseDeletable;
typedef struct _SeahorseDeletableIface SeahorseDeletableIface;

#define SEAHORSE_TYPE_DELETER (seahorse_deleter_get_type ())
#define SEAHORSE_DELETER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEAHORSE_TYPE_DELETER, SeahorseDeleter))
#define SEAHORSE_DELETER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SEAHORSE_TYPE_DELETER, SeahorseDeleterClass))
#define SEAHORSE_IS_DELETER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEAHORSE_TYPE_DELETER))
#define SEAHORSE_IS_DELETER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SEAHORSE_TYPE_DELETER))
#define SEAHORSE_DELETER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEAHORSE_TYPE_DELETER, SeahorseDeleterClass))

typedef struct _SeahorseDeleter SeahorseDeleter;
typedef struct _SeahorseDeleterClass SeahorseDeleterClass;
typedef struct _SeahorseDeleterPrivate SeahorseDeleterPrivate;

#define SEAHORSE_TYPE_EXPORTABLE (seahorse_exportable_get_type ())
#define SEAHORSE_EXPORTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEAHORSE_TYPE_EXPORTABLE, SeahorseExportable))
#define SEAHORSE_IS_EXPORTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEAHORSE_TYPE_EXPORTABLE))
#define SEAHORSE_EXPORTABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SEAHORSE_TYPE_EXPORTABLE, SeahorseExportableIface))

typedef struct _SeahorseExportable SeahorseExportable;
typedef struct _SeahorseExportableIface SeahorseExportableIface;

#define SEAHORSE_TYPE_EXPORTER_TYPE (seahorse_exporter_type_get_type ())

#define SEAHORSE_TYPE_EXPORTER (seahorse_exporter_get_type ())
#define SEAHORSE_EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEAHORSE_TYPE_EXPORTER, SeahorseExporter))
#define SEAHORSE_IS_EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEAHORSE_TYPE_EXPORTER))
#define SEAHORSE_EXPORTER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SEAHORSE_TYPE_EXPORTER, SeahorseExporterIface))

typedef struct _SeahorseExporter SeahorseExporter;
typedef struct _SeahorseExporterIface SeahorseExporterIface;

#define SEAHORSE_TYPE_VIEWABLE (seahorse_viewable_get_type ())
#define SEAHORSE_VIEWABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEAHORSE_TYPE_VIEWABLE, SeahorseViewable))
#define SEAHORSE_IS_VIEWABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEAHORSE_TYPE_VIEWABLE))
#define SEAHORSE_VIEWABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SEAHORSE_TYPE_VIEWABLE, SeahorseViewableIface))

typedef struct _SeahorseViewable SeahorseViewable;
typedef struct _SeahorseViewableIface SeahorseViewableIface;

struct _SeahorseDeletableIface {
	GTypeInterface parent_iface;
	SeahorseDeleter* (*create_deleter) (SeahorseDeletable* self);
	gboolean (*get_deletable) (SeahorseDeletable* self);
};

struct _SeahorseDeleter {
	GObject parent_instance;
	SeahorseDeleterPrivate * priv;
};

struct _SeahorseDeleterClass {
	GObjectClass parent_class;
	GtkDialog* (*create_confirm) (SeahorseDeleter* self, GtkWindow* parent);
	GList* (*get_objects) (SeahorseDeleter* self);
	gboolean (*add_object) (SeahorseDeleter* self, GObject* obj);
	void (*delete) (SeahorseDeleter* self, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*delete_finish) (SeahorseDeleter* self, GAsyncResult* _res_, GError** error);
};

typedef enum  {
	SEAHORSE_EXPORTER_TYPE_ANY,
	SEAHORSE_EXPORTER_TYPE_TEXTUAL
} SeahorseExporterType;

struct _SeahorseExporterIface {
	GTypeInterface parent_iface;
	GList* (*get_objects) (SeahorseExporter* self);
	gboolean (*add_object) (SeahorseExporter* self, GObject* obj);
	void (*export) (SeahorseExporter* self, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
	guint8* (*export_finish) (SeahorseExporter* self, GAsyncResult* _res_, size_t* result_length1, GError** error);
	gchar* (*get_filename) (SeahorseExporter* self);
	const gchar* (*get_content_type) (SeahorseExporter* self);
	GtkFileFilter* (*get_file_filter) (SeahorseExporter* self);
};

struct _SeahorseExportableIface {
	GTypeInterface parent_iface;
	GList* (*create_exporters) (SeahorseExportable* self, SeahorseExporterType type);
	gboolean (*get_exportable) (SeahorseExportable* self);
};

struct _SeahorseViewableIface {
	GTypeInterface parent_iface;
	void (*show_viewer) (SeahorseViewable* self, GtkWindow* parent);
};


GType seahorse_deleter_get_type (void) G_GNUC_CONST;
GType seahorse_deletable_get_type (void) G_GNUC_CONST;
SeahorseDeleter* seahorse_deletable_create_deleter (SeahorseDeletable* self);
gboolean seahorse_deletable_can_delete (GObject* obj);
gint seahorse_deletable_delete_with_prompt_wait (GList* objects, GtkWindow* parent, GError** error);
gboolean seahorse_deletable_get_deletable (SeahorseDeletable* self);
GtkDialog* seahorse_deleter_create_confirm (SeahorseDeleter* self, GtkWindow* parent);
GList* seahorse_deleter_get_objects (SeahorseDeleter* self);
gboolean seahorse_deleter_add_object (SeahorseDeleter* self, GObject* obj);
void seahorse_deleter_delete (SeahorseDeleter* self, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
gboolean seahorse_deleter_delete_finish (SeahorseDeleter* self, GAsyncResult* _res_, GError** error);
gboolean seahorse_deleter_prompt (SeahorseDeleter* self, GtkWindow* parent);
SeahorseDeleter* seahorse_deleter_construct (GType object_type);
GType seahorse_exporter_type_get_type (void) G_GNUC_CONST;
GType seahorse_exporter_get_type (void) G_GNUC_CONST;
GType seahorse_exportable_get_type (void) G_GNUC_CONST;
GList* seahorse_exportable_create_exporters (SeahorseExportable* self, SeahorseExporterType type);
gboolean seahorse_exportable_can_export (GObject* object);
gint seahorse_exportable_export_to_directory_wait (GList* objects, const gchar* directory, GError** error);
guint seahorse_exportable_export_to_text_wait (GList* objects, guint8** output, size_t* output_length1, GError** error);
gint seahorse_exportable_export_to_prompt_wait (GList* objects, GtkWindow* parent, GError** error);
gboolean seahorse_exportable_prompt (GList* exporters, GtkWindow* parent, gchar** directory, GFile** chosen_file, SeahorseExporter** chosen_exporter);
gboolean seahorse_exportable_get_exportable (SeahorseExportable* self);
#define SEAHORSE_BAD_FILENAME_CHARS "/\\<>|:?;"
GList* seahorse_exporter_get_objects (SeahorseExporter* self);
gboolean seahorse_exporter_add_object (SeahorseExporter* self, GObject* obj);
void seahorse_exporter_export (SeahorseExporter* self, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
guint8* seahorse_exporter_export_finish (SeahorseExporter* self, GAsyncResult* _res_, size_t* result_length1, GError** error);
void seahorse_exporter_export_to_file (SeahorseExporter* self, GFile* file, gboolean overwrite, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
gboolean seahorse_exporter_export_to_file_finish (SeahorseExporter* self, GAsyncResult* _res_, GError** error);
gchar* seahorse_exporter_get_filename (SeahorseExporter* self);
const gchar* seahorse_exporter_get_content_type (SeahorseExporter* self);
GtkFileFilter* seahorse_exporter_get_file_filter (SeahorseExporter* self);
GType seahorse_viewable_get_type (void) G_GNUC_CONST;
void seahorse_viewable_show_viewer (SeahorseViewable* self, GtkWindow* parent);
gboolean seahorse_viewable_can_view (GObject* object);


G_END_DECLS

#endif
