/* ft_core.h generated by valac 0.56.19, the Vala compiler, do not modify */

#ifndef __SRC_CORE_FT_CORE_H__
#define __SRC_CORE_FT_CORE_H__

#include <glib-object.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <float.h>
#include <math.h>
#include <gom/gom.h>
#include <gst/gst.h>
#include <libpeas.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 FT_SCHEDULER_COMPLETION_THRESHOLD 0.8
#define FT_SESSION_MANAGER_SESSION_EXPIRY_TIMEOUT (2 * FT_INTERVAL_HOUR)
#define FT_STATS_MANAGER_MIDNIGHT_OFFSET (4 * FT_INTERVAL_HOUR)
#define FT_INTERVAL_MICROSECOND ((gint64) 1)
#define FT_INTERVAL_MILLISECOND ((gint64) 1000)
#define FT_INTERVAL_SECOND ((gint64) 1000000)
#define FT_INTERVAL_MINUTE (60 * FT_INTERVAL_SECOND)
#define FT_INTERVAL_HOUR (60 * FT_INTERVAL_MINUTE)
#define FT_INTERVAL_DAY (24 * FT_INTERVAL_HOUR)
#define FT_INTERVAL_MIN G_MININT64
#define FT_INTERVAL_MAX G_MAXINT64
#define FT_TIMESTAMP_UNDEFINED ((gint64) -1)
#define FT_TIMESTAMP_MIN ((gint64) 0)
#define FT_TIMESTAMP_MAX G_MAXINT64

typedef enum  {
	FT_ACTION_TRIGGER_EVENT,
	FT_ACTION_TRIGGER_CONDITION
} FtActionTrigger;

#define FT_TYPE_ACTION_TRIGGER (ft_action_trigger_get_type ())

#define FT_TYPE_ACTION (ft_action_get_type ())
#define FT_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_ACTION, FtAction))
#define FT_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_ACTION, FtActionClass))
#define FT_IS_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_ACTION))
#define FT_IS_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_ACTION))
#define FT_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_ACTION, FtActionClass))

typedef struct _FtAction FtAction;
typedef struct _FtActionClass FtActionClass;
typedef struct _FtActionPrivate FtActionPrivate;

#define FT_TYPE_EVENT_ACTION (ft_event_action_get_type ())
#define FT_EVENT_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_EVENT_ACTION, FtEventAction))
#define FT_EVENT_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_EVENT_ACTION, FtEventActionClass))
#define FT_IS_EVENT_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_EVENT_ACTION))
#define FT_IS_EVENT_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_EVENT_ACTION))
#define FT_EVENT_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_EVENT_ACTION, FtEventActionClass))

typedef struct _FtEventAction FtEventAction;
typedef struct _FtEventActionClass FtEventActionClass;
typedef struct _FtEventActionPrivate FtEventActionPrivate;

#define FT_TYPE_EXPRESSION (ft_expression_get_type ())
#define FT_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_EXPRESSION, FtExpression))
#define FT_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_EXPRESSION, FtExpressionClass))
#define FT_IS_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_EXPRESSION))
#define FT_IS_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_EXPRESSION))
#define FT_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_EXPRESSION, FtExpressionClass))

typedef struct _FtExpression FtExpression;
typedef struct _FtExpressionClass FtExpressionClass;

#define FT_TYPE_COMMAND (ft_command_get_type ())
#define FT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_COMMAND, FtCommand))
#define FT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_COMMAND, FtCommandClass))
#define FT_IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_COMMAND))
#define FT_IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_COMMAND))
#define FT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_COMMAND, FtCommandClass))

typedef struct _FtCommand FtCommand;
typedef struct _FtCommandClass FtCommandClass;

#define FT_TYPE_CONDITION_ACTION (ft_condition_action_get_type ())
#define FT_CONDITION_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_CONDITION_ACTION, FtConditionAction))
#define FT_CONDITION_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_CONDITION_ACTION, FtConditionActionClass))
#define FT_IS_CONDITION_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_CONDITION_ACTION))
#define FT_IS_CONDITION_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_CONDITION_ACTION))
#define FT_CONDITION_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_CONDITION_ACTION, FtConditionActionClass))

typedef struct _FtConditionAction FtConditionAction;
typedef struct _FtConditionActionClass FtConditionActionClass;
typedef struct _FtConditionActionPrivate FtConditionActionPrivate;

#define FT_TYPE_ACTION_LIST_MODEL (ft_action_list_model_get_type ())
#define FT_ACTION_LIST_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_ACTION_LIST_MODEL, FtActionListModel))
#define FT_ACTION_LIST_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_ACTION_LIST_MODEL, FtActionListModelClass))
#define FT_IS_ACTION_LIST_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_ACTION_LIST_MODEL))
#define FT_IS_ACTION_LIST_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_ACTION_LIST_MODEL))
#define FT_ACTION_LIST_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_ACTION_LIST_MODEL, FtActionListModelClass))

typedef struct _FtActionListModel FtActionListModel;
typedef struct _FtActionListModelClass FtActionListModelClass;
typedef struct _FtActionListModelPrivate FtActionListModelPrivate;

#define FT_TYPE_ACTION_MANAGER (ft_action_manager_get_type ())
#define FT_ACTION_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_ACTION_MANAGER, FtActionManager))
#define FT_ACTION_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_ACTION_MANAGER, FtActionManagerClass))
#define FT_IS_ACTION_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_ACTION_MANAGER))
#define FT_IS_ACTION_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_ACTION_MANAGER))
#define FT_ACTION_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_ACTION_MANAGER, FtActionManagerClass))

typedef struct _FtActionManager FtActionManager;
typedef struct _FtActionManagerClass FtActionManagerClass;
typedef struct _FtActionManagerPrivate FtActionManagerPrivate;

#define FT_TYPE_BACKGROUND_PROVIDER (ft_background_provider_get_type ())
#define FT_BACKGROUND_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_BACKGROUND_PROVIDER, FtBackgroundProvider))
#define FT_IS_BACKGROUND_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_BACKGROUND_PROVIDER))
#define FT_BACKGROUND_PROVIDER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FT_TYPE_BACKGROUND_PROVIDER, FtBackgroundProviderIface))

typedef struct _FtBackgroundProvider FtBackgroundProvider;
typedef struct _FtBackgroundProviderIface FtBackgroundProviderIface;

#define FT_TYPE_PROVIDER (ft_provider_get_type ())
#define FT_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_PROVIDER, FtProvider))
#define FT_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_PROVIDER, FtProviderClass))
#define FT_IS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_PROVIDER))
#define FT_IS_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_PROVIDER))
#define FT_PROVIDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_PROVIDER, FtProviderClass))

typedef struct _FtProvider FtProvider;
typedef struct _FtProviderClass FtProviderClass;

#define FT_TYPE_PROVIDED_OBJECT (ft_provided_object_get_type ())
#define FT_PROVIDED_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_PROVIDED_OBJECT, FtProvidedObject))
#define FT_PROVIDED_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_PROVIDED_OBJECT, FtProvidedObjectClass))
#define FT_IS_PROVIDED_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_PROVIDED_OBJECT))
#define FT_IS_PROVIDED_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_PROVIDED_OBJECT))
#define FT_PROVIDED_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_PROVIDED_OBJECT, FtProvidedObjectClass))

typedef struct _FtProvidedObject FtProvidedObject;
typedef struct _FtProvidedObjectClass FtProvidedObjectClass;
typedef struct _FtProvidedObjectPrivate FtProvidedObjectPrivate;

#define FT_TYPE_PROVIDER_SET (ft_provider_set_get_type ())
#define FT_PROVIDER_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_PROVIDER_SET, FtProviderSet))
#define FT_PROVIDER_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_PROVIDER_SET, FtProviderSetClass))
#define FT_IS_PROVIDER_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_PROVIDER_SET))
#define FT_IS_PROVIDER_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_PROVIDER_SET))
#define FT_PROVIDER_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_PROVIDER_SET, FtProviderSetClass))

typedef struct _FtProviderSet FtProviderSet;
typedef struct _FtProviderSetClass FtProviderSetClass;

#define FT_TYPE_BACKGROUND_MANAGER (ft_background_manager_get_type ())
#define FT_BACKGROUND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_BACKGROUND_MANAGER, FtBackgroundManager))
#define FT_BACKGROUND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_BACKGROUND_MANAGER, FtBackgroundManagerClass))
#define FT_IS_BACKGROUND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_BACKGROUND_MANAGER))
#define FT_IS_BACKGROUND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_BACKGROUND_MANAGER))
#define FT_BACKGROUND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_BACKGROUND_MANAGER, FtBackgroundManagerClass))

typedef struct _FtBackgroundManager FtBackgroundManager;
typedef struct _FtBackgroundManagerClass FtBackgroundManagerClass;
typedef struct _FtBackgroundManagerPrivate FtBackgroundManagerPrivate;

#define FT_TYPE_COMMAND_ERROR (ft_command_error_get_type ())

#define FT_TYPE_JOB (ft_job_get_type ())
#define FT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_JOB, FtJob))
#define FT_IS_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_JOB))
#define FT_JOB_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FT_TYPE_JOB, FtJobIface))

typedef struct _FtJob FtJob;
typedef struct _FtJobIface FtJobIface;

#define FT_TYPE_COMMAND_EXECUTION (ft_command_execution_get_type ())
#define FT_COMMAND_EXECUTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_COMMAND_EXECUTION, FtCommandExecution))
#define FT_COMMAND_EXECUTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_COMMAND_EXECUTION, FtCommandExecutionClass))
#define FT_IS_COMMAND_EXECUTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_COMMAND_EXECUTION))
#define FT_IS_COMMAND_EXECUTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_COMMAND_EXECUTION))
#define FT_COMMAND_EXECUTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_COMMAND_EXECUTION, FtCommandExecutionClass))

typedef struct _FtCommandExecution FtCommandExecution;
typedef struct _FtCommandExecutionClass FtCommandExecutionClass;
typedef struct _FtCommandExecutionPrivate FtCommandExecutionPrivate;
typedef struct _FtCommandPrivate FtCommandPrivate;

#define FT_TYPE_CONTEXT (ft_context_get_type ())
#define FT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_CONTEXT, FtContext))
#define FT_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_CONTEXT, FtContextClass))
#define FT_IS_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_CONTEXT))
#define FT_IS_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_CONTEXT))
#define FT_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_CONTEXT, FtContextClass))

typedef struct _FtContext FtContext;
typedef struct _FtContextClass FtContextClass;
typedef struct _FtContextPrivate FtContextPrivate;

#define FT_TYPE_TIMER_STATE (ft_timer_state_get_type ())
typedef struct _FtTimerState FtTimerState;

#define FT_TYPE_TIME_BLOCK (ft_time_block_get_type ())
#define FT_TIME_BLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_TIME_BLOCK, FtTimeBlock))
#define FT_TIME_BLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_TIME_BLOCK, FtTimeBlockClass))
#define FT_IS_TIME_BLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_TIME_BLOCK))
#define FT_IS_TIME_BLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_TIME_BLOCK))
#define FT_TIME_BLOCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_TIME_BLOCK, FtTimeBlockClass))

typedef struct _FtTimeBlock FtTimeBlock;
typedef struct _FtTimeBlockClass FtTimeBlockClass;

#define FT_TYPE_SESSION (ft_session_get_type ())
#define FT_SESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_SESSION, FtSession))
#define FT_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_SESSION, FtSessionClass))
#define FT_IS_SESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_SESSION))
#define FT_IS_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_SESSION))
#define FT_SESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_SESSION, FtSessionClass))

typedef struct _FtSession FtSession;
typedef struct _FtSessionClass FtSessionClass;

#define FT_TYPE_VALUE (ft_value_get_type ())
#define FT_VALUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_VALUE, FtValue))
#define FT_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_VALUE, FtValueClass))
#define FT_IS_VALUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_VALUE))
#define FT_IS_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_VALUE))
#define FT_VALUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_VALUE, FtValueClass))

typedef struct _FtValue FtValue;
typedef struct _FtValueClass FtValueClass;

#define FT_TYPE_CYCLE (ft_cycle_get_type ())
#define FT_CYCLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_CYCLE, FtCycle))
#define FT_CYCLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_CYCLE, FtCycleClass))
#define FT_IS_CYCLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_CYCLE))
#define FT_IS_CYCLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_CYCLE))
#define FT_CYCLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_CYCLE, FtCycleClass))

typedef struct _FtCycle FtCycle;
typedef struct _FtCycleClass FtCycleClass;
typedef struct _FtCyclePrivate FtCyclePrivate;
typedef enum  {
	FT_TIME_BLOCK_STATUS_SCHEDULED = 0,
	FT_TIME_BLOCK_STATUS_IN_PROGRESS = 1,
	FT_TIME_BLOCK_STATUS_COMPLETED = 2,
	FT_TIME_BLOCK_STATUS_UNCOMPLETED = 3
} FtTimeBlockStatus;

#define FT_TYPE_TIME_BLOCK_STATUS (ft_time_block_status_get_type ())
typedef gboolean (*FtTriggerFunc) (void);
typedef gboolean (*FtTimerStateChangedTriggerFunc) (const FtTimerState* current_state, const FtTimerState* previous_state);
typedef gboolean (*FtSessionManagerConfirmAdvancementTriggerFunc) (FtTimeBlock* next_time_block, FtTimeBlock* previous_time_block);
typedef gboolean (*FtSessionManagerAdvancedTriggerFunc) (FtSession* current_session, FtTimeBlock* current_time_block, FtSession* previous_session, FtTimeBlock* previous_time_block);
typedef enum  {
	FT_STATE_STOPPED,
	FT_STATE_POMODORO,
	FT_STATE_BREAK,
	FT_STATE_SHORT_BREAK,
	FT_STATE_LONG_BREAK
} FtState;

#define FT_TYPE_STATE (ft_state_get_type ())
typedef gboolean (*FtSessionManagerNotifyCurrentStateTriggerFunc) (FtState current_state, FtState previous_state);
typedef gboolean (*FtSessionManagerSessionRescheduledTriggerFunc) (FtSession* session);
typedef gboolean (*FtSessionManagerSessionExpiredTriggerFunc) (FtSession* session);
typedef enum  {
	FT_TRIGGER_HOOK_NONE,
	FT_TRIGGER_HOOK_TIMER_STATE_CHANGED,
	FT_TRIGGER_HOOK_SESSION_MANAGER_CONFIRM_ADVANCEMENT,
	FT_TRIGGER_HOOK_SESSION_MANAGER_ADVANCED,
	FT_TRIGGER_HOOK_SESSION_MANAGER_NOTIFY_CURRENT_STATE,
	FT_TRIGGER_HOOK_SESSION_MANAGER_SESSION_RESCHEDULED,
	FT_TRIGGER_HOOK_SESSION_MANAGER_SESSION_EXPIRED
} FtTriggerHook;

#define FT_TYPE_TRIGGER_HOOK (ft_trigger_hook_get_type ())

#define FT_TYPE_TRIGGER (ft_trigger_get_type ())
typedef struct _FtTrigger FtTrigger;

#define FT_TYPE_EVENT_SPEC (ft_event_spec_get_type ())
#define FT_EVENT_SPEC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_EVENT_SPEC, FtEventSpec))
#define FT_EVENT_SPEC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_EVENT_SPEC, FtEventSpecClass))
#define FT_IS_EVENT_SPEC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_EVENT_SPEC))
#define FT_IS_EVENT_SPEC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_EVENT_SPEC))
#define FT_EVENT_SPEC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_EVENT_SPEC, FtEventSpecClass))

typedef struct _FtEventSpec FtEventSpec;
typedef struct _FtEventSpecClass FtEventSpecClass;

#define FT_TYPE_EVENT_PRODUCER (ft_event_producer_get_type ())
#define FT_EVENT_PRODUCER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_EVENT_PRODUCER, FtEventProducer))
#define FT_EVENT_PRODUCER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_EVENT_PRODUCER, FtEventProducerClass))
#define FT_IS_EVENT_PRODUCER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_EVENT_PRODUCER))
#define FT_IS_EVENT_PRODUCER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_EVENT_PRODUCER))
#define FT_EVENT_PRODUCER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_EVENT_PRODUCER, FtEventProducerClass))

typedef struct _FtEventProducer FtEventProducer;
typedef struct _FtEventProducerClass FtEventProducerClass;
typedef struct _FtEventProducerPrivate FtEventProducerPrivate;

#define FT_TYPE_SESSION_MANAGER (ft_session_manager_get_type ())
#define FT_SESSION_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_SESSION_MANAGER, FtSessionManager))
#define FT_SESSION_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_SESSION_MANAGER, FtSessionManagerClass))
#define FT_IS_SESSION_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_SESSION_MANAGER))
#define FT_IS_SESSION_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_SESSION_MANAGER))
#define FT_SESSION_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_SESSION_MANAGER, FtSessionManagerClass))

typedef struct _FtSessionManager FtSessionManager;
typedef struct _FtSessionManagerClass FtSessionManagerClass;

#define FT_TYPE_TIMER (ft_timer_get_type ())
#define FT_TIMER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_TIMER, FtTimer))
#define FT_TIMER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_TIMER, FtTimerClass))
#define FT_IS_TIMER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_TIMER))
#define FT_IS_TIMER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_TIMER))
#define FT_TIMER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_TIMER, FtTimerClass))

typedef struct _FtTimer FtTimer;
typedef struct _FtTimerClass FtTimerClass;

#define FT_TYPE_EVENT_BUS (ft_event_bus_get_type ())
#define FT_EVENT_BUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_EVENT_BUS, FtEventBus))
#define FT_EVENT_BUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_EVENT_BUS, FtEventBusClass))
#define FT_IS_EVENT_BUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_EVENT_BUS))
#define FT_IS_EVENT_BUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_EVENT_BUS))
#define FT_EVENT_BUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_EVENT_BUS, FtEventBusClass))

typedef struct _FtEventBus FtEventBus;
typedef struct _FtEventBusClass FtEventBusClass;
typedef enum  {
	FT_EVENT_CATEGORY_OTHER,
	FT_EVENT_CATEGORY_ACTIONS,
	FT_EVENT_CATEGORY_COUNTDOWN,
	FT_EVENT_CATEGORY_SESSION
} FtEventCategory;

#define FT_TYPE_EVENT_CATEGORY (ft_event_category_get_type ())
typedef struct _FtEventSpecPrivate FtEventSpecPrivate;
typedef struct _FtEvent FtEvent;
typedef void (*FtEventCallback) (FtEvent* event, gpointer user_data);
typedef void (*FtConditionCallback) (FtContext* context, gpointer user_data);
typedef struct _FtEventBusPrivate FtEventBusPrivate;

#define FT_TYPE_EXPRESSION_ERROR (ft_expression_error_get_type ())
typedef enum  {
	FT_OPERATOR_CATEGORY_LOGICAL,
	FT_OPERATOR_CATEGORY_COMPARISON
} FtOperatorCategory;

#define FT_TYPE_OPERATOR_CATEGORY (ft_operator_category_get_type ())
typedef enum  {
	FT_OPERATOR_INVALID,
	FT_OPERATOR_AND,
	FT_OPERATOR_OR,
	FT_OPERATOR_EQ,
	FT_OPERATOR_LT,
	FT_OPERATOR_LTE,
	FT_OPERATOR_GT,
	FT_OPERATOR_GTE,
	FT_OPERATOR_NOT_EQ
} FtOperator;

#define FT_TYPE_OPERATOR (ft_operator_get_type ())
typedef struct _FtValuePrivate FtValuePrivate;

#define FT_TYPE_BOOLEAN_VALUE (ft_boolean_value_get_type ())
#define FT_BOOLEAN_VALUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_BOOLEAN_VALUE, FtBooleanValue))
#define FT_BOOLEAN_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_BOOLEAN_VALUE, FtBooleanValueClass))
#define FT_IS_BOOLEAN_VALUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_BOOLEAN_VALUE))
#define FT_IS_BOOLEAN_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_BOOLEAN_VALUE))
#define FT_BOOLEAN_VALUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_BOOLEAN_VALUE, FtBooleanValueClass))

typedef struct _FtBooleanValue FtBooleanValue;
typedef struct _FtBooleanValueClass FtBooleanValueClass;
typedef struct _FtBooleanValuePrivate FtBooleanValuePrivate;

#define FT_TYPE_TIMESTAMP_VALUE (ft_timestamp_value_get_type ())
#define FT_TIMESTAMP_VALUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_TIMESTAMP_VALUE, FtTimestampValue))
#define FT_TIMESTAMP_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_TIMESTAMP_VALUE, FtTimestampValueClass))
#define FT_IS_TIMESTAMP_VALUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_TIMESTAMP_VALUE))
#define FT_IS_TIMESTAMP_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_TIMESTAMP_VALUE))
#define FT_TIMESTAMP_VALUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_TIMESTAMP_VALUE, FtTimestampValueClass))

typedef struct _FtTimestampValue FtTimestampValue;
typedef struct _FtTimestampValueClass FtTimestampValueClass;
typedef struct _FtTimestampValuePrivate FtTimestampValuePrivate;

#define FT_TYPE_INTERVAL_VALUE (ft_interval_value_get_type ())
#define FT_INTERVAL_VALUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_INTERVAL_VALUE, FtIntervalValue))
#define FT_INTERVAL_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_INTERVAL_VALUE, FtIntervalValueClass))
#define FT_IS_INTERVAL_VALUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_INTERVAL_VALUE))
#define FT_IS_INTERVAL_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_INTERVAL_VALUE))
#define FT_INTERVAL_VALUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_INTERVAL_VALUE, FtIntervalValueClass))

typedef struct _FtIntervalValue FtIntervalValue;
typedef struct _FtIntervalValueClass FtIntervalValueClass;
typedef struct _FtIntervalValuePrivate FtIntervalValuePrivate;

#define FT_TYPE_STRING_VALUE (ft_string_value_get_type ())
#define FT_STRING_VALUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_STRING_VALUE, FtStringValue))
#define FT_STRING_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_STRING_VALUE, FtStringValueClass))
#define FT_IS_STRING_VALUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_STRING_VALUE))
#define FT_IS_STRING_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_STRING_VALUE))
#define FT_STRING_VALUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_STRING_VALUE, FtStringValueClass))

typedef struct _FtStringValue FtStringValue;
typedef struct _FtStringValueClass FtStringValueClass;
typedef struct _FtStringValuePrivate FtStringValuePrivate;

#define FT_TYPE_STATE_VALUE (ft_state_value_get_type ())
#define FT_STATE_VALUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_STATE_VALUE, FtStateValue))
#define FT_STATE_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_STATE_VALUE, FtStateValueClass))
#define FT_IS_STATE_VALUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_STATE_VALUE))
#define FT_IS_STATE_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_STATE_VALUE))
#define FT_STATE_VALUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_STATE_VALUE, FtStateValueClass))

typedef struct _FtStateValue FtStateValue;
typedef struct _FtStateValueClass FtStateValueClass;
typedef struct _FtStateValuePrivate FtStateValuePrivate;

#define FT_TYPE_STATUS_VALUE (ft_status_value_get_type ())
#define FT_STATUS_VALUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_STATUS_VALUE, FtStatusValue))
#define FT_STATUS_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_STATUS_VALUE, FtStatusValueClass))
#define FT_IS_STATUS_VALUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_STATUS_VALUE))
#define FT_IS_STATUS_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_STATUS_VALUE))
#define FT_STATUS_VALUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_STATUS_VALUE, FtStatusValueClass))

typedef struct _FtStatusValue FtStatusValue;
typedef struct _FtStatusValueClass FtStatusValueClass;
typedef struct _FtStatusValuePrivate FtStatusValuePrivate;
typedef struct _FtExpressionPrivate FtExpressionPrivate;

#define FT_TYPE_EXPRESSION_PARSER_ERROR (ft_expression_parser_error_get_type ())

