+ * Add an element to the given set.
+ * After the element has been added (in the sense of being
+ * transmitted to the set service), @a cont will be called.
+ * Calls to #GNUNET_SET_add_element can be queued
+ *
+ * @param set set to add element to
+ * @param element element to add to the set
+ * @param cont continuation called after the element has been added
+ * @param cont_cls closure for @a cont
+ * @return #GNUNET_OK on success, #GNUNET_SYSERR if the
+ * set is invalid (e.g. the set service crashed)
+ */
+int
+GNUNET_SET_add_element (struct GNUNET_SET_Handle *set,
+ const struct GNUNET_SET_Element *element,
+ GNUNET_SET_Continuation cont,
+ void *cont_cls);
+
+
+/**
+ * Remove an element to the given set.
+ * After the element has been removed (in the sense of the
+ * request being transmitted to the set service), cont will be called.
+ * Calls to remove_element can be queued
+ *
+ * @param set set to remove element from
+ * @param element element to remove from the set
+ * @param cont continuation called after the element has been removed
+ * @param cont_cls closure for @a cont
+ * @return #GNUNET_OK on success, #GNUNET_SYSERR if the
+ * set is invalid (e.g. the set service crashed)
+ */
+int
+GNUNET_SET_remove_element (struct GNUNET_SET_Handle *set,
+ const struct GNUNET_SET_Element *element,
+ GNUNET_SET_Continuation cont,
+ void *cont_cls);
+
+
+void
+GNUNET_SET_copy_lazy (struct GNUNET_SET_Handle *set,
+ GNUNET_SET_CopyReadyCallback cb,
+ void *cls);
+
+
+/**
+ * Destroy the set handle, and free all associated resources.
+ * Iterations must have completed (or be explicitly canceled)
+ * before destroying the corresponding set. Operations may
+ * still be pending when a set is destroyed.
+ *
+ * @param set set to destroy
+ */
+void
+GNUNET_SET_destroy (struct GNUNET_SET_Handle *set);
+
+
+/**
+ * Prepare a set operation to be evaluated with another peer.
+ * The evaluation will not start until the client provides
+ * a local set with GNUNET_SET_commit().