-extern int afb_evt_add_watch(struct afb_evt_listener *listener, struct afb_event event);
-extern int afb_evt_remove_watch(struct afb_evt_listener *listener, struct afb_event event);
+extern struct afb_evtid *afb_evt_evtid_addref(struct afb_evtid *evtid);
+extern struct afb_evtid *afb_evt_evtid_hooked_addref(struct afb_evtid *evtid);
+
+extern void afb_evt_evtid_unref(struct afb_evtid *evtid);
+extern void afb_evt_evtid_hooked_unref(struct afb_evtid *evtid);
+
+extern const char *afb_evt_evtid_fullname(struct afb_evtid *evtid);
+extern int afb_evt_evtid_id(struct afb_evtid *evtid);
+
+extern const char *afb_evt_evtid_name(struct afb_evtid *evtid);
+extern const char *afb_evt_evtid_hooked_name(struct afb_evtid *evtid);
+
+extern int afb_evt_evtid_push(struct afb_evtid *evtid, struct json_object *obj);
+extern int afb_evt_evtid_hooked_push(struct afb_evtid *evtid, struct json_object *obj);
+
+extern int afb_evt_evtid_broadcast(struct afb_evtid *evtid, struct json_object *object);
+extern int afb_evt_evtid_hooked_broadcast(struct afb_evtid *evtid, struct json_object *object);
+
+extern int afb_evt_watch_add_evtid(struct afb_evt_listener *listener, struct afb_evtid *evtid);
+extern int afb_evt_watch_sub_evtid(struct afb_evt_listener *listener, struct afb_evtid *evtid);