#define FT_TYPE_CONSTANT (ft_constant_get_type ())
#define FT_CONSTANT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_CONSTANT, FtConstant))
#define FT_CONSTANT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_CONSTANT, FtConstantClass))
#define FT_IS_CONSTANT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_CONSTANT))
#define FT_IS_CONSTANT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_CONSTANT))
#define FT_CONSTANT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_CONSTANT, FtConstantClass))

typedef struct _FtConstant FtConstant;
typedef struct _FtConstantClass FtConstantClass;
typedef struct _FtConstantPrivate FtConstantPrivate;

#define FT_TYPE_VARIABLE (ft_variable_get_type ())
#define FT_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_VARIABLE, FtVariable))
#define FT_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_VARIABLE, FtVariableClass))
#define FT_IS_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_VARIABLE))
#define FT_IS_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_VARIABLE))
#define FT_VARIABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_VARIABLE, FtVariableClass))

typedef struct _FtVariable FtVariable;
typedef struct _FtVariableClass FtVariableClass;
typedef struct _FtVariablePrivate FtVariablePrivate;

#define FT_TYPE_OPERATION (ft_operation_get_type ())
#define FT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_OPERATION, FtOperation))
#define FT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_OPERATION, FtOperationClass))
#define FT_IS_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_OPERATION))
#define FT_IS_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_OPERATION))
#define FT_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_OPERATION, FtOperationClass))

typedef struct _FtOperation FtOperation;
typedef struct _FtOperationClass FtOperationClass;
typedef struct _FtOperationPrivate FtOperationPrivate;

#define FT_TYPE_COMPARISON (ft_comparison_get_type ())
#define FT_COMPARISON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_COMPARISON, FtComparison))
#define FT_COMPARISON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_COMPARISON, FtComparisonClass))
#define FT_IS_COMPARISON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_COMPARISON))
#define FT_IS_COMPARISON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_COMPARISON))
#define FT_COMPARISON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_COMPARISON, FtComparisonClass))

typedef struct _FtComparison FtComparison;
typedef struct _FtComparisonClass FtComparisonClass;
typedef struct _FtComparisonPrivate FtComparisonPrivate;
typedef enum  {
	FT_GAP_FLAGS_DEFAULT = 0,
	FT_GAP_FLAGS_INTERRUPTION = 1,
	FT_GAP_FLAGS_SLEEP = 2
} FtGapFlags;

#define FT_TYPE_GAP_FLAGS (ft_gap_flags_get_type ())

#define FT_TYPE_SCHEDULABLE (ft_schedulable_get_type ())
#define FT_SCHEDULABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_SCHEDULABLE, FtSchedulable))
#define FT_IS_SCHEDULABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_SCHEDULABLE))
#define FT_SCHEDULABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FT_TYPE_SCHEDULABLE, FtSchedulableIface))

typedef struct _FtSchedulable FtSchedulable;
typedef struct _FtSchedulableIface FtSchedulableIface;

#define FT_TYPE_GAP (ft_gap_get_type ())
#define FT_GAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_GAP, FtGap))
#define FT_GAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_GAP, FtGapClass))
#define FT_IS_GAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_GAP))
#define FT_IS_GAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_GAP))
#define FT_GAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_GAP, FtGapClass))

typedef struct _FtGap FtGap;
typedef struct _FtGapClass FtGapClass;
typedef struct _FtGapPrivate FtGapPrivate;

#define FT_TYPE_GAP_ENTRY (ft_gap_entry_get_type ())
#define FT_GAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_GAP_ENTRY, FtGapEntry))
#define FT_GAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_GAP_ENTRY, FtGapEntryClass))
#define FT_IS_GAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_GAP_ENTRY))
#define FT_IS_GAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_GAP_ENTRY))
#define FT_GAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_GAP_ENTRY, FtGapEntryClass))

typedef struct _FtGapEntry FtGapEntry;
typedef struct _FtGapEntryClass FtGapEntryClass;
typedef struct _FtGapEntryPrivate FtGapEntryPrivate;
typedef void (*FtCallback) (gpointer user_data);

#define FT_TYPE_IDLE_MONITOR_PROVIDER (ft_idle_monitor_provider_get_type ())
#define FT_IDLE_MONITOR_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_IDLE_MONITOR_PROVIDER, FtIdleMonitorProvider))
#define FT_IS_IDLE_MONITOR_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_IDLE_MONITOR_PROVIDER))
#define FT_IDLE_MONITOR_PROVIDER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FT_TYPE_IDLE_MONITOR_PROVIDER, FtIdleMonitorProviderIface))

typedef struct _FtIdleMonitorProvider FtIdleMonitorProvider;
typedef struct _FtIdleMonitorProviderIface FtIdleMonitorProviderIface;
typedef struct _FtProviderPrivate FtProviderPrivate;

#define FT_TYPE_DUMMY_IDLE_MONITOR_PROVIDER (ft_dummy_idle_monitor_provider_get_type ())
#define FT_DUMMY_IDLE_MONITOR_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_DUMMY_IDLE_MONITOR_PROVIDER, FtDummyIdleMonitorProvider))
#define FT_DUMMY_IDLE_MONITOR_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_DUMMY_IDLE_MONITOR_PROVIDER, FtDummyIdleMonitorProviderClass))
#define FT_IS_DUMMY_IDLE_MONITOR_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_DUMMY_IDLE_MONITOR_PROVIDER))
#define FT_IS_DUMMY_IDLE_MONITOR_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_DUMMY_IDLE_MONITOR_PROVIDER))
#define FT_DUMMY_IDLE_MONITOR_PROVIDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_DUMMY_IDLE_MONITOR_PROVIDER, FtDummyIdleMonitorProviderClass))

typedef struct _FtDummyIdleMonitorProvider FtDummyIdleMonitorProvider;
typedef struct _FtDummyIdleMonitorProviderClass FtDummyIdleMonitorProviderClass;
typedef struct _FtDummyIdleMonitorProviderPrivate FtDummyIdleMonitorProviderPrivate;

#define FT_TYPE_IDLE_MONITOR (ft_idle_monitor_get_type ())
#define FT_IDLE_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_IDLE_MONITOR, FtIdleMonitor))
#define FT_IDLE_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_IDLE_MONITOR, FtIdleMonitorClass))
#define FT_IS_IDLE_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_IDLE_MONITOR))
#define FT_IS_IDLE_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_IDLE_MONITOR))
#define FT_IDLE_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_IDLE_MONITOR, FtIdleMonitorClass))

typedef struct _FtIdleMonitor FtIdleMonitor;
typedef struct _FtIdleMonitorClass FtIdleMonitorClass;
typedef struct _FtIdleMonitorPrivate FtIdleMonitorPrivate;

#define FT_TYPE_INDICATOR_PROVIDER (ft_indicator_provider_get_type ())
#define FT_INDICATOR_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_INDICATOR_PROVIDER, FtIndicatorProvider))
#define FT_IS_INDICATOR_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_INDICATOR_PROVIDER))
#define FT_INDICATOR_PROVIDER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FT_TYPE_INDICATOR_PROVIDER, FtIndicatorProviderIface))

typedef struct _FtIndicatorProvider FtIndicatorProvider;
typedef struct _FtIndicatorProviderIface FtIndicatorProviderIface;

#define FT_TYPE_INDICATOR (ft_indicator_get_type ())
#define FT_INDICATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_INDICATOR, FtIndicator))
#define FT_INDICATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_INDICATOR, FtIndicatorClass))
#define FT_IS_INDICATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_INDICATOR))
#define FT_IS_INDICATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_INDICATOR))
#define FT_INDICATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_INDICATOR, FtIndicatorClass))

typedef struct _FtIndicator FtIndicator;
typedef struct _FtIndicatorClass FtIndicatorClass;
typedef struct _FtIndicatorPrivate FtIndicatorPrivate;

#define FT_TYPE_JOB_QUEUE (ft_job_queue_get_type ())
#define FT_JOB_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_JOB_QUEUE, FtJobQueue))
#define FT_JOB_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_JOB_QUEUE, FtJobQueueClass))
#define FT_IS_JOB_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_JOB_QUEUE))
#define FT_IS_JOB_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_JOB_QUEUE))
#define FT_JOB_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_JOB_QUEUE, FtJobQueueClass))

typedef struct _FtJobQueue FtJobQueue;
typedef struct _FtJobQueueClass FtJobQueueClass;
typedef struct _FtJobQueuePrivate FtJobQueuePrivate;

#define FT_TYPE_GLOBAL_SHORTCUTS_PROVIDER (ft_global_shortcuts_provider_get_type ())
#define FT_GLOBAL_SHORTCUTS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_GLOBAL_SHORTCUTS_PROVIDER, FtGlobalShortcutsProvider))
#define FT_IS_GLOBAL_SHORTCUTS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_GLOBAL_SHORTCUTS_PROVIDER))
#define FT_GLOBAL_SHORTCUTS_PROVIDER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FT_TYPE_GLOBAL_SHORTCUTS_PROVIDER, FtGlobalShortcutsProviderIface))

typedef struct _FtGlobalShortcutsProvider FtGlobalShortcutsProvider;
typedef struct _FtGlobalShortcutsProviderIface FtGlobalShortcutsProviderIface;
typedef void (*FtForeachAcceleratorFunc) (const gchar* shortcut_name, const gchar* shortcut_accelerator, gpointer user_data);

#define FT_TYPE_KEYBOARD_MANAGER (ft_keyboard_manager_get_type ())
#define FT_KEYBOARD_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_KEYBOARD_MANAGER, FtKeyboardManager))
#define FT_KEYBOARD_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_KEYBOARD_MANAGER, FtKeyboardManagerClass))
#define FT_IS_KEYBOARD_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_KEYBOARD_MANAGER))
#define FT_IS_KEYBOARD_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_KEYBOARD_MANAGER))
#define FT_KEYBOARD_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_KEYBOARD_MANAGER, FtKeyboardManagerClass))

typedef struct _FtKeyboardManager FtKeyboardManager;
typedef struct _FtKeyboardManagerClass FtKeyboardManagerClass;
typedef struct _FtKeyboardManagerPrivate FtKeyboardManagerPrivate;

#define FT_TYPE_LOCK_SCREEN_PROVIDER (ft_lock_screen_provider_get_type ())
#define FT_LOCK_SCREEN_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_LOCK_SCREEN_PROVIDER, FtLockScreenProvider))
#define FT_IS_LOCK_SCREEN_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_LOCK_SCREEN_PROVIDER))
#define FT_LOCK_SCREEN_PROVIDER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FT_TYPE_LOCK_SCREEN_PROVIDER, FtLockScreenProviderIface))

typedef struct _FtLockScreenProvider FtLockScreenProvider;
typedef struct _FtLockScreenProviderIface FtLockScreenProviderIface;

#define FT_TYPE_LOCK_SCREEN (ft_lock_screen_get_type ())
#define FT_LOCK_SCREEN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_LOCK_SCREEN, FtLockScreen))
#define FT_LOCK_SCREEN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_LOCK_SCREEN, FtLockScreenClass))
#define FT_IS_LOCK_SCREEN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_LOCK_SCREEN))
#define FT_IS_LOCK_SCREEN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_LOCK_SCREEN))
#define FT_LOCK_SCREEN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_LOCK_SCREEN, FtLockScreenClass))

typedef struct _FtLockScreen FtLockScreen;
typedef struct _FtLockScreenClass FtLockScreenClass;
typedef struct _FtLockScreenPrivate FtLockScreenPrivate;

#define FT_TYPE_LOG_ENTRY (ft_log_entry_get_type ())
#define FT_LOG_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_LOG_ENTRY, FtLogEntry))
#define FT_LOG_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_LOG_ENTRY, FtLogEntryClass))
#define FT_IS_LOG_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_LOG_ENTRY))
#define FT_IS_LOG_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_LOG_ENTRY))
#define FT_LOG_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_LOG_ENTRY, FtLogEntryClass))

typedef struct _FtLogEntry FtLogEntry;
typedef struct _FtLogEntryClass FtLogEntryClass;
typedef struct _FtLogEntryPrivate FtLogEntryPrivate;

#define FT_TYPE_EVENT_LOG_ENTRY (ft_event_log_entry_get_type ())
#define FT_EVENT_LOG_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_EVENT_LOG_ENTRY, FtEventLogEntry))
#define FT_EVENT_LOG_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_EVENT_LOG_ENTRY, FtEventLogEntryClass))
#define FT_IS_EVENT_LOG_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_EVENT_LOG_ENTRY))
#define FT_IS_EVENT_LOG_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_EVENT_LOG_ENTRY))
#define FT_EVENT_LOG_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_EVENT_LOG_ENTRY, FtEventLogEntryClass))

typedef struct _FtEventLogEntry FtEventLogEntry;
typedef struct _FtEventLogEntryClass FtEventLogEntryClass;

#define FT_TYPE_ACTION_LOG_ENTRY (ft_action_log_entry_get_type ())
#define FT_ACTION_LOG_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_ACTION_LOG_ENTRY, FtActionLogEntry))
#define FT_ACTION_LOG_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_ACTION_LOG_ENTRY, FtActionLogEntryClass))
#define FT_IS_ACTION_LOG_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_ACTION_LOG_ENTRY))
#define FT_IS_ACTION_LOG_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_ACTION_LOG_ENTRY))
#define FT_ACTION_LOG_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_ACTION_LOG_ENTRY, FtActionLogEntryClass))

typedef struct _FtActionLogEntry FtActionLogEntry;
typedef struct _FtActionLogEntryClass FtActionLogEntryClass;
typedef struct _FtActionLogEntryPrivate FtActionLogEntryPrivate;

#define FT_TYPE_LOGGER (ft_logger_get_type ())
#define FT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_LOGGER, FtLogger))
#define FT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_LOGGER, FtLoggerClass))
#define FT_IS_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_LOGGER))
#define FT_IS_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_LOGGER))
#define FT_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_LOGGER, FtLoggerClass))

typedef struct _FtLogger FtLogger;
typedef struct _FtLoggerClass FtLoggerClass;
typedef struct _FtLoggerPrivate FtLoggerPrivate;
typedef struct _FtVector FtVector;
typedef struct _FtMatrix FtMatrix;
typedef struct _FtMatrix3D FtMatrix3D;
typedef enum  {
	FT_NOTIFICATION_PRIORITY_LOW,
	FT_NOTIFICATION_PRIORITY_NORMAL,
	FT_NOTIFICATION_PRIORITY_HIGH,
	FT_NOTIFICATION_PRIORITY_URGENT
} FtNotificationPriority;

#define FT_TYPE_NOTIFICATION_PRIORITY (ft_notification_priority_get_type ())
typedef void (*FtNotificationForeachButtonFunc) (const gchar* label, const gchar* action, GVariant* target_value, gpointer user_data);

#define FT_TYPE_NOTIFICATION (ft_notification_get_type ())
#define FT_NOTIFICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_NOTIFICATION, FtNotification))
#define FT_NOTIFICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_NOTIFICATION, FtNotificationClass))
#define FT_IS_NOTIFICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_NOTIFICATION))
#define FT_IS_NOTIFICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_NOTIFICATION))
#define FT_NOTIFICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_NOTIFICATION, FtNotificationClass))

typedef struct _FtNotification FtNotification;
typedef struct _FtNotificationClass FtNotificationClass;
typedef struct _FtNotificationPrivate FtNotificationPrivate;

#define FT_TYPE_NOTIFICATION_BACKEND_PROVIDER (ft_notification_backend_provider_get_type ())
#define FT_NOTIFICATION_BACKEND_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_NOTIFICATION_BACKEND_PROVIDER, FtNotificationBackendProvider))
#define FT_IS_NOTIFICATION_BACKEND_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_NOTIFICATION_BACKEND_PROVIDER))
#define FT_NOTIFICATION_BACKEND_PROVIDER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FT_TYPE_NOTIFICATION_BACKEND_PROVIDER, FtNotificationBackendProviderIface))

typedef struct _FtNotificationBackendProvider FtNotificationBackendProvider;
typedef struct _FtNotificationBackendProviderIface FtNotificationBackendProviderIface;

#define FT_TYPE_NOTIFICATION_BACKEND_INTERFACE (ft_notification_backend_interface_get_type ())
#define FT_NOTIFICATION_BACKEND_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_NOTIFICATION_BACKEND_INTERFACE, FtNotificationBackendInterface))
#define FT_IS_NOTIFICATION_BACKEND_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_NOTIFICATION_BACKEND_INTERFACE))
#define FT_NOTIFICATION_BACKEND_INTERFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FT_TYPE_NOTIFICATION_BACKEND_INTERFACE, FtNotificationBackendInterfaceIface))

typedef struct _FtNotificationBackendInterface FtNotificationBackendInterface;
typedef struct _FtNotificationBackendInterfaceIface FtNotificationBackendInterfaceIface;

#define FT_TYPE_NOTIFICATION_BACKEND (ft_notification_backend_get_type ())
#define FT_NOTIFICATION_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_NOTIFICATION_BACKEND, FtNotificationBackend))
#define FT_NOTIFICATION_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_NOTIFICATION_BACKEND, FtNotificationBackendClass))
#define FT_IS_NOTIFICATION_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_NOTIFICATION_BACKEND))
#define FT_IS_NOTIFICATION_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_NOTIFICATION_BACKEND))
#define FT_NOTIFICATION_BACKEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_NOTIFICATION_BACKEND, FtNotificationBackendClass))

typedef struct _FtNotificationBackend FtNotificationBackend;
typedef struct _FtNotificationBackendClass FtNotificationBackendClass;
typedef struct _FtNotificationBackendPrivate FtNotificationBackendPrivate;

#define FT_TYPE_NOTIFICATION_MANAGER (ft_notification_manager_get_type ())
#define FT_NOTIFICATION_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_NOTIFICATION_MANAGER, FtNotificationManager))
#define FT_NOTIFICATION_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_NOTIFICATION_MANAGER, FtNotificationManagerClass))
#define FT_IS_NOTIFICATION_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_NOTIFICATION_MANAGER))
#define FT_IS_NOTIFICATION_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_NOTIFICATION_MANAGER))
#define FT_NOTIFICATION_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_NOTIFICATION_MANAGER, FtNotificationManagerClass))

typedef struct _FtNotificationManager FtNotificationManager;
typedef struct _FtNotificationManagerClass FtNotificationManagerClass;
typedef struct _FtNotificationManagerPrivate FtNotificationManagerPrivate;
typedef enum  {
	FT_PRIORITY_LOW = 0,
	FT_PRIORITY_DEFAULT = 1,
	FT_PRIORITY_HIGH = 2
} FtPriority;

#define FT_TYPE_PRIORITY (ft_priority_get_type ())
typedef enum  {
	FT_SELECTION_MODE_NONE,
	FT_SELECTION_MODE_SINGLE,
	FT_SELECTION_MODE_ALL
} FtSelectionMode;

#define FT_TYPE_SELECTION_MODE (ft_selection_mode_get_type ())
typedef struct _FtProviderSetPrivate FtProviderSetPrivate;

#define FT_TYPE_SCHEDULER_CONTEXT (ft_scheduler_context_get_type ())
typedef struct _FtSchedulerContext FtSchedulerContext;

#define FT_TYPE_SCHEDULER (ft_scheduler_get_type ())
#define FT_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_SCHEDULER, FtScheduler))
#define FT_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_SCHEDULER, FtSchedulerClass))
#define FT_IS_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_SCHEDULER))
#define FT_IS_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_SCHEDULER))
#define FT_SCHEDULER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_SCHEDULER, FtSchedulerClass))

typedef struct _FtScheduler FtScheduler;
typedef struct _FtSchedulerClass FtSchedulerClass;
typedef struct _FtSchedulerPrivate FtSchedulerPrivate;

#define FT_TYPE_SESSION_TEMPLATE (ft_session_template_get_type ())
typedef struct _FtSessionTemplate FtSessionTemplate;

#define FT_TYPE_SIMPLE_SCHEDULER (ft_simple_scheduler_get_type ())
#define FT_SIMPLE_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_SIMPLE_SCHEDULER, FtSimpleScheduler))
#define FT_SIMPLE_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_SIMPLE_SCHEDULER, FtSimpleSchedulerClass))
#define FT_IS_SIMPLE_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_SIMPLE_SCHEDULER))
#define FT_IS_SIMPLE_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_SIMPLE_SCHEDULER))
#define FT_SIMPLE_SCHEDULER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_SIMPLE_SCHEDULER, FtSimpleSchedulerClass))

typedef struct _FtSimpleScheduler FtSimpleScheduler;
typedef struct _FtSimpleSchedulerClass FtSimpleSchedulerClass;
typedef struct _FtSimpleSchedulerPrivate FtSimpleSchedulerPrivate;

#define FT_TYPE_SCREEN_OVERLAY_PROVIDER (ft_screen_overlay_provider_get_type ())
#define FT_SCREEN_OVERLAY_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_SCREEN_OVERLAY_PROVIDER, FtScreenOverlayProvider))
#define FT_IS_SCREEN_OVERLAY_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_SCREEN_OVERLAY_PROVIDER))
#define FT_SCREEN_OVERLAY_PROVIDER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FT_TYPE_SCREEN_OVERLAY_PROVIDER, FtScreenOverlayProviderIface))

typedef struct _FtScreenOverlayProvider FtScreenOverlayProvider;
typedef struct _FtScreenOverlayProviderIface FtScreenOverlayProviderIface;

#define FT_TYPE_SCREEN_OVERLAY_MANAGER (ft_screen_overlay_manager_get_type ())
#define FT_SCREEN_OVERLAY_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_SCREEN_OVERLAY_MANAGER, FtScreenOverlayManager))
#define FT_SCREEN_OVERLAY_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_SCREEN_OVERLAY_MANAGER, FtScreenOverlayManagerClass))
#define FT_IS_SCREEN_OVERLAY_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_SCREEN_OVERLAY_MANAGER))
#define FT_IS_SCREEN_OVERLAY_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_SCREEN_OVERLAY_MANAGER))
#define FT_SCREEN_OVERLAY_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_SCREEN_OVERLAY_MANAGER, FtScreenOverlayManagerClass))

typedef struct _FtScreenOverlayManager FtScreenOverlayManager;
typedef struct _FtScreenOverlayManagerClass FtScreenOverlayManagerClass;
typedef struct _FtScreenOverlayManagerPrivate FtScreenOverlayManagerPrivate;

#define FT_TYPE_SCREEN_SAVER_PROVIDER (ft_screen_saver_provider_get_type ())
#define FT_SCREEN_SAVER_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_SCREEN_SAVER_PROVIDER, FtScreenSaverProvider))
#define FT_IS_SCREEN_SAVER_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_SCREEN_SAVER_PROVIDER))
#define FT_SCREEN_SAVER_PROVIDER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FT_TYPE_SCREEN_SAVER_PROVIDER, FtScreenSaverProviderIface))

typedef struct _FtScreenSaverProvider FtScreenSaverProvider;
typedef struct _FtScreenSaverProviderIface FtScreenSaverProviderIface;

#define FT_TYPE_SCREEN_SAVER (ft_screen_saver_get_type ())
#define FT_SCREEN_SAVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_SCREEN_SAVER, FtScreenSaver))
#define FT_SCREEN_SAVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_SCREEN_SAVER, FtScreenSaverClass))
#define FT_IS_SCREEN_SAVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_SCREEN_SAVER))
#define FT_IS_SCREEN_SAVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_SCREEN_SAVER))
#define FT_SCREEN_SAVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_SCREEN_SAVER, FtScreenSaverClass))

typedef struct _FtScreenSaver FtScreenSaver;
typedef struct _FtScreenSaverClass FtScreenSaverClass;
typedef struct _FtScreenSaverPrivate FtScreenSaverPrivate;
typedef struct _FtSessionPrivate FtSessionPrivate;

