-/**
- * Set a component's private data cleanup function.
- *
- * @param component Component of which to set the private data destruction
- * function
- * @param data Component private data clean-up function
- * @returns One of #bt_component_status values
- */
-extern enum bt_component_status bt_component_set_destroy_cb(
- struct bt_component *component,
- bt_component_destroy_cb destroy);
-
-/** bt_component_souce */
-/**
- * Iterator initialization function type.
- *
- * A notification iterator's private data, deinitialization, next, and get
- * callbacks must be set by this function.
- *
- * @param source Source component instance
- * @param iterator Notification iterator instance
- */
-typedef enum bt_component_status (*bt_component_source_init_iterator_cb)(
- struct bt_component *, struct bt_notification_iterator *);
-
-/**
- * Set a source component's iterator initialization function.
- *
- * @param source Source component instance
- * @param init_iterator Notification iterator initialization callback
- */
-extern enum bt_component_status
-bt_component_source_set_iterator_init_cb(struct bt_component *source,
- bt_component_source_init_iterator_cb init_iterator);
-
-/** bt_component_sink */
-/**
- * Notification consumption function type.
- *
- * @param sink Sink component instance
- * @returns One of #bt_component_status values
- */
-typedef enum bt_component_status (*bt_component_sink_consume_cb)(
- struct bt_component *);
-
-/**
- * Iterator addition function type.
- *
- * A sink component may choose to refuse the addition of an iterator
- * by not returning BT_COMPONENT_STATUS_OK.
- *
- * @param sink Sink component instance
- * @returns One of #bt_component_status values
- */
-typedef enum bt_component_status (*bt_component_sink_add_iterator_cb)(
- struct bt_component *, struct bt_notification_iterator *);
-
-/**
- * Set a sink component's consumption callback.
- *
- * @param sink Sink component instance
- * @param consume Consumption callback
- * @returns One of #bt_component_status values
- */
-extern enum bt_component_status
-bt_component_sink_set_consume_cb(struct bt_component *sink,
- bt_component_sink_consume_cb consume);
-
-/**
- * Set a sink component's iterator addition callback.
- *
- * @param sink Sink component instance
- * @param add_iterator Iterator addition callback
- * @returns One of #bt_component_status values
- */
-extern enum bt_component_status
-bt_component_sink_set_add_iterator_cb(struct bt_component *sink,
- bt_component_sink_add_iterator_cb add_iterator);
-
-/* Defaults to 1. */
-extern enum bt_component_status
-bt_component_sink_set_minimum_input_count(struct bt_component *sink,
- unsigned int minimum);
-
-/* Defaults to 1. */
-extern enum bt_component_status
-bt_component_sink_set_maximum_input_count(struct bt_component *sink,
- unsigned int maximum);
-
-extern enum bt_component_status
-bt_component_sink_get_input_count(struct bt_component *sink,
- unsigned int *count);
-
-/* May return NULL after an interator has reached its end. */
-extern enum bt_component_status
-bt_component_sink_get_input_iterator(struct bt_component *sink,
- unsigned int input, struct bt_notification_iterator **iterator);
-
-/** bt_component_filter */
-/**
- * Iterator initialization function type.
- *
- * A notification iterator's private data, deinitialization, next, and get
- * callbacks must be set by this function.
- *
- * @param filter Filter component instance
- * @param iterator Notification iterator instance
- */
-typedef enum bt_component_status (*bt_component_filter_init_iterator_cb)(
- struct bt_component *, struct bt_notification_iterator *);
-
-/**
- * Iterator addition function type.
- *
- * A filter component may choose to refuse the addition of an iterator
- * by not returning BT_COMPONENT_STATUS_OK.
- *
- * @param filter Filter component instance
- * @returns One of #bt_component_status values
- */
-typedef enum bt_component_status (*bt_component_filter_add_iterator_cb)(
- struct bt_component *, struct bt_notification_iterator *);
-
-/**
- * Set a filter component's iterator initialization function.
- *
- * @param filter Filter component instance
- * @param init_iterator Notification iterator initialization callback
- */
-extern enum bt_component_status
-bt_component_filter_set_iterator_init_cb(struct bt_component *filter,
- bt_component_filter_init_iterator_cb init_iterator);
-
-/**
- * Set a filter component's iterator addition callback.
- *
- * @param filter Filter component instance
- * @param add_iterator Iterator addition callback
- * @returns One of #bt_component_status values
- */
-extern enum bt_component_status
-bt_component_filter_set_add_iterator_cb(struct bt_component *filter,
- bt_component_filter_add_iterator_cb add_iterator);
-
-/* Defaults to 1. */
-extern enum bt_component_status
-bt_component_filter_set_minimum_input_count(struct bt_component *filter,
- unsigned int minimum);
-
-/* Defaults to 1. */
-extern enum bt_component_status
-bt_component_filter_set_maximum_input_count(struct bt_component *filter,
- unsigned int maximum);
-
-extern enum bt_component_status
-bt_component_filter_get_input_count(struct bt_component *filter,
- unsigned int *count);
-
-/* May return NULL after an interator has reached its end. */
-extern enum bt_component_status
-bt_component_filter_get_input_iterator(struct bt_component *filter,
- unsigned int input, struct bt_notification_iterator **iterator);
-
-/**
- * Create an instance of a component from a component class.
- *
- * @param component_class Component class of which to create an instance
- * @param name Name of the new component instance, optional
- * @param params A dictionary of component parameters
- * @returns Returns a pointer to a new component instance
- */
-extern struct bt_component *bt_component_create(
- struct bt_component_class *component_class, const char *name,
- struct bt_value *params);
-