+struct bt_notification_iterator;
+struct bt_component;
+struct bt_component_factory;
+
+typedef enum bt_component_status (*bt_plugin_init_func)(
+ struct bt_component_factory *factory);
+typedef void (*bt_plugin_exit_func)(void);
+
+/**
+ * Component private data deallocation function type.
+ *
+ * @param component Component instance
+ */
+typedef void (*bt_component_destroy_cb)(struct bt_component *component);
+
+/**
+ * Component initialization function type.
+ *
+ * A component's private data and required callbacks must be set by this
+ * function.
+ *
+ * @param component Component instance
+ * @returns One of #bt_component_status values
+ */
+typedef enum bt_component_status (*bt_component_init_cb)(
+ struct bt_component *component);
+
+/**
+ * Get a component's private data.
+ *
+ * @param component Component of which to get the private data
+ * @returns Component's private data
+ */
+extern void *bt_component_get_private_data(struct bt_component *component);