#define FT_TYPE_SESSION_ENTRY (ft_session_entry_get_type ())
#define FT_SESSION_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_SESSION_ENTRY, FtSessionEntry))
#define FT_SESSION_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_SESSION_ENTRY, FtSessionEntryClass))
#define FT_IS_SESSION_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_SESSION_ENTRY))
#define FT_IS_SESSION_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_SESSION_ENTRY))
#define FT_SESSION_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_SESSION_ENTRY, FtSessionEntryClass))

typedef struct _FtSessionEntry FtSessionEntry;
typedef struct _FtSessionEntryClass FtSessionEntryClass;
typedef gboolean (*FtFilterFunc) (gconstpointer item, gpointer user_data);
typedef struct _FtSessionEntryPrivate FtSessionEntryPrivate;
typedef struct _FtSessionManagerPrivate FtSessionManagerPrivate;

#define FT_TYPE_SESSION_MANAGER_ACTION_GROUP (ft_session_manager_action_group_get_type ())
#define FT_SESSION_MANAGER_ACTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_SESSION_MANAGER_ACTION_GROUP, FtSessionManagerActionGroup))
#define FT_SESSION_MANAGER_ACTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_SESSION_MANAGER_ACTION_GROUP, FtSessionManagerActionGroupClass))
#define FT_IS_SESSION_MANAGER_ACTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_SESSION_MANAGER_ACTION_GROUP))
#define FT_IS_SESSION_MANAGER_ACTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_SESSION_MANAGER_ACTION_GROUP))
#define FT_SESSION_MANAGER_ACTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_SESSION_MANAGER_ACTION_GROUP, FtSessionManagerActionGroupClass))

typedef struct _FtSessionManagerActionGroup FtSessionManagerActionGroup;
typedef struct _FtSessionManagerActionGroupClass FtSessionManagerActionGroupClass;
typedef struct _FtSessionManagerActionGroupPrivate FtSessionManagerActionGroupPrivate;

#define FT_TYPE_SLEEP_MONITOR_PROVIDER (ft_sleep_monitor_provider_get_type ())
#define FT_SLEEP_MONITOR_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_SLEEP_MONITOR_PROVIDER, FtSleepMonitorProvider))
#define FT_IS_SLEEP_MONITOR_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_SLEEP_MONITOR_PROVIDER))
#define FT_SLEEP_MONITOR_PROVIDER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FT_TYPE_SLEEP_MONITOR_PROVIDER, FtSleepMonitorProviderIface))

typedef struct _FtSleepMonitorProvider FtSleepMonitorProvider;
typedef struct _FtSleepMonitorProviderIface FtSleepMonitorProviderIface;

#define FT_TYPE_SLEEP_MONITOR (ft_sleep_monitor_get_type ())
#define FT_SLEEP_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_SLEEP_MONITOR, FtSleepMonitor))
#define FT_SLEEP_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_SLEEP_MONITOR, FtSleepMonitorClass))
#define FT_IS_SLEEP_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_SLEEP_MONITOR))
#define FT_IS_SLEEP_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_SLEEP_MONITOR))
#define FT_SLEEP_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_SLEEP_MONITOR, FtSleepMonitorClass))

typedef struct _FtSleepMonitor FtSleepMonitor;
typedef struct _FtSleepMonitorClass FtSleepMonitorClass;
typedef struct _FtSleepMonitorPrivate FtSleepMonitorPrivate;

#define FT_TYPE_SOUND_MANAGER (ft_sound_manager_get_type ())
#define FT_SOUND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_SOUND_MANAGER, FtSoundManager))
#define FT_SOUND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_SOUND_MANAGER, FtSoundManagerClass))
#define FT_IS_SOUND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_SOUND_MANAGER))
#define FT_IS_SOUND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_SOUND_MANAGER))
#define FT_SOUND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_SOUND_MANAGER, FtSoundManagerClass))

typedef struct _FtSoundManager FtSoundManager;
typedef struct _FtSoundManagerClass FtSoundManagerClass;
typedef struct _FtSoundManagerPrivate FtSoundManagerPrivate;

#define FT_TYPE_SOUND_PLAYER (ft_sound_player_get_type ())
#define FT_SOUND_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_SOUND_PLAYER, FtSoundPlayer))
#define FT_SOUND_PLAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_SOUND_PLAYER, FtSoundPlayerClass))
#define FT_IS_SOUND_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_SOUND_PLAYER))
#define FT_IS_SOUND_PLAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_SOUND_PLAYER))
#define FT_SOUND_PLAYER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_SOUND_PLAYER, FtSoundPlayerClass))

typedef struct _FtSoundPlayer FtSoundPlayer;
typedef struct _FtSoundPlayerClass FtSoundPlayerClass;
typedef struct _FtSoundPlayerPrivate FtSoundPlayerPrivate;

#define FT_TYPE_SOUND_ERROR (ft_sound_error_get_type ())

#define FT_TYPE_SOUND (ft_sound_get_type ())
#define FT_SOUND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_SOUND, FtSound))
#define FT_SOUND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_SOUND, FtSoundClass))
#define FT_IS_SOUND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_SOUND))
#define FT_IS_SOUND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_SOUND))
#define FT_SOUND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_SOUND, FtSoundClass))

typedef struct _FtSound FtSound;
typedef struct _FtSoundClass FtSoundClass;
typedef struct _FtSoundPrivate FtSoundPrivate;

#define FT_TYPE_ALERT_SOUND (ft_alert_sound_get_type ())
#define FT_ALERT_SOUND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_ALERT_SOUND, FtAlertSound))
#define FT_ALERT_SOUND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_ALERT_SOUND, FtAlertSoundClass))
#define FT_IS_ALERT_SOUND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_ALERT_SOUND))
#define FT_IS_ALERT_SOUND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_ALERT_SOUND))
#define FT_ALERT_SOUND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_ALERT_SOUND, FtAlertSoundClass))

typedef struct _FtAlertSound FtAlertSound;
typedef struct _FtAlertSoundClass FtAlertSoundClass;
typedef struct _FtAlertSoundPrivate FtAlertSoundPrivate;

#define FT_TYPE_BACKGROUND_SOUND (ft_background_sound_get_type ())
#define FT_BACKGROUND_SOUND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_BACKGROUND_SOUND, FtBackgroundSound))
#define FT_BACKGROUND_SOUND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_BACKGROUND_SOUND, FtBackgroundSoundClass))
#define FT_IS_BACKGROUND_SOUND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_BACKGROUND_SOUND))
#define FT_IS_BACKGROUND_SOUND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_BACKGROUND_SOUND))
#define FT_BACKGROUND_SOUND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_BACKGROUND_SOUND, FtBackgroundSoundClass))

typedef struct _FtBackgroundSound FtBackgroundSound;
typedef struct _FtBackgroundSoundClass FtBackgroundSoundClass;
typedef struct _FtBackgroundSoundPrivate FtBackgroundSoundPrivate;

#define FT_TYPE_STATS_ENTRY (ft_stats_entry_get_type ())
#define FT_STATS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_STATS_ENTRY, FtStatsEntry))
#define FT_STATS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_STATS_ENTRY, FtStatsEntryClass))
#define FT_IS_STATS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_STATS_ENTRY))
#define FT_IS_STATS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_STATS_ENTRY))
#define FT_STATS_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_STATS_ENTRY, FtStatsEntryClass))

typedef struct _FtStatsEntry FtStatsEntry;
typedef struct _FtStatsEntryClass FtStatsEntryClass;
typedef struct _FtStatsEntryPrivate FtStatsEntryPrivate;

#define FT_TYPE_AGGREGATED_STATS_ENTRY (ft_aggregated_stats_entry_get_type ())
#define FT_AGGREGATED_STATS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_AGGREGATED_STATS_ENTRY, FtAggregatedStatsEntry))
#define FT_AGGREGATED_STATS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_AGGREGATED_STATS_ENTRY, FtAggregatedStatsEntryClass))
#define FT_IS_AGGREGATED_STATS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_AGGREGATED_STATS_ENTRY))
#define FT_IS_AGGREGATED_STATS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_AGGREGATED_STATS_ENTRY))
#define FT_AGGREGATED_STATS_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_AGGREGATED_STATS_ENTRY, FtAggregatedStatsEntryClass))

typedef struct _FtAggregatedStatsEntry FtAggregatedStatsEntry;
typedef struct _FtAggregatedStatsEntryClass FtAggregatedStatsEntryClass;
typedef struct _FtAggregatedStatsEntryPrivate FtAggregatedStatsEntryPrivate;

#define FT_TYPE_STATS_MANAGER (ft_stats_manager_get_type ())
#define FT_STATS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_STATS_MANAGER, FtStatsManager))
#define FT_STATS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_STATS_MANAGER, FtStatsManagerClass))
#define FT_IS_STATS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_STATS_MANAGER))
#define FT_IS_STATS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_STATS_MANAGER))
#define FT_STATS_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_STATS_MANAGER, FtStatsManagerClass))

typedef struct _FtStatsManager FtStatsManager;
typedef struct _FtStatsManagerClass FtStatsManagerClass;

#define FT_TYPE_TIME_BLOCK_META (ft_time_block_meta_get_type ())
typedef struct _FtTimeBlockMeta FtTimeBlockMeta;
typedef struct _FtTimeBlockPrivate FtTimeBlockPrivate;

#define FT_TYPE_TIME_BLOCK_ENTRY (ft_time_block_entry_get_type ())
#define FT_TIME_BLOCK_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_TIME_BLOCK_ENTRY, FtTimeBlockEntry))
#define FT_TIME_BLOCK_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_TIME_BLOCK_ENTRY, FtTimeBlockEntryClass))
#define FT_IS_TIME_BLOCK_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_TIME_BLOCK_ENTRY))
#define FT_IS_TIME_BLOCK_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_TIME_BLOCK_ENTRY))
#define FT_TIME_BLOCK_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_TIME_BLOCK_ENTRY, FtTimeBlockEntryClass))

typedef struct _FtTimeBlockEntry FtTimeBlockEntry;
typedef struct _FtTimeBlockEntryClass FtTimeBlockEntryClass;
typedef struct _FtTimeBlockEntryPrivate FtTimeBlockEntryPrivate;
typedef struct _FtTimerPrivate FtTimerPrivate;

#define FT_TYPE_TIMER_ACTION_GROUP (ft_timer_action_group_get_type ())
#define FT_TIMER_ACTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_TIMER_ACTION_GROUP, FtTimerActionGroup))
#define FT_TIMER_ACTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_TIMER_ACTION_GROUP, FtTimerActionGroupClass))
#define FT_IS_TIMER_ACTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_TIMER_ACTION_GROUP))
#define FT_IS_TIMER_ACTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_TIMER_ACTION_GROUP))
#define FT_TIMER_ACTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_TIMER_ACTION_GROUP, FtTimerActionGroupClass))

typedef struct _FtTimerActionGroup FtTimerActionGroup;
typedef struct _FtTimerActionGroupClass FtTimerActionGroupClass;
typedef struct _FtTimerActionGroupPrivate FtTimerActionGroupPrivate;
typedef void (*FtTimezoneScanFunc) (gint64 start_time, gint64 end_time, GTimeZone* timezone, gpointer user_data);

#define FT_TYPE_TIMEZONE_HISTORY (ft_timezone_history_get_type ())
#define FT_TIMEZONE_HISTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_TIMEZONE_HISTORY, FtTimezoneHistory))
#define FT_TIMEZONE_HISTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_TIMEZONE_HISTORY, FtTimezoneHistoryClass))
#define FT_IS_TIMEZONE_HISTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_TIMEZONE_HISTORY))
#define FT_IS_TIMEZONE_HISTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_TIMEZONE_HISTORY))
#define FT_TIMEZONE_HISTORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_TIMEZONE_HISTORY, FtTimezoneHistoryClass))

typedef struct _FtTimezoneHistory FtTimezoneHistory;
typedef struct _FtTimezoneHistoryClass FtTimezoneHistoryClass;
typedef struct _FtTimezoneHistoryPrivate FtTimezoneHistoryPrivate;

#define FT_TYPE_TIME_ZONE_MONITOR_PROVIDER (ft_time_zone_monitor_provider_get_type ())
#define FT_TIME_ZONE_MONITOR_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_TIME_ZONE_MONITOR_PROVIDER, FtTimeZoneMonitorProvider))
#define FT_IS_TIME_ZONE_MONITOR_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_TIME_ZONE_MONITOR_PROVIDER))
#define FT_TIME_ZONE_MONITOR_PROVIDER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FT_TYPE_TIME_ZONE_MONITOR_PROVIDER, FtTimeZoneMonitorProviderIface))

typedef struct _FtTimeZoneMonitorProvider FtTimeZoneMonitorProvider;
typedef struct _FtTimeZoneMonitorProviderIface FtTimeZoneMonitorProviderIface;

#define FT_TYPE_TIME_ZONE_MONITOR (ft_time_zone_monitor_get_type ())
#define FT_TIME_ZONE_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_TIME_ZONE_MONITOR, FtTimeZoneMonitor))
#define FT_TIME_ZONE_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_TIME_ZONE_MONITOR, FtTimeZoneMonitorClass))
#define FT_IS_TIME_ZONE_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_TIME_ZONE_MONITOR))
#define FT_IS_TIME_ZONE_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_TIME_ZONE_MONITOR))
#define FT_TIME_ZONE_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_TIME_ZONE_MONITOR, FtTimeZoneMonitorClass))

typedef struct _FtTimeZoneMonitor FtTimeZoneMonitor;
typedef struct _FtTimeZoneMonitorClass FtTimeZoneMonitorClass;
typedef struct _FtTimeZoneMonitorPrivate FtTimeZoneMonitorPrivate;
typedef void (*FtExtensionSetForeachFunc) (GObject* object, gpointer user_data);
typedef struct _FtAsyncCallback FtAsyncCallback;

#define FT_TYPE_ASYNC_QUEUE (ft_async_queue_get_type ())
#define FT_ASYNC_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_ASYNC_QUEUE, FtAsyncQueue))
#define FT_ASYNC_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_ASYNC_QUEUE, FtAsyncQueueClass))
#define FT_IS_ASYNC_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_ASYNC_QUEUE))
#define FT_IS_ASYNC_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_ASYNC_QUEUE))
#define FT_ASYNC_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_ASYNC_QUEUE, FtAsyncQueueClass))

typedef struct _FtAsyncQueue FtAsyncQueue;
typedef struct _FtAsyncQueueClass FtAsyncQueueClass;
typedef struct _FtAsyncQueuePrivate FtAsyncQueuePrivate;
typedef FtValue* (*FtEvaluateFunc) (FtContext* context);

#define FT_TYPE_VARIABLE_SPEC (ft_variable_spec_get_type ())
#define FT_VARIABLE_SPEC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FT_TYPE_VARIABLE_SPEC, FtVariableSpec))
#define FT_VARIABLE_SPEC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FT_TYPE_VARIABLE_SPEC, FtVariableSpecClass))
#define FT_IS_VARIABLE_SPEC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FT_TYPE_VARIABLE_SPEC))
#define FT_IS_VARIABLE_SPEC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FT_TYPE_VARIABLE_SPEC))
#define FT_VARIABLE_SPEC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FT_TYPE_VARIABLE_SPEC, FtVariableSpecClass))

typedef struct _FtVariableSpec FtVariableSpec;
typedef struct _FtVariableSpecClass FtVariableSpecClass;
typedef struct _FtVariableSpecPrivate FtVariableSpecPrivate;

struct _FtAction {
	GObject parent_instance;
	FtActionPrivate * priv;
};

struct _FtActionClass {
	GObjectClass parent_class;
	void (*load) (FtAction* self, GSettings* settings);
	void (*save) (FtAction* self, GSettings* settings);
	void (*bind) (FtAction* self);
	void (*unbind) (FtAction* self);
};

struct _FtEventAction {
	FtAction parent_instance;
	FtEventActionPrivate * priv;
};

struct _FtEventActionClass {
	FtActionClass parent_class;
};

struct _FtConditionAction {
	FtAction parent_instance;
	FtConditionActionPrivate * priv;
};

struct _FtConditionActionClass {
	FtActionClass parent_class;
};

struct _FtActionListModel {
	GObject parent_instance;
	FtActionListModelPrivate * priv;
};

struct _FtActionListModelClass {
	GObjectClass parent_class;
};

struct _FtActionManager {
	GObject parent_instance;
	FtActionManagerPrivate * priv;
};

struct _FtActionManagerClass {
	GObjectClass parent_class;
};

struct _FtBackgroundProviderIface {
	GTypeInterface parent_iface;
	void (*request_background) (FtBackgroundProvider* self, gboolean autostart, const gchar* parent_window, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*request_background_finish) (FtBackgroundProvider* self, GAsyncResult* _res_);
	gboolean (*get_background_allowed) (FtBackgroundProvider* self);
	gboolean (*get_autostart_allowed) (FtBackgroundProvider* self);
};

struct _FtProvidedObject {
	GObject parent_instance;
	FtProvidedObjectPrivate * priv;
	FtProviderSet* providers;
};

struct _FtProvidedObjectClass {
	GObjectClass parent_class;
	void (*initialize) (FtProvidedObject* self);
	void (*setup_providers) (FtProvidedObject* self);
	void (*provider_enabled) (FtProvidedObject* self, gconstpointer provider);
	void (*provider_disabled) (FtProvidedObject* self, gconstpointer provider);
};

struct _FtBackgroundManager {
	FtProvidedObject parent_instance;
	FtBackgroundManagerPrivate * priv;
};

struct _FtBackgroundManagerClass {
	FtProvidedObjectClass parent_class;
};

typedef enum  {
	FT_COMMAND_ERROR_EMPTY_LINE,
	FT_COMMAND_ERROR_SYNTAX_ERROR,
	FT_COMMAND_ERROR_UNKNOWN_VARIABLE,
	FT_COMMAND_ERROR_UNKNOWN_VARIABLE_FORMAT,
	FT_COMMAND_ERROR_NOT_FOUND,
	FT_COMMAND_ERROR_FAILED
} FtCommandError;
#define FT_COMMAND_ERROR ft_command_error_quark ()

struct _FtJobIface {
	GTypeInterface parent_iface;
	void (*run) (FtJob* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*run_finish) (FtJob* self, GAsyncResult* _res_, GError** error);
	gboolean (*get_completed) (FtJob* self);
	void (*set_completed) (FtJob* self, gboolean value);
	GError* (*get_error) (FtJob* self);
	void (*set_error) (FtJob* self, GError* value);
};

struct _FtCommandExecution {
	GObject parent_instance;
	FtCommandExecutionPrivate * priv;
};

struct _FtCommandExecutionClass {
	GObjectClass parent_class;
};

struct _FtCommand {
	GObject parent_instance;
	FtCommandPrivate * priv;
};

struct _FtCommandClass {
	GObjectClass parent_class;
};

struct _FtTimerState {
	gint64 duration;
	gint64 offset;
	gint64 started_time;
	gint64 paused_time;
	gint64 finished_time;
	void* user_data;
};

struct _FtContext {
	GTypeInstance parent_instance;
	volatile int ref_count;
	FtContextPrivate * priv;
	gchar* event_source;
	gint64 timestamp;
	FtTimerState timer_state;
	FtTimeBlock* time_block;
	FtSession* session;
};

struct _FtContextClass {
	GTypeClass parent_class;
	void (*finalize) (FtContext *self);
};

struct _FtCycle {
	GObject parent_instance;
	FtCyclePrivate * priv;
};

struct _FtCycleClass {
	GObjectClass parent_class;
};

struct _FtTrigger {
	FtEventSpec* event_spec;
	FtTriggerHook hook;
	FtTriggerFunc func;
};

struct _FtEventProducer {
	GObject parent_instance;
	FtEventProducerPrivate * priv;
};

struct _FtEventProducerClass {
	GObjectClass parent_class;
};

struct _FtEventSpec {
	GTypeInstance parent_instance;
	volatile int ref_count;
	FtEventSpecPrivate * priv;
	gchar* name;
	gchar* display_name;
	gchar* description;
	FtEventCategory category;
	FtTrigger* triggers;
	gint triggers_length1;
	gint _triggers_size_;
};

struct _FtEventSpecClass {
	GTypeClass parent_class;
	void (*finalize) (FtEventSpec *self);
};

struct _FtEvent {
	FtEventSpec* spec;
	FtContext* context;
};

struct _FtEventBus {
	GObject parent_instance;
	FtEventBusPrivate * priv;
};

struct _FtEventBusClass {
	GObjectClass parent_class;
};

typedef enum  {
	FT_EXPRESSION_ERROR_EMPTY,
	FT_EXPRESSION_ERROR_VALUE,
	FT_EXPRESSION_ERROR_TYPE,
	FT_EXPRESSION_ERROR_INVALID
} FtExpressionError;
#define FT_EXPRESSION_ERROR ft_expression_error_quark ()

struct _FtValue {
	GTypeInstance parent_instance;
	volatile int ref_count;
	FtValuePrivate * priv;
};

struct _FtValueClass {
	GTypeClass parent_class;
	void (*finalize) (FtValue *self);
	GType (*get_value_type) (FtValue* self);
	gchar* (*get_type_name) (FtValue* self);
	gboolean (*to_boolean) (FtValue* self);
	gchar* (*to_representation) (FtValue* self);
	GVariant* (*to_variant) (FtValue* self);
	GVariant* (*format) (FtValue* self, const gchar* name, GError** error);
	FtValue* (*apply_eq) (FtValue* self, FtValue* other, GError** error);
	FtValue* (*apply_gt) (FtValue* self, FtValue* other, GError** error);
	FtValue* (*apply_lt) (FtValue* self, FtValue* other, GError** error);
};

struct _FtBooleanValue {
	FtValue parent_instance;
	FtBooleanValuePrivate * priv;
	gboolean data;
};

struct _FtBooleanValueClass {
	FtValueClass parent_class;
};

struct _FtTimestampValue {
	FtValue parent_instance;
	FtTimestampValuePrivate * priv;
	gint64 data;
};

struct _FtTimestampValueClass {
	FtValueClass parent_class;
};

struct _FtIntervalValue {
	FtValue parent_instance;
	FtIntervalValuePrivate * priv;
	gint64 data;
};

struct _FtIntervalValueClass {
	FtValueClass parent_class;
};

struct _FtStringValue {
	FtValue parent_instance;
	FtStringValuePrivate * priv;
	gchar* data;
};

struct _FtStringValueClass {
	FtValueClass parent_class;
};

struct _FtStateValue {
	FtValue parent_instance;
	FtStateValuePrivate * priv;
	FtState data;
};

struct _FtStateValueClass {
	FtValueClass parent_class;
};

struct _FtStatusValue {
	FtValue parent_instance;
	FtStatusValuePrivate * priv;
	FtTimeBlockStatus data;
};

struct _FtStatusValueClass {
	FtValueClass parent_class;
};

struct _FtExpression {
	GTypeInstance parent_instance;
	volatile int ref_count;
	FtExpressionPrivate * priv;
};

struct _FtExpressionClass {
	GTypeClass parent_class;
	void (*finalize) (FtExpression *self);
	GType (*get_result_type) (FtExpression* self);
	FtValue* (*evaluate) (FtExpression* self, FtContext* context, GError** error);
	gchar* (*to_string) (FtExpression* self);
};

typedef enum  {
	FT_EXPRESSION_PARSER_ERROR_SYNTAX_ERROR,
	FT_EXPRESSION_PARSER_ERROR_UNKNOWN_IDENTIFIER
} FtExpressionParserError;
#define FT_EXPRESSION_PARSER_ERROR ft_expression_parser_error_quark ()

struct _FtConstant {
	FtExpression parent_instance;
	FtConstantPrivate * priv;
	FtValue* value;
};

struct _FtConstantClass {
	FtExpressionClass parent_class;
};

struct _FtVariable {
	FtExpression parent_instance;
	FtVariablePrivate * priv;
	gchar* name;
};

struct _FtVariableClass {
	FtExpressionClass parent_class;
};

