+notmuch_thread_results_has_more (notmuch_thread_results_t *results);
+
+/* Get the current result from 'results' as a notmuch_thread_t.
+ *
+ * Note: The returned thread belongs to 'results' and has a lifetime
+ * identical to it (and the query to which it belongs).
+ *
+ * See the documentation of notmuch_query_search_threads for example
+ * code showing how to iterate over a notmuch_thread_results_t object.
+ *
+ * If an out-of-memory situation occurs, this function will return
+ * NULL.
+ */
+notmuch_thread_t *
+notmuch_thread_results_get (notmuch_thread_results_t *results);
+
+/* Advance the 'results' iterator to the next result.
+ *
+ * See the documentation of notmuch_query_search_threads for example
+ * code showing how to iterate over a notmuch_thread_results_t object.
+ */
+void
+notmuch_thread_results_advance (notmuch_thread_results_t *results);
+
+/* Destroy a notmuch_thread_results_t object.
+ *
+ * It's not strictly necessary to call this function. All memory from
+ * the notmuch_thread_results_t object will be reclaimed when the
+ * containg query object is destroyed.
+ */
+void
+notmuch_thread_results_destroy (notmuch_thread_results_t *results);
+
+/* Get the thread ID of 'thread'.
+ *
+ * The returned string belongs to 'thread' and as such, should not be
+ * modified by the caller and will only be valid for as long as the
+ * thread is valid, (which is until notmuch_thread_destroy or until
+ * the query from which it derived is destroyed).
+ */
+const char *
+notmuch_thread_get_thread_id (notmuch_thread_t *thread);
+
+/* Destroy a notmuch_thread_t object. */
+void
+notmuch_thread_destroy (notmuch_thread_t *thread);
+
+/* Does the given notmuch_message_results_t object contain any more
+ * results.
+ *
+ * When this function returns TRUE, notmuch_message_results_get will
+ * return a valid object. Whereas when this function returns FALSE,
+ * notmuch_message_results_get will return NULL.
+ *
+ * See the documentation of notmuch_query_search_messages for example
+ * code showing how to iterate over a notmuch_message_results_t
+ * object.
+ */
+notmuch_bool_t
+notmuch_message_results_has_more (notmuch_message_results_t *results);