namespace TinyMail { public class MimePart { } public class Message: MimePart { } private class MessageIterator: Gee.Iterator { } public interface MessageContainer: Gee.Iterable { } public abstract class SearchResult: MessageContainer { } public abstract class Folder: MessageContainer, Gee.Collection { } public interface MessageContainerStore { } public interface Account { } public class Query { public ArrayList InFolders; public string Subject; public string From; public string To; public string Cc; public string Bcc; public time_t Sent; public time_t Received; } public interface StoreAccount: MessageContainerStore { public SearchResult Find (Query query) { } } public interface TransportAccount { } public interface SendQueue { } }