struct _FtOperation {
	FtExpression parent_instance;
	FtOperationPrivate * priv;
	FtOperator operator;
	FtExpression** arguments;
	gint arguments_length1;
};

struct _FtOperationClass {
	FtExpressionClass parent_class;
};

struct _FtComparison {
	FtExpression parent_instance;
	FtComparisonPrivate * priv;
	FtExpression* argument_lhs;
	FtExpression* argument_rhs;
	FtOperator operator;
};

struct _FtComparisonClass {
	FtExpressionClass parent_class;
};

struct _FtSchedulableIface {
	GTypeInterface parent_iface;
	void (*set_time_range) (FtSchedulable* self, gint64 start_time, gint64 end_time);
	void (*move_by) (FtSchedulable* self, gint64 offset);
	void (*move_to) (FtSchedulable* self, gint64 start_time);
	gint64 (*get_start_time) (FtSchedulable* self);
	void (*set_start_time) (FtSchedulable* self, gint64 value);
	gint64 (*get_end_time) (FtSchedulable* self);
	void (*set_end_time) (FtSchedulable* self, gint64 value);
	gint64 (*get_duration) (FtSchedulable* self);
	void (*set_duration) (FtSchedulable* self, gint64 value);
};

struct _FtGap {
	GInitiallyUnowned parent_instance;
	FtGapPrivate * priv;
	gulong version;
	FtGapEntry* entry;
};

struct _FtGapClass {
	GInitiallyUnownedClass parent_class;
};

struct _FtGapEntry {
	GomResource parent_instance;
	FtGapEntryPrivate * priv;
	gulong version;
};

struct _FtGapEntryClass {
	GomResourceClass parent_class;
};

struct _FtIdleMonitorProviderIface {
	GTypeInterface parent_iface;
	guint32 (*add_idle_watch) (FtIdleMonitorProvider* self, gint64 timeout, gboolean ignore_inhibitors, gint64 monotonic_time, GError** error);
	guint32 (*reset_idle_watch) (FtIdleMonitorProvider* self, guint32 id, gint64 monotonic_time, GError** error);
	void (*remove_idle_watch) (FtIdleMonitorProvider* self, guint32 id, GError** error);
	void (*add_active_watch) (FtIdleMonitorProvider* self, GError** error);
	void (*remove_active_watch) (FtIdleMonitorProvider* self, GError** error);
	gboolean (*get_can_ignore_inhibitors) (FtIdleMonitorProvider* self);
};

struct _FtProvider {
	GObject parent_instance;
	FtProviderPrivate * priv;
};

struct _FtProviderClass {
	GObjectClass parent_class;
	void (*initialize) (FtProvider* self, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*initialize_finish) (FtProvider* self, GAsyncResult* _res_, GError** error);
	void (*uninitialize) (FtProvider* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*uninitialize_finish) (FtProvider* self, GAsyncResult* _res_, GError** error);
	void (*enable) (FtProvider* self, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*enable_finish) (FtProvider* self, GAsyncResult* _res_, GError** error);
	void (*disable) (FtProvider* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*disable_finish) (FtProvider* self, GAsyncResult* _res_, GError** error);
};

struct _FtDummyIdleMonitorProvider {
	FtProvider parent_instance;
	FtDummyIdleMonitorProviderPrivate * priv;
};

struct _FtDummyIdleMonitorProviderClass {
	FtProviderClass parent_class;
};

struct _FtIdleMonitor {
	FtProvidedObject parent_instance;
	FtIdleMonitorPrivate * priv;
};

struct _FtIdleMonitorClass {
	FtProvidedObjectClass parent_class;
};

struct _FtIndicatorProviderIface {
	GTypeInterface parent_iface;
	gboolean (*get_visible) (FtIndicatorProvider* self);
};

struct _FtIndicator {
	FtProvidedObject parent_instance;
	FtIndicatorPrivate * priv;
};

struct _FtIndicatorClass {
	FtProvidedObjectClass parent_class;
};

struct _FtJobQueue {
	GObject parent_instance;
	FtJobQueuePrivate * priv;
};

struct _FtJobQueueClass {
	GObjectClass parent_class;
};

struct _FtGlobalShortcutsProviderIface {
	GTypeInterface parent_iface;
	void (*add_shortcut) (FtGlobalShortcutsProvider* self, const gchar* name, const gchar* description, const gchar* default_accelerator);
	gchar* (*lookup_accelerator) (FtGlobalShortcutsProvider* self, const gchar* name);
	void (*open_edit_dialog) (FtGlobalShortcutsProvider* self, const gchar* window_identifier, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*open_edit_dialog_finish) (FtGlobalShortcutsProvider* self, GAsyncResult* _res_, GError** error);
};

struct _FtKeyboardManager {
	GObject parent_instance;
	FtKeyboardManagerPrivate * priv;
};

struct _FtKeyboardManagerClass {
	GObjectClass parent_class;
};

struct _FtLockScreenProviderIface {
	GTypeInterface parent_iface;
	void (*activate) (FtLockScreenProvider* self);
	gboolean (*get_active) (FtLockScreenProvider* self);
};

struct _FtLockScreen {
	FtProvidedObject parent_instance;
	FtLockScreenPrivate * priv;
};

struct _FtLockScreenClass {
	FtProvidedObjectClass parent_class;
};

struct _FtLogEntry {
	GObject parent_instance;
	FtLogEntryPrivate * priv;
};

struct _FtLogEntryClass {
	GObjectClass parent_class;
};

struct _FtActionLogEntry {
	FtLogEntry parent_instance;
	FtActionLogEntryPrivate * priv;
};

struct _FtActionLogEntryClass {
	FtLogEntryClass parent_class;
};

struct _FtLogger {
	GObject parent_instance;
	FtLoggerPrivate * priv;
};

struct _FtLoggerClass {
	GObjectClass parent_class;
};

struct _FtVector {
	gdouble* data;
	gint data_length1;
};

struct _FtMatrix {
	guint* shape;
	gint shape_length1;
	gdouble* data;
	gint data_length1;
	gint data_length2;
};

struct _FtMatrix3D {
	guint* shape;
	gint shape_length1;
	gdouble* data;
	gint data_length1;
	gint data_length2;
	gint data_length3;
};

struct _FtNotification {
	GTypeInstance parent_instance;
	volatile int ref_count;
	FtNotificationPrivate * priv;
	gchar* title;
	gchar* body;
	gchar* category;
	gchar* event_id;
	GIcon* icon;
	gboolean is_transient;
	gboolean suppress_sound;
	FtNotificationPriority priority;
	gchar* default_action;
	GVariant* default_target_value;
	gint expire_timeout;
};

struct _FtNotificationClass {
	GTypeClass parent_class;
	void (*finalize) (FtNotification *self);
};

struct _FtNotificationBackendProviderIface {
	GTypeInterface parent_iface;
	void (*send_notification) (FtNotificationBackendProvider* self, const gchar* id, FtNotification* notification, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*send_notification_finish) (FtNotificationBackendProvider* self, GAsyncResult* _res_);
	void (*withdraw_notification) (FtNotificationBackendProvider* self, const gchar* id, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*withdraw_notification_finish) (FtNotificationBackendProvider* self, GAsyncResult* _res_);
};

struct _FtNotificationBackendInterfaceIface {
	GTypeInterface parent_iface;
	void (*send_notification) (FtNotificationBackendInterface* self, const gchar* id, FtNotification* notification);
	void (*withdraw_notification) (FtNotificationBackendInterface* self, const gchar* id);
};

struct _FtNotificationBackend {
	FtProvidedObject parent_instance;
	FtNotificationBackendPrivate * priv;
};

struct _FtNotificationBackendClass {
	FtProvidedObjectClass parent_class;
};

struct _FtNotificationManager {
	GObject parent_instance;
	FtNotificationManagerPrivate * priv;
};

struct _FtNotificationManagerClass {
	GObjectClass parent_class;
};

struct _FtProviderSet {
	GObject parent_instance;
	FtProviderSetPrivate * priv;
};

struct _FtProviderSetClass {
	GObjectClass parent_class;
};

struct _FtSchedulerContext {
	gint64 timestamp;
	FtState state;
	gboolean is_session_completed;
	gboolean needs_long_break;
	gdouble score;
};

struct _FtScheduler {
	GObject parent_instance;
	FtSchedulerPrivate * priv;
};

struct _FtSchedulerClass {
	GObjectClass parent_class;
	gdouble (*calculate_time_block_score) (FtScheduler* self, FtTimeBlock* time_block, gint64 timestamp);
	gdouble (*calculate_time_block_weight) (FtScheduler* self, FtTimeBlock* time_block);
	void (*resolve_context) (FtScheduler* self, FtTimeBlock* time_block, gboolean is_resuming, gint64 timestamp, FtSchedulerContext* context);
	FtState (*resolve_state) (FtScheduler* self, FtSchedulerContext* context);
	FtTimeBlock* (*resolve_time_block) (FtScheduler* self, FtSchedulerContext* context);
	gboolean (*is_time_block_completed) (FtScheduler* self, FtTimeBlock* time_block, gint64 timestamp);
};

struct _FtSessionTemplate {
	gint64 pomodoro_duration;
	gint64 short_break_duration;
	gint64 long_break_duration;
	guint cycles;
};

struct _FtSimpleScheduler {
	FtScheduler parent_instance;
	FtSimpleSchedulerPrivate * priv;
};

struct _FtSimpleSchedulerClass {
	FtSchedulerClass parent_class;
};

struct _FtScreenOverlayProviderIface {
	GTypeInterface parent_iface;
	void (*open) (FtScreenOverlayProvider* self);
	void (*close) (FtScreenOverlayProvider* self);
};

struct _FtScreenOverlayManager {
	GObject parent_instance;
	FtScreenOverlayManagerPrivate * priv;
};

struct _FtScreenOverlayManagerClass {
	GObjectClass parent_class;
};

struct _FtScreenSaverProviderIface {
	GTypeInterface parent_iface;
	gboolean (*get_active) (FtScreenSaverProvider* self);
};

struct _FtScreenSaver {
	FtProvidedObject parent_instance;
	FtScreenSaverPrivate * priv;
};

struct _FtScreenSaverClass {
	FtProvidedObjectClass parent_class;
};

struct _FtSession {
	GObject parent_instance;
	FtSessionPrivate * priv;
	GList* time_blocks;
	gulong version;
	FtSessionEntry* entry;
};

struct _FtSessionClass {
	GObjectClass parent_class;
};

struct _FtSessionEntry {
	GomResource parent_instance;
	FtSessionEntryPrivate * priv;
	gulong version;
};

struct _FtSessionEntryClass {
	GomResourceClass parent_class;
};

struct _FtSessionManager {
	GObject parent_instance;
	FtSessionManagerPrivate * priv;
};

struct _FtSessionManagerClass {
	GObjectClass parent_class;
};

struct _FtSessionManagerActionGroup {
	GSimpleActionGroup parent_instance;
	FtSessionManagerActionGroupPrivate * priv;
};

struct _FtSessionManagerActionGroupClass {
	GSimpleActionGroupClass parent_class;
};

struct _FtSleepMonitorProviderIface {
	GTypeInterface parent_iface;
};

struct _FtSleepMonitor {
	FtProvidedObject parent_instance;
	FtSleepMonitorPrivate * priv;
};

struct _FtSleepMonitorClass {
	FtProvidedObjectClass parent_class;
};

struct _FtSoundManager {
	GObject parent_instance;
	FtSoundManagerPrivate * priv;
};

struct _FtSoundManagerClass {
	GObjectClass parent_class;
};

struct _FtSoundPlayer {
	GObject parent_instance;
	FtSoundPlayerPrivate * priv;
};

struct _FtSoundPlayerClass {
	GObjectClass parent_class;
	void (*playback_stopped) (FtSoundPlayer* self);
};

typedef enum  {
	FT_SOUND_ERROR_NOT_FOUND,
	FT_SOUND_ERROR_NOT_INITIALIZED,
	FT_SOUND_ERROR_NOT_SUPPORTED
} FtSoundError;
#define FT_SOUND_ERROR ft_sound_error_quark ()

struct _FtSound {
	GObject parent_instance;
	FtSoundPrivate * priv;
	FtSoundPlayer* player;
};

struct _FtSoundClass {
	GObjectClass parent_class;
	void (*initialize_player) (FtSound* self);
	void (*destroy_player) (FtSound* self);
	void (*destroy) (FtSound* self);
};

struct _FtAlertSound {
	FtSound parent_instance;
	FtAlertSoundPrivate * priv;
};

struct _FtAlertSoundClass {
	FtSoundClass parent_class;
};

struct _FtBackgroundSound {
	FtSound parent_instance;
	FtBackgroundSoundPrivate * priv;
};

struct _FtBackgroundSoundClass {
	FtSoundClass parent_class;
};

struct _FtStatsEntry {
	GomResource parent_instance;
	FtStatsEntryPrivate * priv;
};

struct _FtStatsEntryClass {
	GomResourceClass parent_class;
};

struct _FtAggregatedStatsEntry {
	GomResource parent_instance;
	FtAggregatedStatsEntryPrivate * priv;
};

struct _FtAggregatedStatsEntryClass {
	GomResourceClass parent_class;
};

struct _FtTimeBlockMeta {
	FtTimeBlockStatus status;
	gint64 intended_duration;
	gdouble weight;
	gint64 completion_time;
};

struct _FtTimeBlock {
	GInitiallyUnowned parent_instance;
	FtTimeBlockPrivate * priv;
	gulong version;
	FtTimeBlockEntry* entry;
};

struct _FtTimeBlockClass {
	GInitiallyUnownedClass parent_class;
};

struct _FtTimeBlockEntry {
	GomResource parent_instance;
	FtTimeBlockEntryPrivate * priv;
	gulong version;
};

struct _FtTimeBlockEntryClass {
	GomResourceClass parent_class;
};

struct _FtTimer {
	GObject parent_instance;
	FtTimerPrivate * priv;
};

struct _FtTimerClass {
	GObjectClass parent_class;
};

struct _FtTimerActionGroup {
	GSimpleActionGroup parent_instance;
	FtTimerActionGroupPrivate * priv;
};

struct _FtTimerActionGroupClass {
	GSimpleActionGroupClass parent_class;
};

struct _FtTimezoneHistory {
	GObject parent_instance;
	FtTimezoneHistoryPrivate * priv;
};

struct _FtTimezoneHistoryClass {
	GObjectClass parent_class;
};

struct _FtTimeZoneMonitorProviderIface {
	GTypeInterface parent_iface;
	const gchar* (*get_identifier) (FtTimeZoneMonitorProvider* self);
};

struct _FtTimeZoneMonitor {
	FtProvidedObject parent_instance;
	FtTimeZoneMonitorPrivate * priv;
};

struct _FtTimeZoneMonitorClass {
	FtProvidedObjectClass parent_class;
};

struct _FtAsyncCallback {
	GSourceFunc func;
	gpointer func_target;
	GDestroyNotify func_target_destroy_notify;
};

struct _FtAsyncQueue {
	GTypeInstance parent_instance;
	volatile int ref_count;
	FtAsyncQueuePrivate * priv;
};

struct _FtAsyncQueueClass {
	GTypeClass parent_class;
	void (*finalize) (FtAsyncQueue *self);
};

struct _FtVariableSpec {
	GTypeInstance parent_instance;
	volatile int ref_count;
	FtVariableSpecPrivate * priv;
	gchar* name;
	gchar* description;
	GType value_type;
	FtEvaluateFunc evaluate_func;
};

struct _FtVariableSpecClass {
	GTypeClass parent_class;
	void (*finalize) (FtVariableSpec *self);
};

VALA_EXTERN GType ft_action_trigger_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType ft_action_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtAction, g_object_unref)
VALA_EXTERN void ft_action_load (FtAction* self,
                     GSettings* settings);
VALA_EXTERN void ft_action_save (FtAction* self,
                     GSettings* settings);
VALA_EXTERN void ft_action_bind (FtAction* self);
VALA_EXTERN void ft_action_unbind (FtAction* self);
VALA_EXTERN FtAction* ft_action_construct (GType object_type);
VALA_EXTERN const gchar* ft_action_get_uuid (FtAction* self);
VALA_EXTERN GSettings* ft_action_get_settings (FtAction* self);
VALA_EXTERN gboolean ft_action_get_enabled (FtAction* self);
VALA_EXTERN void ft_action_set_enabled (FtAction* self,
                            gboolean value);
VALA_EXTERN const gchar* ft_action_get_display_name (FtAction* self);
VALA_EXTERN void ft_action_set_display_name (FtAction* self,
                                 const gchar* value);
VALA_EXTERN GType ft_event_action_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtEventAction, g_object_unref)
VALA_EXTERN FtEventAction* ft_event_action_new (const gchar* uuid);
VALA_EXTERN FtEventAction* ft_event_action_construct (GType object_type,
                                          const gchar* uuid);
VALA_EXTERN gchar** ft_event_action_get_event_names (FtEventAction* self,
                                         gint* result_length1);
VALA_EXTERN void ft_event_action_set_event_names (FtEventAction* self,
                                      gchar** value,
                                      gint value_length1);
VALA_EXTERN gpointer ft_expression_ref (gpointer instance);
VALA_EXTERN void ft_expression_unref (gpointer instance);
VALA_EXTERN GParamSpec* ft_param_spec_expression (const gchar* name,
                                      const gchar* nick,
                                      const gchar* blurb,
                                      GType object_type,
                                      GParamFlags flags);
VALA_EXTERN void ft_value_set_expression (GValue* value,
                              gpointer v_object);
VALA_EXTERN void ft_value_take_expression (GValue* value,
                               gpointer v_object);
VALA_EXTERN gpointer ft_value_get_expression (const GValue* value);
VALA_EXTERN GType ft_expression_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtExpression, ft_expression_unref)
VALA_EXTERN FtExpression* ft_event_action_get_condition (FtEventAction* self);
VALA_EXTERN void ft_event_action_set_condition (FtEventAction* self,
                                    FtExpression* value);
VALA_EXTERN GType ft_command_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtCommand, g_object_unref)
VALA_EXTERN FtCommand* ft_event_action_get_command (FtEventAction* self);
VALA_EXTERN void ft_event_action_set_command (FtEventAction* self,
                                  FtCommand* value);
VALA_EXTERN gboolean ft_event_action_get_wait_for_completion (FtEventAction* self);
VALA_EXTERN void ft_event_action_set_wait_for_completion (FtEventAction* self,
                                              gboolean value);
VALA_EXTERN GType ft_condition_action_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtConditionAction, g_object_unref)
VALA_EXTERN FtConditionAction* ft_condition_action_new (const gchar* uuid);
VALA_EXTERN FtConditionAction* ft_condition_action_construct (GType object_type,
                                                  const gchar* uuid);
VALA_EXTERN FtExpression* ft_condition_action_get_condition (FtConditionAction* self);
VALA_EXTERN void ft_condition_action_set_condition (FtConditionAction* self,
                                        FtExpression* value);
VALA_EXTERN FtCommand* ft_condition_action_get_enter_command (FtConditionAction* self);
VALA_EXTERN void ft_condition_action_set_enter_command (FtConditionAction* self,
                                            FtCommand* value);
VALA_EXTERN FtCommand* ft_condition_action_get_exit_command (FtConditionAction* self);
VALA_EXTERN void ft_condition_action_set_exit_command (FtConditionAction* self,
                                           FtCommand* value);
VALA_EXTERN GType ft_action_list_model_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtActionListModel, g_object_unref)
VALA_EXTERN gint ft_action_list_model_index (FtActionListModel* self,
                                 const gchar* uuid);
VALA_EXTERN FtAction* ft_action_list_model_lookup (FtActionListModel* self,
                                       const gchar* uuid);
VALA_EXTERN FtAction* ft_action_list_model_create_action (FtActionListModel* self,
                                              const gchar* uuid,
                                              FtActionTrigger trigger);
VALA_EXTERN void ft_action_list_model_save_action (FtActionListModel* self,
                                       FtAction* action);
VALA_EXTERN void ft_action_list_model_delete_action (FtActionListModel* self,
                                         const gchar* uuid);
VALA_EXTERN void ft_action_list_model_move_action (FtActionListModel* self,
                                       const gchar* uuid,
                                       guint position);
VALA_EXTERN FtActionListModel* ft_action_list_model_new (void);
VALA_EXTERN FtActionListModel* ft_action_list_model_construct (GType object_type);
VALA_EXTERN guint ft_action_list_model_get_n_items (FtActionListModel* self);
VALA_EXTERN GType ft_action_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtActionManager, g_object_unref)
VALA_EXTERN void ft_action_manager_destroy (FtActionManager* self);
VALA_EXTERN FtActionManager* ft_action_manager_new (void);
VALA_EXTERN FtActionManager* ft_action_manager_construct (GType object_type);
VALA_EXTERN FtActionListModel* ft_action_manager_get_model (FtActionManager* self);
VALA_EXTERN GType ft_provider_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtProvider, g_object_unref)
VALA_EXTERN GType ft_background_provider_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtBackgroundProvider, g_object_unref)
VALA_EXTERN void ft_background_provider_request_background (FtBackgroundProvider* self,
                                                gboolean autostart,
                                                const gchar* parent_window,
                                                GAsyncReadyCallback _callback_,
                                                gpointer _user_data_);
VALA_EXTERN void ft_background_provider_request_background_finish (FtBackgroundProvider* self,
                                                       GAsyncResult* _res_);
VALA_EXTERN gboolean ft_background_provider_get_background_allowed (FtBackgroundProvider* self);
VALA_EXTERN gboolean ft_background_provider_get_autostart_allowed (FtBackgroundProvider* self);
VALA_EXTERN GType ft_provided_object_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtProvidedObject, g_object_unref)
VALA_EXTERN GType ft_provider_set_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtProviderSet, g_object_unref)
VALA_EXTERN GType ft_background_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtBackgroundManager, g_object_unref)
VALA_EXTERN void ft_background_manager_hold (FtBackgroundManager* self,
                                 const gchar* parent_window,
                                 GAsyncReadyCallback _callback_,
                                 gpointer _user_data_);
VALA_EXTERN guint ft_background_manager_hold_finish (FtBackgroundManager* self,
                                         GAsyncResult* _res_);
VALA_EXTERN guint ft_background_manager_hold_sync (FtBackgroundManager* self,
                                       const gchar* parent_window);
VALA_EXTERN void ft_background_manager_release (FtBackgroundManager* self,
                                    guint hold_id);
VALA_EXTERN void ft_background_manager_destroy (FtBackgroundManager* self);
VALA_EXTERN FtBackgroundManager* ft_background_manager_new (void);
VALA_EXTERN FtBackgroundManager* ft_background_manager_construct (GType object_type);
VALA_EXTERN gboolean ft_background_manager_get_active (FtBackgroundManager* self);
VALA_EXTERN gboolean ft_background_manager_get_background_allowed (FtBackgroundManager* self);
VALA_EXTERN gboolean ft_background_manager_get_autostart_allowed (FtBackgroundManager* self);
VALA_EXTERN GQuark ft_command_error_quark (void);
VALA_EXTERN GType ft_command_error_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType ft_job_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtJob, g_object_unref)
VALA_EXTERN GType ft_command_execution_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtCommandExecution, g_object_unref)
VALA_EXTERN FtCommandExecution* ft_command_execution_new (gchar** args,
                                              gint args_length1,
                                              const gchar* working_directory);
VALA_EXTERN FtCommandExecution* ft_command_execution_construct (GType object_type,
                                                    gchar** args,
                                                    gint args_length1,
                                                    const gchar* working_directory);
VALA_EXTERN gchar* ft_command_execution_get_line (FtCommandExecution* self);
VALA_EXTERN gchar** ft_command_execution_get_args (FtCommandExecution* self,
                                       gint* result_length1);
