/* budgie-appindexer.h generated by valac 0.56.18-dirty, the Vala compiler, do not modify */

#ifndef __SRC_APPINDEXER_BUDGIE_APPINDEXER_H__
#define __SRC_APPINDEXER_BUDGIE_APPINDEXER_H__

#include <glib-object.h>
#include <gee.h>
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <gio/gio.h>
#include "budgie-private.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 BUDGIE_RELEVANCY_SERVICE_THRESHOLD 18

#define BUDGIE_TYPE_APP_INDEX (budgie_app_index_get_type ())
#define BUDGIE_APP_INDEX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_APP_INDEX, BudgieAppIndex))
#define BUDGIE_APP_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_TYPE_APP_INDEX, BudgieAppIndexClass))
#define BUDGIE_IS_APP_INDEX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_APP_INDEX))
#define BUDGIE_IS_APP_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_TYPE_APP_INDEX))
#define BUDGIE_APP_INDEX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_TYPE_APP_INDEX, BudgieAppIndexClass))

typedef struct _BudgieAppIndex BudgieAppIndex;
typedef struct _BudgieAppIndexClass BudgieAppIndexClass;
typedef struct _BudgieAppIndexPrivate BudgieAppIndexPrivate;

#define BUDGIE_TYPE_CATEGORY (budgie_category_get_type ())
#define BUDGIE_CATEGORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_CATEGORY, BudgieCategory))
#define BUDGIE_CATEGORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_TYPE_CATEGORY, BudgieCategoryClass))
#define BUDGIE_IS_CATEGORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_CATEGORY))
#define BUDGIE_IS_CATEGORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_TYPE_CATEGORY))
#define BUDGIE_CATEGORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_TYPE_CATEGORY, BudgieCategoryClass))

typedef struct _BudgieCategory BudgieCategory;
typedef struct _BudgieCategoryClass BudgieCategoryClass;
typedef struct _BudgieCategoryPrivate BudgieCategoryPrivate;

#define BUDGIE_TYPE_RELEVANCY_SERVICE (budgie_relevancy_service_get_type ())
#define BUDGIE_RELEVANCY_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_RELEVANCY_SERVICE, BudgieRelevancyService))
#define BUDGIE_RELEVANCY_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_TYPE_RELEVANCY_SERVICE, BudgieRelevancyServiceClass))
#define BUDGIE_IS_RELEVANCY_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_RELEVANCY_SERVICE))
#define BUDGIE_IS_RELEVANCY_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_TYPE_RELEVANCY_SERVICE))
#define BUDGIE_RELEVANCY_SERVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_TYPE_RELEVANCY_SERVICE, BudgieRelevancyServiceClass))

typedef struct _BudgieRelevancyService BudgieRelevancyService;
typedef struct _BudgieRelevancyServiceClass BudgieRelevancyServiceClass;
typedef struct _BudgieRelevancyServicePrivate BudgieRelevancyServicePrivate;

struct _BudgieAppIndex {
	GObject parent_instance;
	BudgieAppIndexPrivate * priv;
};

struct _BudgieAppIndexClass {
	GObjectClass parent_class;
};

struct _BudgieCategory {
	GObject parent_instance;
	BudgieCategoryPrivate * priv;
	gchar** included_categories;
	gint included_categories_length1;
	gchar** excluded_categories;
	gint excluded_categories_length1;
	gchar** excluded_applications;
	gint excluded_applications_length1;
};

struct _BudgieCategoryClass {
	GObjectClass parent_class;
};

struct _BudgieRelevancyService {
	GObject parent_instance;
	BudgieRelevancyServicePrivate * priv;
};

struct _BudgieRelevancyServiceClass {
	GObjectClass parent_class;
};

VALA_EXTERN GType budgie_app_index_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieAppIndex, g_object_unref)
VALA_EXTERN BudgieAppIndex* budgie_app_index_get (void);
VALA_EXTERN GType budgie_category_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieCategory, g_object_unref)
VALA_EXTERN GeeArrayList* budgie_app_index_get_categories (BudgieAppIndex* self);
VALA_EXTERN void budgie_app_index_queue_refresh (BudgieAppIndex* self,
                                     gint seconds);
VALA_EXTERN BudgieCategory* budgie_category_new (const gchar* name,
                                     gboolean misc);
VALA_EXTERN BudgieCategory* budgie_category_construct (GType object_type,
                                           const gchar* name,
                                           gboolean misc);
VALA_EXTERN BudgieCategory* budgie_category_new_for_file (GFile* file,
                                              GError** error);
VALA_EXTERN gboolean budgie_category_maybe_add_app (BudgieCategory* self,
                                        BudgieApplication* app);
VALA_EXTERN const gchar* budgie_category_get_name (BudgieCategory* self);
VALA_EXTERN gboolean budgie_category_get_misc_category (BudgieCategory* self);
VALA_EXTERN GeeArrayList* budgie_category_get_apps (BudgieCategory* self);
VALA_EXTERN GType budgie_relevancy_service_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieRelevancyService, g_object_unref)
VALA_EXTERN gchar* budgie_relevancy_service_searchable_string (const gchar* input);
VALA_EXTERN gint budgie_relevancy_service_get_score (BudgieRelevancyService* self,
                                         BudgieApplication* app);
VALA_EXTERN gboolean budgie_relevancy_service_is_app_relevant (BudgieRelevancyService* self,
                                                   BudgieApplication* app);
VALA_EXTERN void budgie_relevancy_service_reset (BudgieRelevancyService* self);
VALA_EXTERN void budgie_relevancy_service_update_relevancy (BudgieRelevancyService* self,
                                                BudgieApplication* app,
                                                const gchar* term);
VALA_EXTERN BudgieRelevancyService* budgie_relevancy_service_new (void);
VALA_EXTERN BudgieRelevancyService* budgie_relevancy_service_construct (GType object_type);

G_END_DECLS

#endif
