+cdef extern from "libpurple/blist.h":
+ ctypedef struct PurpleBuddyList
+ ctypedef struct PurpleBlistUiOps
+ ctypedef struct PurpleBlistNode
+ ctypedef struct PurpleChat
+ ctypedef struct PurpleGroup
+ ctypedef struct PurpleContact
+ ctypedef struct PurpleBuddy
+
+ ctypedef enum PurpleBlistNodeType:
+ PURPLE_BLIST_GROUP_NODE
+ PURPLE_BLIST_CONTACT_NODE
+ PURPLE_BLIST_BUDDY_NODE
+ PURPLE_BLIST_CHAT_NODE
+ PURPLE_BLIST_OTHER_NODE
+
+ ctypedef enum PurpleBlistNodeFlags:
+ PURPLE_BLIST_NODE_FLAG_NO_SAVE = 1 << 0
+
+ ctypedef struct PurpleBlistNode:
+ PurpleBlistNodeType type
+ PurpleBlistNode *prev
+ PurpleBlistNode *next
+ PurpleBlistNode *parent
+ PurpleBlistNode *child
+ glib.GHashTable *settings
+ void *ui_data
+ PurpleBlistNodeFlags flags
+