VALA_EXTERN const gchar* ft_command_execution_get_working_directory (FtCommandExecution* self);
VALA_EXTERN const gchar* ft_command_execution_get_input (FtCommandExecution* self);
VALA_EXTERN void ft_command_execution_set_input (FtCommandExecution* self,
                                     const gchar* value);
VALA_EXTERN gint ft_command_execution_get_timeout (FtCommandExecution* self);
VALA_EXTERN void ft_command_execution_set_timeout (FtCommandExecution* self,
                                       gint value);
VALA_EXTERN gint ft_command_execution_get_exit_code (FtCommandExecution* self);
VALA_EXTERN const gchar* ft_command_execution_get_output (FtCommandExecution* self);
VALA_EXTERN gint64 ft_command_execution_get_execution_time (FtCommandExecution* self);
VALA_EXTERN FtCommand* ft_command_new (const gchar* line);
VALA_EXTERN FtCommand* ft_command_construct (GType object_type,
                                 const gchar* line);
VALA_EXTERN void ft_command_validate (FtCommand* self,
                          GError** error);
VALA_EXTERN gpointer ft_context_ref (gpointer instance);
VALA_EXTERN void ft_context_unref (gpointer instance);
VALA_EXTERN GParamSpec* ft_param_spec_context (const gchar* name,
                                   const gchar* nick,
                                   const gchar* blurb,
                                   GType object_type,
                                   GParamFlags flags);
VALA_EXTERN void ft_value_set_context (GValue* value,
                           gpointer v_object);
VALA_EXTERN void ft_value_take_context (GValue* value,
                            gpointer v_object);
VALA_EXTERN gpointer ft_value_get_context (const GValue* value);
VALA_EXTERN GType ft_context_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtContext, ft_context_unref)
VALA_EXTERN FtCommandExecution* ft_command_prepare (FtCommand* self,
                                        FtContext* context);
VALA_EXTERN FtCommandExecution* ft_command_execute (FtCommand* self,
                                        FtContext* context);
VALA_EXTERN void ft_command_execute_async (FtCommand* self,
                               FtContext* context,
                               GAsyncReadyCallback _callback_,
                               gpointer _user_data_);
VALA_EXTERN FtCommandExecution* ft_command_execute_finish (FtCommand* self,
                                               GAsyncResult* _res_);
VALA_EXTERN const gchar* ft_command_get_line (FtCommand* self);
VALA_EXTERN void ft_command_set_line (FtCommand* self,
                          const gchar* value);
VALA_EXTERN gboolean ft_command_get_use_subshell (FtCommand* self);
VALA_EXTERN void ft_command_set_use_subshell (FtCommand* self,
                                  gboolean value);
VALA_EXTERN const gchar* ft_command_get_working_directory (FtCommand* self);
VALA_EXTERN void ft_command_set_working_directory (FtCommand* self,
                                       const gchar* value);
VALA_EXTERN gboolean ft_command_get_pass_input (FtCommand* self);
VALA_EXTERN void ft_command_set_pass_input (FtCommand* self,
                                gboolean value);
VALA_EXTERN GType ft_timer_state_get_type (void) G_GNUC_CONST ;
VALA_EXTERN FtTimerState* ft_timer_state_dup (const FtTimerState* self);
VALA_EXTERN void ft_timer_state_free (FtTimerState* self);
VALA_EXTERN GType ft_time_block_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtTimeBlock, g_object_unref)
VALA_EXTERN GType ft_session_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtSession, g_object_unref)
VALA_EXTERN FtContext* ft_context_new_build (gint64 timestamp);
VALA_EXTERN FtContext* ft_context_construct_build (GType object_type,
                                       gint64 timestamp);
VALA_EXTERN guint ft_context_calculate_checksum (FtContext* self);
VALA_EXTERN gchar* ft_context_get_event_source (void);
VALA_EXTERN gint64 ft_context_get_event_source_timestamp (void);
VALA_EXTERN void ft_context_set_event_source (const gchar* event_source,
                                  gint64 timestamp);
VALA_EXTERN void ft_context_unset_event_source (void);
VALA_EXTERN gchar* ft_context_to_json (FtContext* self);
VALA_EXTERN gpointer ft_value_ref (gpointer instance);
VALA_EXTERN void ft_value_unref (gpointer instance);
VALA_EXTERN GParamSpec* ft_param_spec_value (const gchar* name,
                                 const gchar* nick,
                                 const gchar* blurb,
                                 GType object_type,
                                 GParamFlags flags);
VALA_EXTERN void ft_value_set_value (GValue* value,
                         gpointer v_object);
VALA_EXTERN void ft_value_take_value (GValue* value,
                          gpointer v_object);
VALA_EXTERN gpointer ft_value_get_value (const GValue* value);
VALA_EXTERN GType ft_value_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtValue, ft_value_unref)
VALA_EXTERN FtValue* ft_context_evaluate_variable (FtContext* self,
                                       const gchar* variable_name);
VALA_EXTERN FtContext* ft_context_new (void);
VALA_EXTERN FtContext* ft_context_construct (GType object_type);
VALA_EXTERN GType ft_cycle_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtCycle, g_object_unref)
VALA_EXTERN void ft_cycle_freeze_changed (FtCycle* self);
VALA_EXTERN void ft_cycle_thaw_changed (FtCycle* self);
VALA_EXTERN void ft_cycle_remove (FtCycle* self,
                      FtTimeBlock* time_block);
VALA_EXTERN void ft_cycle_append (FtCycle* self,
                      FtTimeBlock* time_block);
VALA_EXTERN FtTimeBlock* ft_cycle_get_first_time_block (FtCycle* self);
VALA_EXTERN FtTimeBlock* ft_cycle_get_last_time_block (FtCycle* self);
VALA_EXTERN gboolean ft_cycle_contains (FtCycle* self,
                            FtTimeBlock* time_block);
VALA_EXTERN void ft_cycle_foreach (FtCycle* self,
                       GFunc func,
                       gpointer func_target);
VALA_EXTERN gdouble ft_cycle_get_weight (FtCycle* self);
VALA_EXTERN gint64 ft_cycle_get_completion_time (FtCycle* self);
VALA_EXTERN gboolean ft_cycle_is_scheduled (FtCycle* self);
VALA_EXTERN GType ft_time_block_status_get_type (void) G_GNUC_CONST ;
VALA_EXTERN FtTimeBlockStatus ft_cycle_get_status (FtCycle* self);
VALA_EXTERN gboolean ft_cycle_is_visible (FtCycle* self);
VALA_EXTERN void ft_cycle_prepare_progress (FtCycle* self,
                                gint64 timestamp);
VALA_EXTERN gdouble ft_cycle_calculate_progress (FtCycle* self,
                                     gint64 timestamp);
VALA_EXTERN gint64 ft_cycle_calculate_progress_duration (FtCycle* self,
                                             gint64 timestamp);
VALA_EXTERN FtCycle* ft_cycle_new (void);
VALA_EXTERN FtCycle* ft_cycle_construct (GType object_type);
VALA_EXTERN FtSession* ft_cycle_get_session (FtCycle* self);
VALA_EXTERN gint64 ft_cycle_get_start_time (FtCycle* self);
VALA_EXTERN gint64 ft_cycle_get_end_time (FtCycle* self);
VALA_EXTERN gint64 ft_cycle_get_duration (FtCycle* self);
VALA_EXTERN GomRepository* ft_database_get_repository (void);
VALA_EXTERN gboolean ft_database_migrate_repository (GomRepository* repository,
                                         GomAdapter* adapter,
                                         guint version,
                                         GError** error);
VALA_EXTERN void ft_database_schedule_backup (void);
VALA_EXTERN void ft_database_open (void);
VALA_EXTERN void ft_database_close (void);
VALA_EXTERN gchar* ft_database_serialize_date (GDate* date);
VALA_EXTERN void ft_database_parse_date (const gchar* date_string,
                             GDate* result);
VALA_EXTERN void ft_date_utils_get_today (GDate* result);
VALA_EXTERN gchar* ft_date_utils_format_date (GDate* date,
                                  const gchar* format);
VALA_EXTERN guint ft_date_utils_get_weekday_number (GDateWeekday weekday);
VALA_EXTERN guint ft_date_utils_get_month_number (GDateMonth month);
VALA_EXTERN gchar* ft_date_utils_get_month_name (GDateMonth month);
VALA_EXTERN GVariant* ft_date_utils_date_to_variant (GDate* date);
VALA_EXTERN void ft_date_utils_date_from_variant (GVariant* variant,
                                      GDate* result);
VALA_EXTERN GType ft_state_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType ft_trigger_hook_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType ft_trigger_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gpointer ft_event_spec_ref (gpointer instance);
VALA_EXTERN void ft_event_spec_unref (gpointer instance);
VALA_EXTERN GParamSpec* ft_param_spec_event_spec (const gchar* name,
                                      const gchar* nick,
                                      const gchar* blurb,
                                      GType object_type,
                                      GParamFlags flags);
VALA_EXTERN void ft_value_set_event_spec (GValue* value,
                              gpointer v_object);
VALA_EXTERN void ft_value_take_event_spec (GValue* value,
                               gpointer v_object);
VALA_EXTERN gpointer ft_value_get_event_spec (const GValue* value);
VALA_EXTERN GType ft_event_spec_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtEventSpec, ft_event_spec_unref)
VALA_EXTERN FtTrigger* ft_trigger_dup (const FtTrigger* self);
VALA_EXTERN void ft_trigger_free (FtTrigger* self);
VALA_EXTERN GType ft_event_producer_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtEventProducer, g_object_unref)
VALA_EXTERN FtEventProducer* ft_event_producer_new (void);
VALA_EXTERN FtEventProducer* ft_event_producer_construct (GType object_type);
VALA_EXTERN GType ft_session_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtSessionManager, g_object_unref)
VALA_EXTERN FtEventProducer* ft_event_producer_new_with_session_manager (FtSessionManager* session_manager);
VALA_EXTERN FtEventProducer* ft_event_producer_construct_with_session_manager (GType object_type,
                                                                   FtSessionManager* session_manager);
VALA_EXTERN void ft_event_producer_install_event (FtEventProducer* self,
                                      FtEventSpec* event_spec);
VALA_EXTERN FtEventSpec* ft_event_producer_find_event (FtEventProducer* self,
                                           const gchar* event_name);
VALA_EXTERN FtEventSpec** ft_event_producer_list_events (FtEventProducer* self,
                                             gint* result_length1);
VALA_EXTERN void ft_event_producer_flush (FtEventProducer* self);
VALA_EXTERN void ft_event_producer_destroy (FtEventProducer* self);
VALA_EXTERN FtSessionManager* ft_event_producer_get_session_manager (FtEventProducer* self);
VALA_EXTERN GType ft_timer_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtTimer, g_object_unref)
VALA_EXTERN FtTimer* ft_event_producer_get_timer (FtEventProducer* self);
VALA_EXTERN GType ft_event_bus_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtEventBus, g_object_unref)
VALA_EXTERN FtEventBus* ft_event_producer_get_bus (FtEventProducer* self);
VALA_EXTERN GType ft_event_category_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gchar* ft_event_category_get_label (FtEventCategory self);
VALA_EXTERN void ft_event_category_foreach (GFunc func,
                                gpointer func_target);
VALA_EXTERN FtEventSpec* ft_event_spec_new (const gchar* name,
                                const gchar* display_name,
                                const gchar* description,
                                FtEventCategory category);
VALA_EXTERN FtEventSpec* ft_event_spec_construct (GType object_type,
                                      const gchar* name,
                                      const gchar* display_name,
                                      const gchar* description,
                                      FtEventCategory category);
VALA_EXTERN void ft_event_spec_add_trigger (FtEventSpec* self,
                                FtTriggerHook trigger_hook,
                                FtTriggerFunc trigger_func);
VALA_EXTERN void ft_event_free (FtEvent * self);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtEvent, ft_event_free)
VALA_EXTERN FtEvent* ft_event_new (FtEventSpec* spec,
                       FtContext* context);
VALA_EXTERN void ft_event_bus_push_event (FtEventBus* self,
                              FtEvent* event);
VALA_EXTERN guint ft_event_bus_add_event_watch (FtEventBus* self,
                                    const gchar* event_name,
                                    FtExpression* condition,
                                    FtEventCallback callback,
                                    gpointer callback_target,
                                    GDestroyNotify callback_target_destroy_notify);
VALA_EXTERN guint ft_event_bus_add_condition_watch (FtEventBus* self,
                                        FtExpression* condition,
                                        FtConditionCallback enter_callback,
                                        gpointer enter_callback_target,
                                        GDestroyNotify enter_callback_target_destroy_notify,
                                        FtConditionCallback leave_callback,
                                        gpointer leave_callback_target,
                                        GDestroyNotify leave_callback_target_destroy_notify);
VALA_EXTERN void ft_event_bus_remove_event_watch (FtEventBus* self,
                                      guint watch_id);
VALA_EXTERN void ft_event_bus_remove_condition_watch (FtEventBus* self,
                                          guint watch_id);
VALA_EXTERN void ft_event_bus_destroy (FtEventBus* self);
VALA_EXTERN FtEventBus* ft_event_bus_new (void);
VALA_EXTERN FtEventBus* ft_event_bus_construct (GType object_type);
VALA_EXTERN GQuark ft_expression_error_quark (void);
VALA_EXTERN GType ft_expression_error_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType ft_operator_category_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType ft_operator_get_type (void) G_GNUC_CONST ;
VALA_EXTERN FtOperatorCategory ft_operator_get_category (FtOperator self);
VALA_EXTERN void ft_operator_foreach (GFunc func,
                          gpointer func_target);
VALA_EXTERN FtValue* ft_operator_apply (FtOperator self,
                            FtValue* value_1,
                            FtValue* value_2,
                            GError** error);
VALA_EXTERN GType ft_operator_get_result_type (FtOperator self,
                                   GType value_type_1,
                                   GType value_type_2);
VALA_EXTERN gchar* ft_operator_to_string (FtOperator self);
VALA_EXTERN GType ft_value_get_value_type (FtValue* self);
VALA_EXTERN gchar* ft_value_get_type_name (FtValue* self);
VALA_EXTERN gboolean ft_value_to_boolean (FtValue* self);
VALA_EXTERN gchar* ft_value_to_representation (FtValue* self);
VALA_EXTERN GVariant* ft_value_to_variant (FtValue* self);
VALA_EXTERN GVariant* ft_value_format (FtValue* self,
                           const gchar* name,
                           GError** error);
VALA_EXTERN FtValue* ft_value_construct (GType object_type);
VALA_EXTERN GType ft_boolean_value_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtBooleanValue, ft_value_unref)
VALA_EXTERN FtBooleanValue* ft_boolean_value_new (gboolean value);
VALA_EXTERN FtBooleanValue* ft_boolean_value_construct (GType object_type,
                                            gboolean value);
VALA_EXTERN GType ft_timestamp_value_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtTimestampValue, ft_value_unref)
VALA_EXTERN FtTimestampValue* ft_timestamp_value_new (gint64 timestamp);
VALA_EXTERN FtTimestampValue* ft_timestamp_value_construct (GType object_type,
                                                gint64 timestamp);
VALA_EXTERN GType ft_interval_value_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtIntervalValue, ft_value_unref)
VALA_EXTERN FtIntervalValue* ft_interval_value_new (gint64 interval);
VALA_EXTERN FtIntervalValue* ft_interval_value_construct (GType object_type,
                                              gint64 interval);
VALA_EXTERN GType ft_string_value_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtStringValue, ft_value_unref)
VALA_EXTERN FtStringValue* ft_string_value_new (const gchar* data);
VALA_EXTERN FtStringValue* ft_string_value_construct (GType object_type,
                                          const gchar* data);
VALA_EXTERN GType ft_state_value_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtStateValue, ft_value_unref)
VALA_EXTERN FtStateValue* ft_state_value_new (FtState state);
VALA_EXTERN FtStateValue* ft_state_value_construct (GType object_type,
                                        FtState state);
VALA_EXTERN GType ft_status_value_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtStatusValue, ft_value_unref)
VALA_EXTERN FtStatusValue* ft_status_value_new (FtTimeBlockStatus status);
VALA_EXTERN FtStatusValue* ft_status_value_construct (GType object_type,
                                          FtTimeBlockStatus status);
VALA_EXTERN gchar** ft_list_value_formats (GType value_type,
                               gint* result_length1);
VALA_EXTERN gchar* ft_get_default_value_format (GType value_type);
VALA_EXTERN GType ft_expression_get_result_type (FtExpression* self);
VALA_EXTERN FtValue* ft_expression_evaluate (FtExpression* self,
                                 FtContext* context,
                                 GError** error);
VALA_EXTERN gchar* ft_expression_to_string (FtExpression* self);
VALA_EXTERN GQuark ft_expression_parser_error_quark (void);
VALA_EXTERN GType ft_expression_parser_error_get_type (void) G_GNUC_CONST ;
VALA_EXTERN FtExpression* ft_expression_parse (const gchar* text,
                                   GError** error);
VALA_EXTERN FtExpression* ft_expression_construct (GType object_type);
VALA_EXTERN GType ft_constant_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtConstant, ft_expression_unref)
VALA_EXTERN FtConstant* ft_constant_new (FtValue* value);
VALA_EXTERN FtConstant* ft_constant_construct (GType object_type,
                                   FtValue* value);
VALA_EXTERN gchar* ft_constant_get_string (FtConstant* self);
VALA_EXTERN GType ft_variable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtVariable, ft_expression_unref)
VALA_EXTERN FtVariable* ft_variable_new (const gchar* name);
VALA_EXTERN FtVariable* ft_variable_construct (GType object_type,
                                   const gchar* name);
VALA_EXTERN GType ft_operation_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtOperation, ft_expression_unref)
VALA_EXTERN FtOperation* ft_operation_new (FtOperator operator,
                               ...);
VALA_EXTERN FtOperation* ft_operation_construct (GType object_type,
                                     FtOperator operator,
                                     ...);
VALA_EXTERN FtOperation* ft_operation_constructv (GType object_type,
                                      FtOperator operator,
                                      va_list _vala_va_list);
VALA_EXTERN FtOperation* ft_operation_new_with_argv (FtOperator operator,
                                         FtExpression** arguments,
                                         gint arguments_length1);
VALA_EXTERN FtOperation* ft_operation_construct_with_argv (GType object_type,
                                               FtOperator operator,
                                               FtExpression** arguments,
                                               gint arguments_length1);
VALA_EXTERN GType ft_comparison_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtComparison, ft_expression_unref)
VALA_EXTERN FtComparison* ft_comparison_new (FtExpression* argument_lhs,
                                 FtOperator operator,
                                 FtExpression* argument_rhs);
VALA_EXTERN FtComparison* ft_comparison_construct (GType object_type,
                                       FtExpression* argument_lhs,
                                       FtOperator operator,
                                       FtExpression* argument_rhs);
VALA_EXTERN FtComparison* ft_comparison_new_is_true (FtExpression* expression);
VALA_EXTERN FtComparison* ft_comparison_construct_is_true (GType object_type,
                                               FtExpression* expression);
VALA_EXTERN GType ft_gap_flags_get_type (void) G_GNUC_CONST ;
VALA_EXTERN FtGapFlags ft_gap_flags_from_string (const gchar* str);
VALA_EXTERN gchar* ft_gap_flags_to_string (FtGapFlags self);
VALA_EXTERN GType ft_schedulable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtSchedulable, g_object_unref)
VALA_EXTERN GType ft_gap_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtGap, g_object_unref)
VALA_EXTERN GType ft_gap_entry_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtGapEntry, g_object_unref)
VALA_EXTERN FtGap* ft_gap_new (FtGapFlags flags);
VALA_EXTERN FtGap* ft_gap_construct (GType object_type,
                         FtGapFlags flags);
VALA_EXTERN FtGap* ft_gap_new_with_start_time (gint64 start_time,
                                   FtGapFlags flags);
VALA_EXTERN FtGap* ft_gap_construct_with_start_time (GType object_type,
                                         gint64 start_time,
                                         FtGapFlags flags);
VALA_EXTERN gboolean ft_gap_has_flag (FtGap* self,
                          FtGapFlags flag);
VALA_EXTERN void ft_gap_set_flag (FtGap* self,
                      FtGapFlags flag);
VALA_EXTERN void ft_gap_unset_flag (FtGap* self,
                        FtGapFlags flag);
VALA_EXTERN FtGapFlags ft_gap_get_flags (FtGap* self);
VALA_EXTERN void ft_gap_set_flags (FtGap* self,
                       FtGapFlags value);
VALA_EXTERN FtTimeBlock* ft_gap_get_time_block (FtGap* self);
VALA_EXTERN void ft_gap_set_time_block (FtGap* self,
                            FtTimeBlock* value);
VALA_EXTERN FtGapEntry* ft_gap_entry_new (void);
VALA_EXTERN FtGapEntry* ft_gap_entry_construct (GType object_type);
VALA_EXTERN gint64 ft_gap_entry_get_id (FtGapEntry* self);
VALA_EXTERN void ft_gap_entry_set_id (FtGapEntry* self,
                          gint64 value);
VALA_EXTERN gint64 ft_gap_entry_get_time_block_id (FtGapEntry* self);
VALA_EXTERN void ft_gap_entry_set_time_block_id (FtGapEntry* self,
                                     gint64 value);
VALA_EXTERN gint64 ft_gap_entry_get_start_time (FtGapEntry* self);
VALA_EXTERN void ft_gap_entry_set_start_time (FtGapEntry* self,
                                  gint64 value);
VALA_EXTERN gint64 ft_gap_entry_get_end_time (FtGapEntry* self);
VALA_EXTERN void ft_gap_entry_set_end_time (FtGapEntry* self,
                                gint64 value);
VALA_EXTERN const gchar* ft_gap_entry_get_flags (FtGapEntry* self);
VALA_EXTERN void ft_gap_entry_set_flags (FtGapEntry* self,
                             const gchar* value);
VALA_EXTERN GType ft_idle_monitor_provider_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtIdleMonitorProvider, g_object_unref)
VALA_EXTERN guint32 ft_idle_monitor_provider_add_idle_watch (FtIdleMonitorProvider* self,
                                                 gint64 timeout,
                                                 gboolean ignore_inhibitors,
                                                 gint64 monotonic_time,
                                                 GError** error);
VALA_EXTERN guint32 ft_idle_monitor_provider_reset_idle_watch (FtIdleMonitorProvider* self,
                                                   guint32 id,
                                                   gint64 monotonic_time,
                                                   GError** error);
VALA_EXTERN void ft_idle_monitor_provider_remove_idle_watch (FtIdleMonitorProvider* self,
                                                 guint32 id,
                                                 GError** error);
VALA_EXTERN void ft_idle_monitor_provider_add_active_watch (FtIdleMonitorProvider* self,
                                                GError** error);
VALA_EXTERN void ft_idle_monitor_provider_remove_active_watch (FtIdleMonitorProvider* self,
                                                   GError** error);
VALA_EXTERN gint64 ft_idle_monitor_provider_calculate_absolute_timeout (gint64 relative_timeout,
                                                            gint64 idle_time,
                                                            gint64 reference_time);
VALA_EXTERN gboolean ft_idle_monitor_provider_get_can_ignore_inhibitors (FtIdleMonitorProvider* self);
VALA_EXTERN GType ft_dummy_idle_monitor_provider_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtDummyIdleMonitorProvider, g_object_unref)
VALA_EXTERN gint64 ft_dummy_idle_monitor_provider_get_idle_time (FtDummyIdleMonitorProvider* self,
                                                     GError** error);
VALA_EXTERN FtDummyIdleMonitorProvider* ft_dummy_idle_monitor_provider_new (void);
VALA_EXTERN FtDummyIdleMonitorProvider* ft_dummy_idle_monitor_provider_construct (GType object_type);
VALA_EXTERN GType ft_idle_monitor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtIdleMonitor, g_object_unref)
VALA_EXTERN guint ft_idle_monitor_add_idle_watch (FtIdleMonitor* self,
                                      gint64 timeout,
                                      gboolean ignore_inhibitors,
                                      FtCallback callback,
                                      gpointer callback_target,
                                      GDestroyNotify callback_target_destroy_notify,
                                      gint64 monotonic_time);
