#ifndef MAIL_THREAD_H
#define MAIL_THREAD_H
struct mailbox;
struct mail_search_args;
struct mail_thread_context;
enum mail_thread_type {
};
struct mail_thread_child_node {
/* Node's index in mail hash transaction */
/* UID or sequence */
/* Timestamp node was sorted with (depends on thread algorithm) */
};
/* Convert thread type string to enum. Returns TRUE if ok, FALSE if type is
unknown. */
/* Return thread type as string. */
/* Build thread from given search arguments. args=NULL searches everything. */
/* Iterate through thread tree. If write_seqs=TRUE, sequences are returned in
mail_thread_child_node.uid instead of UIDs. */
struct mail_thread_iterate_context *
/* If child_iter_r is not NULL, it's set to contain another iterator if the
returned node contains children. The returned iterator must be freed
explicitly. */
const struct mail_thread_child_node *
struct mail_thread_iterate_context **child_iter_r);
/* Returns number of nodes in the current iterator. */
unsigned int
/* Free the iterator. Iterators don't reference other iterators, so it doesn't
matter in which order they're freed. */
#endif