+#ifndef E_DEVICEMGR_INTERN_H
+#define E_DEVICEMGR_INTERN_H
+
+typedef Eina_Bool (*E_Devicemgr_Intercept_Hook_Cb) (void *data, int point, void *event);
+typedef struct _E_Devicemgr_Intercept_Hook E_Devicemgr_Intercept_Hook;
+
+typedef enum _E_Devicemgr_Intercept_Hook_Point
+{
+ E_DEVICEMGR_INTERCEPT_HOOK_DETENT,
+ E_DEVICEMGR_INTERCEPT_HOOK_LAST
+} E_Devicemgr_Intercept_Hook_Point;
+
+struct _E_Devicemgr_Intercept_Hook
+{
+ EINA_INLIST;
+ E_Devicemgr_Intercept_Hook_Point hookpoint;
+ E_Devicemgr_Intercept_Hook_Cb func;
+ void *data;
+ unsigned char delete_me : 1;
+};
+
+EINTERN int e_devicemgr_init(void);
+EINTERN int e_devicemgr_shutdown(void);
+
+EINTERN E_Devicemgr_Intercept_Hook *e_devicemgr_intercept_hook_add(E_Devicemgr_Intercept_Hook_Point hookpoint, E_Devicemgr_Intercept_Hook_Cb func, const void *data);
+EINTERN void e_devicemgr_intercept_hook_del(E_Devicemgr_Intercept_Hook *ch);
+EINTERN Eina_Bool e_devicemgr_intercept_hook_call(E_Devicemgr_Intercept_Hook_Point hookpoint, void *event);
+
+EINTERN int e_devicemgr_inputgen_key_event_add(const char *key, Eina_Bool pressed, char *identifier);
+
+EINTERN Eina_Bool e_devicemgr_detent_is_detent(const char *name);
+
+EINTERN Eina_Bool e_devicemgr_block_internal_add(Ecore_Device_Class clas, Eina_Bool all_clas, uint32_t duration, E_Devicemgr_Block_Expire_Cb cb_func, void *cb_data);
+EINTERN Eina_Bool e_devicemgr_block_internal_remove(E_Devicemgr_Block_Expire_Cb cb_func, void *cb_data);
+
+EINTERN Eina_Bool e_devicemgr_keyboard_grab_subtype_is_grabbed(Ecore_Device_Subclass subclas);
+
+#endif