VALA_EXTERN guint ft_idle_monitor_add_active_watch (FtIdleMonitor* self,
                                        FtCallback callback,
                                        gpointer callback_target,
                                        GDestroyNotify callback_target_destroy_notify,
                                        gint64 monotonic_time);
VALA_EXTERN void ft_idle_monitor_remove_watch (FtIdleMonitor* self,
                                   guint id);
VALA_EXTERN FtIdleMonitor* ft_idle_monitor_new (void);
VALA_EXTERN FtIdleMonitor* ft_idle_monitor_construct (GType object_type);
VALA_EXTERN GType ft_indicator_provider_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtIndicatorProvider, g_object_unref)
VALA_EXTERN gboolean ft_indicator_provider_get_visible (FtIndicatorProvider* self);
VALA_EXTERN GType ft_indicator_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtIndicator, g_object_unref)
VALA_EXTERN FtIndicator* ft_indicator_new (void);
VALA_EXTERN FtIndicator* ft_indicator_construct (GType object_type);
VALA_EXTERN void ft_job_run (FtJob* self,
                 GAsyncReadyCallback _callback_,
                 gpointer _user_data_);
VALA_EXTERN gboolean ft_job_run_finish (FtJob* self,
                            GAsyncResult* _res_,
                            GError** error);
VALA_EXTERN gboolean ft_job_get_completed (FtJob* self);
VALA_EXTERN void ft_job_set_completed (FtJob* self,
                           gboolean value);
VALA_EXTERN GError* ft_job_get_error (FtJob* self);
VALA_EXTERN void ft_job_set_error (FtJob* self,
                       GError* value);
VALA_EXTERN GType ft_job_queue_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtJobQueue, g_object_unref)
VALA_EXTERN void ft_job_queue_push (FtJobQueue* self,
                        FtJob* job);
VALA_EXTERN void ft_job_queue_wait (FtJobQueue* self,
                        GAsyncReadyCallback _callback_,
                        gpointer _user_data_);
VALA_EXTERN void ft_job_queue_wait_finish (FtJobQueue* self,
                               GAsyncResult* _res_);
VALA_EXTERN FtJobQueue* ft_job_queue_new (void);
VALA_EXTERN FtJobQueue* ft_job_queue_construct (GType object_type);
VALA_EXTERN GType ft_global_shortcuts_provider_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtGlobalShortcutsProvider, g_object_unref)
VALA_EXTERN void ft_global_shortcuts_provider_add_shortcut (FtGlobalShortcutsProvider* self,
                                                const gchar* name,
                                                const gchar* description,
                                                const gchar* default_accelerator);
VALA_EXTERN gchar* ft_global_shortcuts_provider_lookup_accelerator (FtGlobalShortcutsProvider* self,
                                                        const gchar* name);
VALA_EXTERN void ft_global_shortcuts_provider_open_edit_dialog (FtGlobalShortcutsProvider* self,
                                                    const gchar* window_identifier,
                                                    GAsyncReadyCallback _callback_,
                                                    gpointer _user_data_);
VALA_EXTERN void ft_global_shortcuts_provider_open_edit_dialog_finish (FtGlobalShortcutsProvider* self,
                                                           GAsyncResult* _res_,
                                                           GError** error);
VALA_EXTERN GType ft_keyboard_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtKeyboardManager, g_object_unref)
VALA_EXTERN void ft_keyboard_manager_add_shortcut (FtKeyboardManager* self,
                                       const gchar* name,
                                       const gchar* description,
                                       const gchar* default_accelerator);
VALA_EXTERN void ft_keyboard_manager_open_edit_dialog (FtKeyboardManager* self,
                                           const gchar* window_identifier);
VALA_EXTERN void ft_keyboard_manager_inhibit (FtKeyboardManager* self);
VALA_EXTERN void ft_keyboard_manager_uninhibit (FtKeyboardManager* self);
VALA_EXTERN gchar* ft_keyboard_manager_lookup_accelerator (FtKeyboardManager* self,
                                               const gchar* shortcut_name);
VALA_EXTERN void ft_keyboard_manager_foreach_accelerator (FtKeyboardManager* self,
                                              FtForeachAcceleratorFunc func,
                                              gpointer func_target);
VALA_EXTERN FtKeyboardManager* ft_keyboard_manager_new (void);
VALA_EXTERN FtKeyboardManager* ft_keyboard_manager_construct (GType object_type);
VALA_EXTERN gboolean ft_keyboard_manager_get_global_shortcuts_supported (FtKeyboardManager* self);
VALA_EXTERN GDateWeekday ft_locale_get_first_day_of_week (void);
VALA_EXTERN gchar* ft_locale_get_month_name (guint month_number);
VALA_EXTERN gboolean ft_locale_use_12h_format (void);
VALA_EXTERN GType ft_lock_screen_provider_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtLockScreenProvider, g_object_unref)
VALA_EXTERN void ft_lock_screen_provider_activate (FtLockScreenProvider* self);
VALA_EXTERN gboolean ft_lock_screen_provider_get_active (FtLockScreenProvider* self);
VALA_EXTERN GType ft_lock_screen_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtLockScreen, g_object_unref)
VALA_EXTERN void ft_lock_screen_activate (FtLockScreen* self);
VALA_EXTERN FtLockScreen* ft_lock_screen_new (void);
VALA_EXTERN FtLockScreen* ft_lock_screen_construct (GType object_type);
VALA_EXTERN gboolean ft_lock_screen_get_active (FtLockScreen* self);
VALA_EXTERN GType ft_log_entry_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtLogEntry, g_object_unref)
VALA_EXTERN FtLogEntry* ft_log_entry_construct (GType object_type);
VALA_EXTERN gulong ft_log_entry_get_id (FtLogEntry* self);
VALA_EXTERN gint64 ft_log_entry_get_timestamp (FtLogEntry* self);
VALA_EXTERN void ft_log_entry_set_timestamp (FtLogEntry* self,
                                 gint64 value);
VALA_EXTERN const gchar* ft_log_entry_get_label (FtLogEntry* self);
VALA_EXTERN void ft_log_entry_set_label (FtLogEntry* self,
                             const gchar* value);
VALA_EXTERN FtContext* ft_log_entry_get_context (FtLogEntry* self);
VALA_EXTERN void ft_log_entry_set_context (FtLogEntry* self,
                               FtContext* value);
VALA_EXTERN GType ft_event_log_entry_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtEventLogEntry, g_object_unref)
VALA_EXTERN FtEventLogEntry* ft_event_log_entry_new (FtEvent* event);
VALA_EXTERN FtEventLogEntry* ft_event_log_entry_construct (GType object_type,
                                               FtEvent* event);
VALA_EXTERN const gchar* ft_event_log_entry_get_event_name (FtEventLogEntry* self);
VALA_EXTERN void ft_event_log_entry_set_event_name (FtEventLogEntry* self,
                                        const gchar* value);
VALA_EXTERN GType ft_action_log_entry_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtActionLogEntry, g_object_unref)
VALA_EXTERN FtActionLogEntry* ft_action_log_entry_new (FtAction* action,
                                           const gchar* event_name,
                                           FtContext* context,
                                           FtCommandExecution* execution);
VALA_EXTERN FtActionLogEntry* ft_action_log_entry_construct (GType object_type,
                                                 FtAction* action,
                                                 const gchar* event_name,
                                                 FtContext* context,
                                                 FtCommandExecution* execution);
VALA_EXTERN const gchar* ft_action_log_entry_get_action_uuid (FtActionLogEntry* self);
VALA_EXTERN void ft_action_log_entry_set_action_uuid (FtActionLogEntry* self,
                                          const gchar* value);
VALA_EXTERN const gchar* ft_action_log_entry_get_event_name (FtActionLogEntry* self);
VALA_EXTERN void ft_action_log_entry_set_event_name (FtActionLogEntry* self,
                                         const gchar* value);
VALA_EXTERN const gchar* ft_action_log_entry_get_command_line (FtActionLogEntry* self);
VALA_EXTERN void ft_action_log_entry_set_command_line (FtActionLogEntry* self,
                                           const gchar* value);
VALA_EXTERN const gchar* ft_action_log_entry_get_command_output (FtActionLogEntry* self);
VALA_EXTERN void ft_action_log_entry_set_command_output (FtActionLogEntry* self,
                                             const gchar* value);
VALA_EXTERN const gchar* ft_action_log_entry_get_command_error_message (FtActionLogEntry* self);
VALA_EXTERN void ft_action_log_entry_set_command_error_message (FtActionLogEntry* self,
                                                    const gchar* value);
VALA_EXTERN gint ft_action_log_entry_get_command_exit_code (FtActionLogEntry* self);
VALA_EXTERN void ft_action_log_entry_set_command_exit_code (FtActionLogEntry* self,
                                                gint value);
VALA_EXTERN gint64 ft_action_log_entry_get_command_execution_time (FtActionLogEntry* self);
VALA_EXTERN void ft_action_log_entry_set_command_execution_time (FtActionLogEntry* self,
                                                     gint64 value);
VALA_EXTERN GType ft_logger_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtLogger, g_object_unref)
VALA_EXTERN gulong ft_logger_log_event (FtLogger* self,
                            FtEvent* event);
VALA_EXTERN gulong ft_logger_log_action_triggered (FtLogger* self,
                                       FtEventAction* action,
                                       FtContext* context,
                                       FtCommandExecution* execution);
VALA_EXTERN gulong ft_logger_log_action_entered_condition (FtLogger* self,
                                               FtConditionAction* action,
                                               FtContext* context,
                                               FtCommandExecution* execution);
VALA_EXTERN gulong ft_logger_log_action_exited_condition (FtLogger* self,
                                              FtConditionAction* action,
                                              FtContext* context,
                                              FtCommandExecution* execution);
VALA_EXTERN FtLogger* ft_logger_new (void);
VALA_EXTERN FtLogger* ft_logger_construct (GType object_type);
VALA_EXTERN GListModel* ft_logger_get_model (FtLogger* self);
VALA_EXTERN void ft_vector_free (FtVector * self);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtVector, ft_vector_free)
VALA_EXTERN FtVector* ft_vector_new (guint length);
VALA_EXTERN FtVector* ft_vector_new_from_array (gdouble* array,
                                    gint array_length1);
VALA_EXTERN FtVector* ft_vector_copy (FtVector* self);
VALA_EXTERN gdouble ft_vector_get (FtVector* self,
                       gint i,
                       gdouble default_value);
VALA_EXTERN void ft_vector_set (FtVector* self,
                    gint i,
                    gdouble value);
VALA_EXTERN gboolean ft_vector_equals (FtVector* self,
                           FtVector* other);
VALA_EXTERN gboolean ft_vector_add (FtVector* self,
                        FtVector* other);
VALA_EXTERN gdouble ft_vector_sum (FtVector* self);
VALA_EXTERN gdouble ft_vector_min (FtVector* self);
VALA_EXTERN gdouble ft_vector_max (FtVector* self);
VALA_EXTERN gchar* ft_vector_to_representation (FtVector* self);
VALA_EXTERN void ft_matrix_free (FtMatrix * self);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtMatrix, ft_matrix_free)
VALA_EXTERN FtMatrix* ft_matrix_new (guint shape_0,
                         guint shape_1);
VALA_EXTERN FtMatrix* ft_matrix_new_from_array (gdouble* array,
                                    gint array_length1,
                                    gint array_length2);
VALA_EXTERN FtMatrix* ft_matrix_copy (FtMatrix* self);
VALA_EXTERN void ft_matrix_resize (FtMatrix* self,
                       guint shape_0,
                       guint shape_1,
                       gdouble default_value);
VALA_EXTERN gdouble ft_matrix_get (FtMatrix* self,
                       gint i,
                       gint j,
                       gdouble default_value);
VALA_EXTERN void ft_matrix_set (FtMatrix* self,
                    gint i,
                    gint j,
                    gdouble value);
VALA_EXTERN void ft_matrix_fill (FtMatrix* self,
                     gdouble value);
VALA_EXTERN gboolean ft_matrix_equals (FtMatrix* self,
                           FtMatrix* other);
VALA_EXTERN gboolean ft_matrix_add (FtMatrix* self,
                        FtMatrix* other);
VALA_EXTERN void ft_matrix_add_value (FtMatrix* self,
                          gint i,
                          gint j,
                          gdouble value);
VALA_EXTERN FtVector* ft_matrix_get_vector_internal (FtMatrix* self,
                                         gint axis,
                                         gint index);
VALA_EXTERN FtVector* ft_matrix_get_vector (FtMatrix* self,
                                gint axis,
                                gint index);
VALA_EXTERN gdouble ft_matrix_sum (FtMatrix* self);
VALA_EXTERN gdouble ft_matrix_min (FtMatrix* self);
VALA_EXTERN gdouble ft_matrix_max (FtMatrix* self);
VALA_EXTERN FtVector** ft_matrix_unstack (FtMatrix* self,
                              gint axis,
                              gint* result_length1);
VALA_EXTERN gchar* ft_matrix_to_representation (FtMatrix* self);
VALA_EXTERN void ft_matrix3_d_free (FtMatrix3D * self);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtMatrix3D, ft_matrix3_d_free)
VALA_EXTERN FtMatrix3D* ft_matrix3_d_new (guint shape_0,
                              guint shape_1,
                              guint shape_2);
VALA_EXTERN FtMatrix3D* ft_matrix3_d_new_from_array (gdouble* array,
                                         gint array_length1,
                                         gint array_length2,
                                         gint array_length3);
VALA_EXTERN void ft_matrix3_d_resize (FtMatrix3D* self,
                          guint shape_0,
                          guint shape_1,
                          guint shape_2,
                          gdouble default_value);
VALA_EXTERN gdouble ft_matrix3_d_get (FtMatrix3D* self,
                          gint i,
                          gint j,
                          gint k,
                          gdouble default_value);
VALA_EXTERN void ft_matrix3_d_set (FtMatrix3D* self,
                       gint i,
                       gint j,
                       gint k,
                       gdouble value);
VALA_EXTERN void ft_matrix3_d_fill (FtMatrix3D* self,
                        gdouble value);
VALA_EXTERN gboolean ft_matrix3_d_equals (FtMatrix3D* self,
                              FtMatrix3D* other);
VALA_EXTERN FtMatrix* ft_matrix3_d_get_matrix_internal (FtMatrix3D* self,
                                            gint axis,
                                            gint index);
VALA_EXTERN FtMatrix* ft_matrix3_d_get_matrix (FtMatrix3D* self,
                                   gint axis,
                                   gint index);
VALA_EXTERN gdouble ft_matrix3_d_sum (FtMatrix3D* self);
VALA_EXTERN gdouble ft_matrix3_d_min (FtMatrix3D* self);
VALA_EXTERN gdouble ft_matrix3_d_max (FtMatrix3D* self);
VALA_EXTERN FtMatrix** ft_matrix3_d_unstack (FtMatrix3D* self,
                                 gint axis,
                                 gint* result_length1);
VALA_EXTERN GType ft_notification_priority_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gchar* ft_notification_priority_to_string (FtNotificationPriority self);
VALA_EXTERN gpointer ft_notification_ref (gpointer instance);
VALA_EXTERN void ft_notification_unref (gpointer instance);
VALA_EXTERN GParamSpec* ft_param_spec_notification (const gchar* name,
                                        const gchar* nick,
                                        const gchar* blurb,
                                        GType object_type,
                                        GParamFlags flags);
VALA_EXTERN void ft_value_set_notification (GValue* value,
                                gpointer v_object);
VALA_EXTERN void ft_value_take_notification (GValue* value,
                                 gpointer v_object);
VALA_EXTERN gpointer ft_value_get_notification (const GValue* value);
VALA_EXTERN GType ft_notification_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtNotification, ft_notification_unref)
VALA_EXTERN FtNotification* ft_notification_new (const gchar* title,
                                     const gchar* body);
VALA_EXTERN FtNotification* ft_notification_construct (GType object_type,
                                           const gchar* title,
                                           const gchar* body);
VALA_EXTERN void ft_notification_set_default_action_and_target_value (FtNotification* self,
                                                          const gchar* action,
                                                          GVariant* target_value);
VALA_EXTERN void ft_notification_set_default_action (FtNotification* self,
                                         const gchar* detailed_action);
VALA_EXTERN void ft_notification_add_button_with_target_value (FtNotification* self,
                                                   const gchar* label,
                                                   const gchar* action,
                                                   GVariant* target_value);
VALA_EXTERN void ft_notification_add_button (FtNotification* self,
                                 const gchar* label,
                                 const gchar* detailed_action);
VALA_EXTERN void ft_notification_foreach_button (FtNotification* self,
                                     FtNotificationForeachButtonFunc func,
                                     gpointer func_target);
VALA_EXTERN gboolean ft_notification_is_similar (FtNotification* self,
                                     FtNotification* other);
VALA_EXTERN GType ft_notification_backend_provider_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtNotificationBackendProvider, g_object_unref)
VALA_EXTERN void ft_notification_backend_provider_send_notification (FtNotificationBackendProvider* self,
                                                         const gchar* id,
                                                         FtNotification* notification,
                                                         GAsyncReadyCallback _callback_,
                                                         gpointer _user_data_);
VALA_EXTERN void ft_notification_backend_provider_send_notification_finish (FtNotificationBackendProvider* self,
                                                                GAsyncResult* _res_);
VALA_EXTERN void ft_notification_backend_provider_withdraw_notification (FtNotificationBackendProvider* self,
                                                             const gchar* id,
                                                             GAsyncReadyCallback _callback_,
                                                             gpointer _user_data_);
VALA_EXTERN void ft_notification_backend_provider_withdraw_notification_finish (FtNotificationBackendProvider* self,
                                                                    GAsyncResult* _res_);
VALA_EXTERN GType ft_notification_backend_interface_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtNotificationBackendInterface, g_object_unref)
VALA_EXTERN void ft_notification_backend_interface_send_notification (FtNotificationBackendInterface* self,
                                                          const gchar* id,
                                                          FtNotification* notification);
VALA_EXTERN void ft_notification_backend_interface_withdraw_notification (FtNotificationBackendInterface* self,
                                                              const gchar* id);
VALA_EXTERN GType ft_notification_backend_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtNotificationBackend, g_object_unref)
VALA_EXTERN FtNotificationBackend* ft_notification_backend_new (void);
VALA_EXTERN FtNotificationBackend* ft_notification_backend_construct (GType object_type);
VALA_EXTERN GType ft_notification_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtNotificationManager, g_object_unref)
VALA_EXTERN FtNotificationManager* ft_notification_manager_new (void);
VALA_EXTERN FtNotificationManager* ft_notification_manager_construct (GType object_type);
VALA_EXTERN FtNotificationManager* ft_notification_manager_new_with_backend (FtNotificationBackendInterface* backend);
VALA_EXTERN FtNotificationManager* ft_notification_manager_construct_with_backend (GType object_type,
                                                                       FtNotificationBackendInterface* backend);
VALA_EXTERN void ft_notification_manager_inhibit (FtNotificationManager* self);
VALA_EXTERN void ft_notification_manager_uninhibit (FtNotificationManager* self,
                                        gboolean notify);
VALA_EXTERN void ft_notification_manager_emit_screen_overlay_opened (FtNotificationManager* self);
VALA_EXTERN void ft_notification_manager_emit_screen_overlay_closed (FtNotificationManager* self);
VALA_EXTERN void ft_notification_manager_destroy (FtNotificationManager* self);
VALA_EXTERN FtTimer* ft_notification_manager_get_timer (FtNotificationManager* self);
VALA_EXTERN FtSessionManager* ft_notification_manager_get_session_manager (FtNotificationManager* self);
VALA_EXTERN FtNotificationBackendInterface* ft_notification_manager_get_backend (FtNotificationManager* self);
VALA_EXTERN GType ft_priority_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gchar* ft_priority_to_string (FtPriority self);
VALA_EXTERN FtPriority ft_priority_from_string (const gchar* priority);
VALA_EXTERN void ft_provided_object_initialize (FtProvidedObject* self);
VALA_EXTERN void ft_provided_object_setup_providers (FtProvidedObject* self);
VALA_EXTERN void ft_provided_object_provider_enabled (FtProvidedObject* self,
                                          gconstpointer provider);
VALA_EXTERN void ft_provided_object_provider_disabled (FtProvidedObject* self,
                                           gconstpointer provider);
VALA_EXTERN FtProvidedObject* ft_provided_object_construct (GType object_type,
                                                GType t_type,
                                                GBoxedCopyFunc t_dup_func,
                                                GDestroyNotify t_destroy_func);
VALA_EXTERN gboolean ft_provided_object_get_available (FtProvidedObject* self);
VALA_EXTERN gboolean ft_provided_object_get_enabled (FtProvidedObject* self);
VALA_EXTERN gconstpointer ft_provided_object_get_provider (FtProvidedObject* self);
VALA_EXTERN void ft_provider_initialize (FtProvider* self,
                             GCancellable* cancellable,
                             GAsyncReadyCallback _callback_,
                             gpointer _user_data_);
VALA_EXTERN void ft_provider_initialize_finish (FtProvider* self,
                                    GAsyncResult* _res_,
                                    GError** error);
VALA_EXTERN void ft_provider_uninitialize (FtProvider* self,
                               GAsyncReadyCallback _callback_,
                               gpointer _user_data_);
VALA_EXTERN void ft_provider_uninitialize_finish (FtProvider* self,
                                      GAsyncResult* _res_,
                                      GError** error);
VALA_EXTERN void ft_provider_enable (FtProvider* self,
                         GCancellable* cancellable,
                         GAsyncReadyCallback _callback_,
                         gpointer _user_data_);
VALA_EXTERN void ft_provider_enable_finish (FtProvider* self,
                                GAsyncResult* _res_,
                                GError** error);
VALA_EXTERN void ft_provider_disable (FtProvider* self,
                          GAsyncReadyCallback _callback_,
                          gpointer _user_data_);
VALA_EXTERN void ft_provider_disable_finish (FtProvider* self,
                                 GAsyncResult* _res_,
                                 GError** error);
VALA_EXTERN FtProvider* ft_provider_construct (GType object_type);
VALA_EXTERN gboolean ft_provider_get_available (FtProvider* self);
VALA_EXTERN void ft_provider_set_available (FtProvider* self,
                                gboolean value);
VALA_EXTERN gboolean ft_provider_get_available_set (FtProvider* self);
VALA_EXTERN gboolean ft_provider_get_enabled (FtProvider* self);
VALA_EXTERN GType ft_selection_mode_get_type (void) G_GNUC_CONST ;
VALA_EXTERN FtProviderSet* ft_provider_set_new (GType t_type,
                                    GBoxedCopyFunc t_dup_func,
                                    GDestroyNotify t_destroy_func,
                                    FtSelectionMode selection_mode);
VALA_EXTERN FtProviderSet* ft_provider_set_construct (GType object_type,
                                          GType t_type,
                                          GBoxedCopyFunc t_dup_func,
                                          GDestroyNotify t_destroy_func,
                                          FtSelectionMode selection_mode);
VALA_EXTERN void ft_provider_set_add (FtProviderSet* self,
                          gconstpointer provider,
                          FtPriority priority);
VALA_EXTERN void ft_provider_set_remove (FtProviderSet* self,
                             gconstpointer provider);
VALA_EXTERN void ft_provider_set_remove_all (FtProviderSet* self);
VALA_EXTERN void ft_provider_set_discover (FtProviderSet* self);
VALA_EXTERN void ft_provider_set_enable (FtProviderSet* self);
VALA_EXTERN void ft_provider_set_disable (FtProviderSet* self);
VALA_EXTERN void ft_provider_set_foreach (FtProviderSet* self,
                              GFunc func,
                              gpointer func_target);
VALA_EXTERN void ft_provider_set_foreach_selected (FtProviderSet* self,
                                       GFunc func,
                                       gpointer func_target);
VALA_EXTERN void ft_provider_set_foreach_enabled (FtProviderSet* self,
                                      GFunc func,
                                      gpointer func_target);
VALA_EXTERN FtSelectionMode ft_provider_set_get_selection_mode (FtProviderSet* self);
VALA_EXTERN GType ft_scheduler_context_get_type (void) G_GNUC_CONST ;
VALA_EXTERN FtSchedulerContext* ft_scheduler_context_dup (const FtSchedulerContext* self);
VALA_EXTERN void ft_scheduler_context_free (FtSchedulerContext* self);
VALA_EXTERN void ft_scheduler_context_init (FtSchedulerContext *self);
VALA_EXTERN void ft_scheduler_context_initial (gint64 timestamp,
                                   FtSchedulerContext* result);
VALA_EXTERN void ft_scheduler_context_copy (FtSchedulerContext *self,
                                FtSchedulerContext* result);
VALA_EXTERN GVariant* ft_scheduler_context_to_variant (FtSchedulerContext *self);
VALA_EXTERN gchar* ft_scheduler_context_to_representation (FtSchedulerContext *self);
VALA_EXTERN GType ft_scheduler_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtScheduler, g_object_unref)
VALA_EXTERN gint64 ft_scheduler_calculate_time_block_completion_time (FtScheduler* self,
                                                          FtTimeBlock* time_block);
VALA_EXTERN gdouble ft_scheduler_calculate_time_block_score (FtScheduler* self,
                                                 FtTimeBlock* time_block,
                                                 gint64 timestamp);
VALA_EXTERN gdouble ft_scheduler_calculate_time_block_weight (FtScheduler* self,
                                                  FtTimeBlock* time_block);
VALA_EXTERN void ft_scheduler_resolve_context (FtScheduler* self,
                                   FtTimeBlock* time_block,
                                   gboolean is_resuming,
                                   gint64 timestamp,
                                   FtSchedulerContext* context);
VALA_EXTERN FtState ft_scheduler_resolve_state (FtScheduler* self,
                                    FtSchedulerContext* context);
VALA_EXTERN FtTimeBlock* ft_scheduler_resolve_time_block (FtScheduler* self,
                                              FtSchedulerContext* context);
VALA_EXTERN gboolean ft_scheduler_is_time_block_completed (FtScheduler* self,
                                               FtTimeBlock* time_block,
                                               gint64 timestamp);
VALA_EXTERN void ft_scheduler_reschedule_time_block (FtScheduler* self,
                                         FtTimeBlock* time_block,
                                         gint64 timestamp);
VALA_EXTERN gboolean ft_scheduler_reschedule_session (FtScheduler* self,
                                          FtSession* session,
                                          FtTimeBlock* next_time_block,
                                          gboolean is_resuming,
                                          gint64 timestamp);
VALA_EXTERN void ft_scheduler_ensure_time_block_meta (FtScheduler* self,
                                          FtTimeBlock* time_block);
VALA_EXTERN void ft_scheduler_ensure_session_meta (FtScheduler* self,
                                       FtSession* session);
VALA_EXTERN FtScheduler* ft_scheduler_construct (GType object_type);
VALA_EXTERN GType ft_session_template_get_type (void) G_GNUC_CONST ;
VALA_EXTERN FtSessionTemplate* ft_session_template_dup (const FtSessionTemplate* self);
VALA_EXTERN void ft_session_template_free (FtSessionTemplate* self);
VALA_EXTERN void ft_scheduler_get_session_template (FtScheduler* self,
                                        FtSessionTemplate * result);
VALA_EXTERN void ft_scheduler_set_session_template (FtScheduler* self,
                                        FtSessionTemplate * value);
VALA_EXTERN GType ft_simple_scheduler_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtSimpleScheduler, g_object_unref)
VALA_EXTERN FtSimpleScheduler* ft_simple_scheduler_new_with_template (FtSessionTemplate* session_template);
VALA_EXTERN FtSimpleScheduler* ft_simple_scheduler_construct_with_template (GType object_type,
                                                                FtSessionTemplate* session_template);
VALA_EXTERN FtSimpleScheduler* ft_simple_scheduler_new (void);
VALA_EXTERN FtSimpleScheduler* ft_simple_scheduler_construct (GType object_type);
VALA_EXTERN GType ft_screen_overlay_provider_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtScreenOverlayProvider, g_object_unref)
VALA_EXTERN void ft_screen_overlay_provider_open (FtScreenOverlayProvider* self);
VALA_EXTERN void ft_screen_overlay_provider_close (FtScreenOverlayProvider* self);
VALA_EXTERN GType ft_screen_overlay_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtScreenOverlayManager, g_object_unref)
VALA_EXTERN void ft_screen_overlay_manager_add_provider (FtScreenOverlayManager* self,
                                             FtScreenOverlayProvider* provider,
                                             FtPriority priority);
VALA_EXTERN void ft_screen_overlay_manager_open (FtScreenOverlayManager* self);
VALA_EXTERN void ft_screen_overlay_manager_close (FtScreenOverlayManager* self);
VALA_EXTERN FtScreenOverlayManager* ft_screen_overlay_manager_new (void);
VALA_EXTERN FtScreenOverlayManager* ft_screen_overlay_manager_construct (GType object_type);
VALA_EXTERN FtScreenOverlayProvider* ft_screen_overlay_manager_get_provider (FtScreenOverlayManager* self);
VALA_EXTERN GType ft_screen_saver_provider_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtScreenSaverProvider, g_object_unref)
VALA_EXTERN gboolean ft_screen_saver_provider_get_active (FtScreenSaverProvider* self);
VALA_EXTERN GType ft_screen_saver_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtScreenSaver, g_object_unref)
VALA_EXTERN void ft_screen_saver_add_provider (FtScreenSaver* self,
                                   FtScreenSaverProvider* provider,
                                   FtPriority priority);
VALA_EXTERN FtScreenSaver* ft_screen_saver_new (void);
VALA_EXTERN FtScreenSaver* ft_screen_saver_construct (GType object_type);
VALA_EXTERN gboolean ft_screen_saver_get_active (FtScreenSaver* self);
VALA_EXTERN void ft_session_template_init_with_defaults (FtSessionTemplate *self);
VALA_EXTERN gboolean ft_session_template_equals (FtSessionTemplate *self,
                                     FtSessionTemplate* other);
VALA_EXTERN gint64 ft_session_template_calculate_total_duration (FtSessionTemplate *self);
VALA_EXTERN gdouble ft_session_template_calculate_break_percentage (FtSessionTemplate *self);
VALA_EXTERN gboolean ft_session_template_has_uniform_breaks (FtSessionTemplate *self);
VALA_EXTERN gint64 ft_session_template_get_duration (FtSessionTemplate *self,
                                         FtState state);
VALA_EXTERN GVariant* ft_session_template_to_variant (FtSessionTemplate *self);
VALA_EXTERN gchar* ft_session_template_to_representation (FtSessionTemplate *self);
VALA_EXTERN GType ft_session_entry_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtSessionEntry, g_object_unref)
VALA_EXTERN FtSession* ft_session_new (void);
VALA_EXTERN FtSession* ft_session_construct (GType object_type);
VALA_EXTERN FtSession* ft_session_new_from_template (FtSessionTemplate* template,
                                         gint64 timestamp);
VALA_EXTERN FtSession* ft_session_construct_from_template (GType object_type,
                                               FtSessionTemplate* template,
                                               gint64 timestamp);
VALA_EXTERN void ft_session_freeze_changed (FtSession* self);
VALA_EXTERN void ft_session_thaw_changed (FtSession* self);
VALA_EXTERN gboolean ft_session_is_expired (FtSession* self,
                                gint64 timestamp);
VALA_EXTERN gboolean ft_session_is_scheduled (FtSession* self);
VALA_EXTERN gboolean ft_session_is_completed (FtSession* self);
VALA_EXTERN gfloat ft_session_calculate_break_ratio (FtSession* self,
                                         gint64 timestamp);
VALA_EXTERN void ft_session_append (FtSession* self,
                        FtTimeBlock* time_block);
VALA_EXTERN void ft_session_prepend (FtSession* self,
                         FtTimeBlock* time_block);
VALA_EXTERN void ft_session_insert_before (FtSession* self,
                               FtTimeBlock* time_block,
                               FtTimeBlock* sibling);
VALA_EXTERN void ft_session_insert_after (FtSession* self,
                              FtTimeBlock* time_block,
                              FtTimeBlock* sibling);
VALA_EXTERN void ft_session_remove (FtSession* self,
                        FtTimeBlock* time_block);
VALA_EXTERN void ft_session_remove_before (FtSession* self,
                               FtTimeBlock* time_block);
VALA_EXTERN void ft_session_remove_after (FtSession* self,
                              FtTimeBlock* time_block);
VALA_EXTERN void ft_session_remove_scheduled (FtSession* self);
VALA_EXTERN FtTimeBlock* ft_session_get_first_time_block (FtSession* self);
VALA_EXTERN FtTimeBlock* ft_session_get_last_time_block (FtSession* self);
VALA_EXTERN FtTimeBlock* ft_session_get_nth_time_block (FtSession* self,
                                            guint index);
VALA_EXTERN FtTimeBlock* ft_session_get_previous_time_block (FtSession* self,
                                                 FtTimeBlock* time_block);
VALA_EXTERN FtTimeBlock* ft_session_get_next_time_block (FtSession* self,
                                             FtTimeBlock* time_block);
VALA_EXTERN gint ft_session_index (FtSession* self,
                       FtTimeBlock* time_block);
VALA_EXTERN gboolean ft_session_contains (FtSession* self,
                              FtTimeBlock* time_block);
VALA_EXTERN void ft_session_foreach (FtSession* self,
                         GFunc func,
                         gpointer func_target);
VALA_EXTERN void ft_session_move_by (FtSession* self,
                         gint64 offset);
VALA_EXTERN void ft_session_move_to (FtSession* self,
                         gint64 timestamp);
VALA_EXTERN void ft_session_set_time_block_status (FtSession* self,
                                       FtTimeBlock* time_block,
                                       FtTimeBlockStatus status);
VALA_EXTERN GList* ft_session_get_cycles (FtSession* self);
VALA_EXTERN guint ft_session_count_time_blocks (FtSession* self,
                                    FtFilterFunc func,
                                    gpointer func_target);
VALA_EXTERN guint ft_session_count_cycles (FtSession* self,
                               FtFilterFunc func,
                               gpointer func_target);
VALA_EXTERN guint ft_session_count_visible_cycles (FtSession* self);
VALA_EXTERN gint64 ft_session_get_start_time (FtSession* self);
VALA_EXTERN gint64 ft_session_get_end_time (FtSession* self);
VALA_EXTERN gint64 ft_session_get_duration (FtSession* self);
VALA_EXTERN gint64 ft_session_get_expiry_time (FtSession* self);
VALA_EXTERN void ft_session_set_expiry_time (FtSession* self,
                                 gint64 value);
VALA_EXTERN FtSessionEntry* ft_session_entry_new (void);
VALA_EXTERN FtSessionEntry* ft_session_entry_construct (GType object_type);
VALA_EXTERN gint64 ft_session_entry_get_id (FtSessionEntry* self);
VALA_EXTERN void ft_session_entry_set_id (FtSessionEntry* self,
                              gint64 value);
VALA_EXTERN gint64 ft_session_entry_get_start_time (FtSessionEntry* self);
VALA_EXTERN void ft_session_entry_set_start_time (FtSessionEntry* self,
                                      gint64 value);
VALA_EXTERN gint64 ft_session_entry_get_end_time (FtSessionEntry* self);
VALA_EXTERN void ft_session_entry_set_end_time (FtSessionEntry* self,
                                    gint64 value);
VALA_EXTERN gint64 ft_session_entry_get_expiry_time (FtSessionEntry* self);
VALA_EXTERN void ft_session_entry_set_expiry_time (FtSessionEntry* self,
                                       gint64 value);
VALA_EXTERN FtSessionManager* ft_session_manager_new (void);
VALA_EXTERN FtSessionManager* ft_session_manager_construct (GType object_type);
VALA_EXTERN FtSessionManager* ft_session_manager_new_with_timer (FtTimer* timer);
VALA_EXTERN FtSessionManager* ft_session_manager_construct_with_timer (GType object_type,
                                                           FtTimer* timer);
VALA_EXTERN void ft_session_manager_set_default (FtSessionManager* session_manager);
VALA_EXTERN FtSessionManager* ft_session_manager_get_default (void);
VALA_EXTERN FtTimeBlock* ft_session_manager_get_next_time_block (FtSessionManager* self);
VALA_EXTERN FtCycle* ft_session_manager_get_current_cycle (FtSessionManager* self);
VALA_EXTERN void ft_session_manager_save (FtSessionManager* self,
                              GAsyncReadyCallback _callback_,
                              gpointer _user_data_);
VALA_EXTERN gboolean ft_session_manager_save_finish (FtSessionManager* self,
                                         GAsyncResult* _res_);
VALA_EXTERN void ft_session_manager_restore (FtSessionManager* self,
                                 gint64 timestamp,
                                 GAsyncReadyCallback _callback_,
                                 gpointer _user_data_);
VALA_EXTERN gboolean ft_session_manager_restore_finish (FtSessionManager* self,
                                            GAsyncResult* _res_);
VALA_EXTERN void ft_session_manager_advance_to_state (FtSessionManager* self,
                                          FtState state,
                                          gint64 timestamp);
VALA_EXTERN void ft_session_manager_advance (FtSessionManager* self,
                                 gint64 timestamp);
VALA_EXTERN void ft_session_manager_ensure_session (FtSessionManager* self,
                                        gint64 timestamp);
VALA_EXTERN gboolean ft_session_manager_can_reset (FtSessionManager* self);
VALA_EXTERN void ft_session_manager_reset (FtSessionManager* self,
                               gint64 timestamp);
VALA_EXTERN void ft_session_manager_check_current_session_expired (FtSessionManager* self);
VALA_EXTERN FtTimer* ft_session_manager_get_timer (FtSessionManager* self);
VALA_EXTERN FtScheduler* ft_session_manager_get_scheduler (FtSessionManager* self);
VALA_EXTERN void ft_session_manager_set_scheduler (FtSessionManager* self,
                                       FtScheduler* value);
VALA_EXTERN FtSession* ft_session_manager_get_current_session (FtSessionManager* self);
VALA_EXTERN void ft_session_manager_set_current_session (FtSessionManager* self,
                                             FtSession* value);
VALA_EXTERN FtTimeBlock* ft_session_manager_get_current_time_block (FtSessionManager* self);
VALA_EXTERN void ft_session_manager_set_current_time_block (FtSessionManager* self,
                                                FtTimeBlock* value);
VALA_EXTERN FtState ft_session_manager_get_current_state (FtSessionManager* self);
VALA_EXTERN void ft_session_manager_set_current_state (FtSessionManager* self,
                                           FtState value);
VALA_EXTERN FtGap* ft_session_manager_get_current_gap (FtSessionManager* self);
VALA_EXTERN gboolean ft_session_manager_get_has_uniform_breaks (FtSessionManager* self);
VALA_EXTERN GType ft_session_manager_action_group_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtSessionManagerActionGroup, g_object_unref)
VALA_EXTERN FtSessionManagerActionGroup* ft_session_manager_action_group_new (void);
VALA_EXTERN FtSessionManagerActionGroup* ft_session_manager_action_group_construct (GType object_type);
VALA_EXTERN FtSessionManager* ft_session_manager_action_group_get_session_manager (FtSessionManagerActionGroup* self);
VALA_EXTERN void ft_set_settings (GSettings* settings);
VALA_EXTERN GSettings* ft_get_settings (void);
VALA_EXTERN GType ft_sleep_monitor_provider_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtSleepMonitorProvider, g_object_unref)
VALA_EXTERN GType ft_sleep_monitor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtSleepMonitor, g_object_unref)
VALA_EXTERN FtSleepMonitor* ft_sleep_monitor_new (void);
VALA_EXTERN FtSleepMonitor* ft_sleep_monitor_construct (GType object_type);
VALA_EXTERN GType ft_sound_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtSoundManager, g_object_unref)
VALA_EXTERN void ft_sound_manager_inhibit_background_sound (FtSoundManager* self);
VALA_EXTERN void ft_sound_manager_uninhibit_background_sound (FtSoundManager* self);
VALA_EXTERN FtSoundManager* ft_sound_manager_new (void);
VALA_EXTERN FtSoundManager* ft_sound_manager_construct (GType object_type);
VALA_EXTERN GType ft_sound_player_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtSoundPlayer, g_object_unref)
VALA_EXTERN FtSoundPlayer* ft_sound_player_new (GError** error);
VALA_EXTERN FtSoundPlayer* ft_sound_player_construct (GType object_type,
                                          GError** error);
VALA_EXTERN gchar** ft_sound_player_get_supported_mime_types (gint* result_length1);
VALA_EXTERN GstClockTime ft_sound_player_get_running_time (FtSoundPlayer* self);
VALA_EXTERN void ft_sound_player_play (FtSoundPlayer* self);
VALA_EXTERN void ft_sound_player_stop (FtSoundPlayer* self);
VALA_EXTERN gboolean ft_sound_player_is_playing (FtSoundPlayer* self);
VALA_EXTERN void ft_sound_player_fade_in (FtSoundPlayer* self,
                              gint64 duration);
VALA_EXTERN void ft_sound_player_fade_out (FtSoundPlayer* self,
                               gint64 duration);
VALA_EXTERN const gchar* ft_sound_player_get_uri (FtSoundPlayer* self);
VALA_EXTERN void ft_sound_player_set_uri (FtSoundPlayer* self,
                              const gchar* value);
VALA_EXTERN gdouble ft_sound_player_get_volume (FtSoundPlayer* self);
VALA_EXTERN void ft_sound_player_set_volume (FtSoundPlayer* self,
                                 gdouble value);
VALA_EXTERN gboolean ft_sound_player_get_loop (FtSoundPlayer* self);
VALA_EXTERN void ft_sound_player_set_loop (FtSoundPlayer* self,
                               gboolean value);
VALA_EXTERN GQuark ft_sound_error_quark (void);
VALA_EXTERN GType ft_sound_error_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType ft_sound_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtSound, g_object_unref)
VALA_EXTERN gboolean ft_sound_can_play (FtSound* self);
VALA_EXTERN gboolean ft_sound_is_playing (FtSound* self);
VALA_EXTERN void ft_sound_play (FtSound* self);
VALA_EXTERN void ft_sound_stop (FtSound* self);
VALA_EXTERN void ft_sound_initialize_player (FtSound* self);
VALA_EXTERN void ft_sound_destroy_player (FtSound* self);
VALA_EXTERN void ft_sound_destroy (FtSound* self);
VALA_EXTERN FtSound* ft_sound_construct (GType object_type);
VALA_EXTERN const gchar* ft_sound_get_uri (FtSound* self);
VALA_EXTERN void ft_sound_set_uri (FtSound* self,
                       const gchar* value);
VALA_EXTERN gdouble ft_sound_get_volume (FtSound* self);
VALA_EXTERN void ft_sound_set_volume (FtSound* self,
                          gdouble value);
VALA_EXTERN GError* ft_sound_get_error (FtSound* self);
VALA_EXTERN GType ft_alert_sound_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtAlertSound, g_object_unref)
VALA_EXTERN FtAlertSound* ft_alert_sound_new (const gchar* event_id);
VALA_EXTERN FtAlertSound* ft_alert_sound_construct (GType object_type,
                                        const gchar* event_id);
VALA_EXTERN const gchar* ft_alert_sound_get_event_id (FtAlertSound* self);
VALA_EXTERN GType ft_background_sound_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtBackgroundSound, g_object_unref)
VALA_EXTERN void ft_background_sound_fade_in (FtBackgroundSound* self,
                                  gint64 duration);
VALA_EXTERN void ft_background_sound_fade_out (FtBackgroundSound* self,
                                   gint64 duration);
VALA_EXTERN FtBackgroundSound* ft_background_sound_new (void);
VALA_EXTERN FtBackgroundSound* ft_background_sound_construct (GType object_type);
VALA_EXTERN gboolean ft_background_sound_get_loop (FtBackgroundSound* self);
VALA_EXTERN void ft_background_sound_set_loop (FtBackgroundSound* self,
                                   gboolean value);
VALA_EXTERN gchar* ft_state_to_string (FtState self);
VALA_EXTERN FtState ft_state_from_string (const gchar* state);
VALA_EXTERN gchar* ft_state_get_label (FtState self);
VALA_EXTERN gboolean ft_state_is_a (FtState self,
                        FtState other);
VALA_EXTERN gboolean ft_state_is_break (FtState self);
VALA_EXTERN gint64 ft_state_get_default_duration (FtState self);
VALA_EXTERN GType ft_stats_entry_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtStatsEntry, g_object_unref)
VALA_EXTERN FtStatsEntry* ft_stats_entry_copy (FtStatsEntry* self);
VALA_EXTERN FtStatsEntry* ft_stats_entry_new (void);
VALA_EXTERN FtStatsEntry* ft_stats_entry_construct (GType object_type);
VALA_EXTERN gint64 ft_stats_entry_get_id (FtStatsEntry* self);
VALA_EXTERN void ft_stats_entry_set_id (FtStatsEntry* self,
                            gint64 value);
VALA_EXTERN gint64 ft_stats_entry_get_time (FtStatsEntry* self);
VALA_EXTERN void ft_stats_entry_set_time (FtStatsEntry* self,
                              gint64 value);
VALA_EXTERN const gchar* ft_stats_entry_get_date (FtStatsEntry* self);
VALA_EXTERN void ft_stats_entry_set_date (FtStatsEntry* self,
                              const gchar* value);
VALA_EXTERN gint64 ft_stats_entry_get_offset (FtStatsEntry* self);
VALA_EXTERN void ft_stats_entry_set_offset (FtStatsEntry* self,
                                gint64 value);
VALA_EXTERN gint64 ft_stats_entry_get_duration (FtStatsEntry* self);
VALA_EXTERN void ft_stats_entry_set_duration (FtStatsEntry* self,
                                  gint64 value);
VALA_EXTERN const gchar* ft_stats_entry_get_category (FtStatsEntry* self);
VALA_EXTERN void ft_stats_entry_set_category (FtStatsEntry* self,
                                  const gchar* value);
VALA_EXTERN gint64 ft_stats_entry_get_source_id (FtStatsEntry* self);
VALA_EXTERN void ft_stats_entry_set_source_id (FtStatsEntry* self,
                                   gint64 value);
VALA_EXTERN GType ft_aggregated_stats_entry_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtAggregatedStatsEntry, g_object_unref)
VALA_EXTERN FtAggregatedStatsEntry* ft_aggregated_stats_entry_new (void);
VALA_EXTERN FtAggregatedStatsEntry* ft_aggregated_stats_entry_construct (GType object_type);
VALA_EXTERN gint64 ft_aggregated_stats_entry_get_id (FtAggregatedStatsEntry* self);
VALA_EXTERN void ft_aggregated_stats_entry_set_id (FtAggregatedStatsEntry* self,
                                       gint64 value);
VALA_EXTERN const gchar* ft_aggregated_stats_entry_get_date (FtAggregatedStatsEntry* self);
VALA_EXTERN void ft_aggregated_stats_entry_set_date (FtAggregatedStatsEntry* self,
                                         const gchar* value);
VALA_EXTERN const gchar* ft_aggregated_stats_entry_get_category (FtAggregatedStatsEntry* self);
VALA_EXTERN void ft_aggregated_stats_entry_set_category (FtAggregatedStatsEntry* self,
                                             const gchar* value);
VALA_EXTERN gint64 ft_aggregated_stats_entry_get_duration (FtAggregatedStatsEntry* self);
VALA_EXTERN void ft_aggregated_stats_entry_set_duration (FtAggregatedStatsEntry* self,
                                             gint64 value);
VALA_EXTERN gint64 ft_aggregated_stats_entry_get_count (FtAggregatedStatsEntry* self);
VALA_EXTERN void ft_aggregated_stats_entry_set_count (FtAggregatedStatsEntry* self,
                                          gint64 value);
VALA_EXTERN GType ft_stats_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtStatsManager, g_object_unref)
VALA_EXTERN FtStatsManager* ft_stats_manager_new (void);
VALA_EXTERN FtStatsManager* ft_stats_manager_construct (GType object_type);
VALA_EXTERN void ft_stats_manager_track (FtStatsManager* self,
                             const gchar* category,
                             gint64 timestamp,
                             gint64 duration,
                             gint64 source_id);
VALA_EXTERN void ft_stats_manager_track_time_block (FtStatsManager* self,
                                        FtTimeBlock* time_block);
VALA_EXTERN void ft_stats_manager_track_gap (FtStatsManager* self,
                                 FtGap* gap);
VALA_EXTERN void ft_stats_manager_flush (FtStatsManager* self,
                             GAsyncReadyCallback _callback_,
                             gpointer _user_data_);
VALA_EXTERN void ft_stats_manager_flush_finish (FtStatsManager* self,
                                    GAsyncResult* _res_);
VALA_EXTERN GDateTime* ft_stats_manager_get_midnight (FtStatsManager* self,
                                          GDate* date);
VALA_EXTERN void ft_stats_manager_get_today (FtStatsManager* self,
                                 GDate* result);
VALA_EXTERN FtSessionManager* ft_stats_manager_get_session_manager (FtStatsManager* self);
VALA_EXTERN gchar* ft_time_block_status_to_string (FtTimeBlockStatus self);
VALA_EXTERN FtTimeBlockStatus ft_time_block_status_from_string (const gchar* status);
VALA_EXTERN GType ft_time_block_meta_get_type (void) G_GNUC_CONST ;
VALA_EXTERN FtTimeBlockMeta* ft_time_block_meta_dup (const FtTimeBlockMeta* self);
VALA_EXTERN void ft_time_block_meta_free (FtTimeBlockMeta* self);
VALA_EXTERN gboolean ft_schedulable_has_started (FtSchedulable* self,
                                     gint64 timestamp);
VALA_EXTERN gboolean ft_schedulable_has_ended (FtSchedulable* self,
                                   gint64 timestamp);
VALA_EXTERN gint ft_schedulable_compare (FtSchedulable* a,
                             FtSchedulable* b);
VALA_EXTERN void ft_schedulable_set_time_range (FtSchedulable* self,
                                    gint64 start_time,
                                    gint64 end_time);
VALA_EXTERN void ft_schedulable_move_by (FtSchedulable* self,
                             gint64 offset);
VALA_EXTERN void ft_schedulable_move_to (FtSchedulable* self,
                             gint64 start_time);
VALA_EXTERN gint64 ft_schedulable_get_start_time (FtSchedulable* self);
VALA_EXTERN void ft_schedulable_set_start_time (FtSchedulable* self,
                                    gint64 value);
VALA_EXTERN gint64 ft_schedulable_get_end_time (FtSchedulable* self);
VALA_EXTERN void ft_schedulable_set_end_time (FtSchedulable* self,
                                  gint64 value);
VALA_EXTERN gint64 ft_schedulable_get_duration (FtSchedulable* self);
VALA_EXTERN void ft_schedulable_set_duration (FtSchedulable* self,
                                  gint64 value);
VALA_EXTERN GType ft_time_block_entry_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtTimeBlockEntry, g_object_unref)
VALA_EXTERN FtTimeBlock* ft_time_block_new (FtState state);
VALA_EXTERN FtTimeBlock* ft_time_block_construct (GType object_type,
                                      FtState state);
VALA_EXTERN FtTimeBlock* ft_time_block_new_with_start_time (gint64 start_time,
                                                FtState state);
VALA_EXTERN FtTimeBlock* ft_time_block_construct_with_start_time (GType object_type,
                                                      gint64 start_time,
                                                      FtState state);
VALA_EXTERN void ft_time_block_freeze_changed (FtTimeBlock* self);
VALA_EXTERN void ft_time_block_thaw_changed (FtTimeBlock* self);
VALA_EXTERN gint64 ft_time_block_calculate_elapsed (FtTimeBlock* self,
                                        gint64 timestamp);
VALA_EXTERN gint64 ft_time_block_calculate_remaining (FtTimeBlock* self,
                                          gint64 timestamp);
VALA_EXTERN gdouble ft_time_block_calculate_progress (FtTimeBlock* self,
                                          gint64 timestamp);
VALA_EXTERN void ft_time_block_add_gap (FtTimeBlock* self,
                            FtGap* gap);
VALA_EXTERN void ft_time_block_remove_gap (FtTimeBlock* self,
                               FtGap* gap);
VALA_EXTERN FtGap* ft_time_block_get_last_gap (FtTimeBlock* self);
VALA_EXTERN FtGap* ft_time_block_get_nth_gap (FtTimeBlock* self,
                                  guint index);
VALA_EXTERN void ft_time_block_foreach_gap (FtTimeBlock* self,
                                GFunc func,
                                gpointer func_target);
VALA_EXTERN void ft_time_block_normalize_gaps (FtTimeBlock* self);
VALA_EXTERN void ft_time_block_get_meta (FtTimeBlock* self,
                             FtTimeBlockMeta* result);
VALA_EXTERN void ft_time_block_set_meta (FtTimeBlock* self,
                             FtTimeBlockMeta* meta);
VALA_EXTERN FtTimeBlockStatus ft_time_block_get_status (FtTimeBlock* self);
VALA_EXTERN void ft_time_block_set_status (FtTimeBlock* self,
                               FtTimeBlockStatus status);
VALA_EXTERN gint64 ft_time_block_get_intended_duration (FtTimeBlock* self);
VALA_EXTERN void ft_time_block_set_intended_duration (FtTimeBlock* self,
                                          gint64 intended_duration);
VALA_EXTERN gdouble ft_time_block_get_weight (FtTimeBlock* self);
VALA_EXTERN void ft_time_block_set_weight (FtTimeBlock* self,
                               gdouble weight);
VALA_EXTERN gint64 ft_time_block_get_completion_time (FtTimeBlock* self);
VALA_EXTERN void ft_time_block_set_completion_time (FtTimeBlock* self,
                                        gint64 completion_time);
VALA_EXTERN FtState ft_time_block_get_state (FtTimeBlock* self);
VALA_EXTERN FtSession* ft_time_block_get_session (FtTimeBlock* self);
VALA_EXTERN void ft_time_block_set_session (FtTimeBlock* self,
                                FtSession* value);
VALA_EXTERN FtTimeBlockEntry* ft_time_block_entry_new (void);
VALA_EXTERN FtTimeBlockEntry* ft_time_block_entry_construct (GType object_type);
VALA_EXTERN gint64 ft_time_block_entry_get_id (FtTimeBlockEntry* self);
VALA_EXTERN void ft_time_block_entry_set_id (FtTimeBlockEntry* self,
                                 gint64 value);
VALA_EXTERN gint64 ft_time_block_entry_get_session_id (FtTimeBlockEntry* self);
VALA_EXTERN void ft_time_block_entry_set_session_id (FtTimeBlockEntry* self,
                                         gint64 value);
VALA_EXTERN gint64 ft_time_block_entry_get_start_time (FtTimeBlockEntry* self);
VALA_EXTERN void ft_time_block_entry_set_start_time (FtTimeBlockEntry* self,
                                         gint64 value);
VALA_EXTERN gint64 ft_time_block_entry_get_end_time (FtTimeBlockEntry* self);
VALA_EXTERN void ft_time_block_entry_set_end_time (FtTimeBlockEntry* self,
                                       gint64 value);
VALA_EXTERN const gchar* ft_time_block_entry_get_state (FtTimeBlockEntry* self);
VALA_EXTERN void ft_time_block_entry_set_state (FtTimeBlockEntry* self,
                                    const gchar* value);
VALA_EXTERN const gchar* ft_time_block_entry_get_status (FtTimeBlockEntry* self);
VALA_EXTERN void ft_time_block_entry_set_status (FtTimeBlockEntry* self,
                                     const gchar* value);
VALA_EXTERN gint64 ft_time_block_entry_get_intended_duration (FtTimeBlockEntry* self);
VALA_EXTERN void ft_time_block_entry_set_intended_duration (FtTimeBlockEntry* self,
                                                gint64 value);
VALA_EXTERN void ft_timer_state_init (FtTimerState *self);
VALA_EXTERN void ft_timer_state_copy (FtTimerState *self,
                          FtTimerState* result);
VALA_EXTERN gboolean ft_timer_state_equals (FtTimerState *self,
                                const FtTimerState* other);
VALA_EXTERN gboolean ft_timer_state_is_valid (FtTimerState *self);
VALA_EXTERN gboolean ft_timer_state_is_started (FtTimerState *self);
VALA_EXTERN gboolean ft_timer_state_is_running (FtTimerState *self);
VALA_EXTERN gboolean ft_timer_state_is_paused (FtTimerState *self);
VALA_EXTERN gboolean ft_timer_state_is_finished (FtTimerState *self);
VALA_EXTERN gint64 ft_timer_state_calculate_elapsed (FtTimerState *self,
                                         gint64 timestamp);
VALA_EXTERN gint64 ft_timer_state_calculate_remaining (FtTimerState *self,
                                           gint64 timestamp);
VALA_EXTERN GVariant* ft_timer_state_to_variant (FtTimerState *self);
VALA_EXTERN gchar* ft_timer_state_to_representation (FtTimerState *self);
VALA_EXTERN FtTimer* ft_timer_new (gint64 duration,
                       void* user_data);
VALA_EXTERN FtTimer* ft_timer_construct (GType object_type,
                             gint64 duration,
                             void* user_data);
VALA_EXTERN FtTimer* ft_timer_new_with_state (const FtTimerState* state);
VALA_EXTERN FtTimer* ft_timer_construct_with_state (GType object_type,
                                        const FtTimerState* state);
VALA_EXTERN void ft_timer_set_state_full (FtTimer* self,
                              const FtTimerState* state,
                              gint64 timestamp);
VALA_EXTERN void ft_timer_set_duration_full (FtTimer* self,
                                 gint64 duration,
                                 gint64 timestamp);
VALA_EXTERN void ft_timer_set_default (FtTimer* timer);
VALA_EXTERN FtTimer* ft_timer_get_default (void);
VALA_EXTERN gboolean ft_timer_is_default (FtTimer* self);
VALA_EXTERN gboolean ft_timer_is_running (FtTimer* self);
VALA_EXTERN gboolean ft_timer_is_started (FtTimer* self);
VALA_EXTERN gboolean ft_timer_is_paused (FtTimer* self);
VALA_EXTERN gboolean ft_timer_is_finished (FtTimer* self);
VALA_EXTERN void ft_timer_reset (FtTimer* self,
                     gint64 duration,
                     void* user_data,
                     gint64 timestamp);
VALA_EXTERN void ft_timer_start (FtTimer* self,
                     gint64 timestamp);
VALA_EXTERN void ft_timer_pause (FtTimer* self,
                     gint64 timestamp);
VALA_EXTERN void ft_timer_resume (FtTimer* self,
                      gint64 timestamp);
VALA_EXTERN void ft_timer_rewind (FtTimer* self,
                      gint64 interval,
                      gint64 timestamp);
VALA_EXTERN void ft_timer_extend (FtTimer* self,
                      gint64 interval,
                      gint64 timestamp);
VALA_EXTERN void ft_timer_finish (FtTimer* self,
                      gint64 timestamp);
VALA_EXTERN void ft_timer_synchronize (FtTimer* self,
                           gint64 monotonic_time,
                           gint64 real_time);
VALA_EXTERN gint64 ft_timer_get_current_time (FtTimer* self,
                                  gint64 monotonic_time);
VALA_EXTERN gint64 ft_timer_get_last_state_changed_time (FtTimer* self);
VALA_EXTERN gint64 ft_timer_get_last_tick_time (FtTimer* self);
VALA_EXTERN gint64 ft_timer_calculate_elapsed (FtTimer* self,
                                   gint64 timestamp);
VALA_EXTERN gint64 ft_timer_calculate_remaining (FtTimer* self,
                                     gint64 timestamp);
VALA_EXTERN gdouble ft_timer_calculate_progress (FtTimer* self,
                                     gint64 timestamp);
VALA_EXTERN gint64 ft_timer_calculate_finish_time (FtTimer* self);
VALA_EXTERN void ft_timer_run (FtTimer* self,
                   GCancellable* cancellable);
VALA_EXTERN void ft_timer_iterate (FtTimer* self);
VALA_EXTERN void ft_timer_get_state (FtTimer* self,
                         FtTimerState * result);
VALA_EXTERN void ft_timer_set_state (FtTimer* self,
                         FtTimerState * value);
VALA_EXTERN gint64 ft_timer_get_duration (FtTimer* self);
VALA_EXTERN void ft_timer_set_duration (FtTimer* self,
                            gint64 value);
VALA_EXTERN gint64 ft_timer_get_started_time (FtTimer* self);
VALA_EXTERN gint64 ft_timer_get_offset (FtTimer* self);
VALA_EXTERN void* ft_timer_get_user_data (FtTimer* self);
VALA_EXTERN void ft_timer_set_user_data (FtTimer* self,
                             void* value);
VALA_EXTERN GType ft_timer_action_group_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtTimerActionGroup, g_object_unref)
VALA_EXTERN FtTimerActionGroup* ft_timer_action_group_new (void);
VALA_EXTERN FtTimerActionGroup* ft_timer_action_group_construct (GType object_type);
VALA_EXTERN FtTimerActionGroup* ft_timer_action_group_new_with_timer (FtTimer* timer);
VALA_EXTERN FtTimerActionGroup* ft_timer_action_group_construct_with_timer (GType object_type,
                                                                FtTimer* timer);
VALA_EXTERN FtTimer* ft_timer_action_group_get_timer (FtTimerActionGroup* self);
VALA_EXTERN gint64 ft_interval_from_value (gint value,
                               gint64 unit);
VALA_EXTERN gint64 ft_interval_from_seconds (gdouble seconds);
VALA_EXTERN gint64 ft_interval_add (gint64 interval,
                        gint64 other);
VALA_EXTERN gint64 ft_interval_subtract (gint64 interval,
                             gint64 other);
VALA_EXTERN gint64 ft_interval_round (gint64 interval,
                          gint64 unit);
VALA_EXTERN gint64 ft_interval_round_seconds (gint64 interval);
VALA_EXTERN gdouble ft_interval_to_seconds (gint64 interval);
VALA_EXTERN gchar* ft_interval_format_short (gint64 interval,
                                 gint64 unit);
VALA_EXTERN gint64 ft_timestamp_from_now (void);
VALA_EXTERN gint64 ft_timestamp_from_seconds (gdouble seconds);
VALA_EXTERN gint64 ft_timestamp_from_seconds_uint (guint seconds);
VALA_EXTERN gint64 ft_timestamp_from_milliseconds_uint (guint milliseconds);
VALA_EXTERN gint64 ft_timestamp_from_iso8601 (const gchar* text);
VALA_EXTERN gint64 ft_timestamp_from_datetime (GDateTime* datetime);
VALA_EXTERN gdouble ft_timestamp_to_seconds (gint64 timestamp);
VALA_EXTERN guint ft_timestamp_to_seconds_uint (gint64 timestamp);
VALA_EXTERN guint ft_timestamp_to_seconds_uint32 (gint64 timestamp);
VALA_EXTERN gdouble ft_timestamp_to_milliseconds (gint64 timestamp);
VALA_EXTERN guint ft_timestamp_to_milliseconds_uint (gint64 timestamp);
VALA_EXTERN GDateTime* ft_timestamp_to_datetime (gint64 timestamp,
                                     GTimeZone* timezone);
VALA_EXTERN gchar* ft_timestamp_to_iso8601 (gint64 timestamp);
VALA_EXTERN gboolean ft_timestamp_is_defined (gint64 timestamp);
VALA_EXTERN gboolean ft_timestamp_is_undefined (gint64 timestamp);
VALA_EXTERN gint64 ft_timestamp_add_interval (gint64 timestamp,
                                  gint64 interval);
VALA_EXTERN gint64 ft_timestamp_subtract (gint64 timestamp,
                              gint64 other);
VALA_EXTERN gint64 ft_timestamp_subtract_interval (gint64 timestamp,
                                       gint64 interval);
VALA_EXTERN gint64 ft_timestamp_round (gint64 timestamp,
                           gint64 unit);
VALA_EXTERN gint64 ft_timestamp_round_seconds (gint64 timestamp);
VALA_EXTERN gint64 ft_timestamp_freeze (void);
VALA_EXTERN void ft_timestamp_freeze_to (gint64 timestamp);
VALA_EXTERN void ft_timestamp_thaw (void);
VALA_EXTERN gboolean ft_timestamp_is_frozen (void);
VALA_EXTERN gint64 ft_timestamp_peek (void);
VALA_EXTERN gint64 ft_timestamp_advance (gint64 interval);
VALA_EXTERN void ft_timestamp_set_auto_advance (gint64 interval);
VALA_EXTERN GType ft_timezone_history_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtTimezoneHistory, g_object_unref)
VALA_EXTERN void ft_timezone_history_insert (FtTimezoneHistory* self,
                                 gint64 timestamp,
                                 GTimeZone* timezone);
VALA_EXTERN GTimeZone* ft_timezone_history_search (FtTimezoneHistory* self,
                                       gint64 timestamp);
VALA_EXTERN GTimeZone* ft_timezone_history_search_by_date (FtTimezoneHistory* self,
                                               GDate* date,
                                               gint64 offset);
VALA_EXTERN void ft_timezone_history_scan (FtTimezoneHistory* self,
                               gint64 start_time,
                               gint64 end_time,
                               FtTimezoneScanFunc func,
                               gpointer func_target);
VALA_EXTERN void ft_timezone_history_clear_cache (FtTimezoneHistory* self);
VALA_EXTERN FtTimezoneHistory* ft_timezone_history_new (void);
VALA_EXTERN FtTimezoneHistory* ft_timezone_history_construct (GType object_type);
VALA_EXTERN GType ft_time_zone_monitor_provider_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtTimeZoneMonitorProvider, g_object_unref)
VALA_EXTERN const gchar* ft_time_zone_monitor_provider_get_identifier (FtTimeZoneMonitorProvider* self);
VALA_EXTERN GType ft_time_zone_monitor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtTimeZoneMonitor, g_object_unref)
VALA_EXTERN FtTimeZoneMonitor* ft_time_zone_monitor_new (void);
VALA_EXTERN FtTimeZoneMonitor* ft_time_zone_monitor_construct (GType object_type);
VALA_EXTERN GTimeZone* ft_time_zone_monitor_get_timezone (FtTimeZoneMonitor* self);
VALA_EXTERN void ft_ensure_timestamp (gint64* timestamp);
VALA_EXTERN gchar* ft_ensure_string (const gchar* str);
VALA_EXTERN gdouble ft_round_seconds (gdouble seconds);
VALA_EXTERN gchar* ft_format_time (guint seconds);
VALA_EXTERN gdouble ft_lerp (gdouble value_from,
                 gdouble value_to,
                 gdouble t);
VALA_EXTERN gfloat ft_lerpf (gfloat value_from,
                 gfloat value_to,
                 gfloat t);
VALA_EXTERN gboolean ft_is_flatpak (void);
VALA_EXTERN gboolean ft_is_devel (void);
VALA_EXTERN gchar* ft_get_desktop_name (void);
VALA_EXTERN gchar* ft_to_camel_case (const gchar* name);
VALA_EXTERN gchar* ft_from_camel_case (const gchar* name);
VALA_EXTERN void ft_foreach_extension (PeasExtensionSet* extension_set,
                           FtExtensionSetForeachFunc func,
                           gpointer func_target);
VALA_EXTERN void ft_async_callback_free (FtAsyncCallback * self);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtAsyncCallback, ft_async_callback_free)
VALA_EXTERN FtAsyncCallback* ft_async_callback_new (GSourceFunc func,
                                        gpointer func_target,
                                        GDestroyNotify func_target_destroy_notify);
VALA_EXTERN gpointer ft_async_queue_ref (gpointer instance);
VALA_EXTERN void ft_async_queue_unref (gpointer instance);
VALA_EXTERN GParamSpec* ft_param_spec_async_queue (const gchar* name,
                                       const gchar* nick,
                                       const gchar* blurb,
                                       GType object_type,
                                       GParamFlags flags);
VALA_EXTERN void ft_value_set_async_queue (GValue* value,
                               gpointer v_object);
VALA_EXTERN void ft_value_take_async_queue (GValue* value,
                                gpointer v_object);
VALA_EXTERN gpointer ft_value_get_async_queue (const GValue* value);
VALA_EXTERN GType ft_async_queue_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtAsyncQueue, ft_async_queue_unref)
VALA_EXTERN FtAsyncQueue* ft_async_queue_new (GType t_type,
                                  GBoxedCopyFunc t_dup_func,
                                  GDestroyNotify t_destroy_func);
VALA_EXTERN FtAsyncQueue* ft_async_queue_construct (GType object_type,
                                        GType t_type,
                                        GBoxedCopyFunc t_dup_func,
                                        GDestroyNotify t_destroy_func);
VALA_EXTERN void ft_async_queue_push (FtAsyncQueue* self,
                          gpointer item);
VALA_EXTERN gpointer ft_async_queue_pop (FtAsyncQueue* self);
VALA_EXTERN guint ft_async_queue_length (FtAsyncQueue* self);
VALA_EXTERN void ft_async_queue_wait (FtAsyncQueue* self,
                          GAsyncReadyCallback _callback_,
                          gpointer _user_data_);
VALA_EXTERN void ft_async_queue_wait_finish (FtAsyncQueue* self,
                                 GAsyncResult* _res_);
VALA_EXTERN gpointer ft_variable_spec_ref (gpointer instance);
VALA_EXTERN void ft_variable_spec_unref (gpointer instance);
VALA_EXTERN GParamSpec* ft_param_spec_variable_spec (const gchar* name,
                                         const gchar* nick,
                                         const gchar* blurb,
                                         GType object_type,
                                         GParamFlags flags);
VALA_EXTERN void ft_value_set_variable_spec (GValue* value,
                                 gpointer v_object);
VALA_EXTERN void ft_value_take_variable_spec (GValue* value,
                                  gpointer v_object);
VALA_EXTERN gpointer ft_value_get_variable_spec (const GValue* value);
VALA_EXTERN GType ft_variable_spec_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FtVariableSpec, ft_variable_spec_unref)
VALA_EXTERN FtVariableSpec* ft_variable_spec_new (const gchar* name,
                                      const gchar* description,
                                      GType value_type,
                                      FtEvaluateFunc evaluate_func);
VALA_EXTERN FtVariableSpec* ft_variable_spec_construct (GType object_type,
                                            const gchar* name,
                                            const gchar* description,
                                            GType value_type,
                                            FtEvaluateFunc evaluate_func);
VALA_EXTERN FtValue* ft_variable_spec_evaluate (FtVariableSpec* self,
                                    FtContext* context);
VALA_EXTERN void ft_install_variable (FtVariableSpec* variable_spec);
VALA_EXTERN FtVariableSpec* ft_find_variable (const gchar* variable_name);
VALA_EXTERN FtVariableSpec** ft_list_variables (gint* result_length1);
VALA_EXTERN gboolean ft_find_variable_format (const gchar* variable_name,
                                  const gchar* variable_format);

G_END_DECLS

#endif
