@namespace("chat.1")

protocol chatUi {
  void chatAttachmentUploadOutboxID(int sessionID, OutboxID outboxID); 
  void chatAttachmentUploadStart(int sessionID, AssetMetadata metadata, MessageID placeholderMsgID) oneway; 
  void chatAttachmentUploadProgress(int sessionID, int bytesComplete, int bytesTotal) oneway;     
  void chatAttachmentUploadDone(int sessionID); 

  void chatAttachmentPreviewUploadStart(int sessionID, AssetMetadata metadata) oneway;  
  void chatAttachmentPreviewUploadDone(int sessionID);  

  void chatAttachmentDownloadStart(int sessionID); 
  void chatAttachmentDownloadProgress(int sessionID, int bytesComplete, int bytesTotal) oneway;     
  void chatAttachmentDownloadDone(int sessionID);  

  void chatInboxUnverified(int sessionID, GetInboxLocalRes inbox); 
  void chatInboxConversation(int sessionID, ConversationLocal conv);
  void chatInboxFailed(int sessionID, ConversationID convID, ConversationErrorLocal error);

  void chatThreadCached(int sessionID, union { null, ThreadView } thread) oneway;
  void chatThreadFull(int sessionID, ThreadView thread) oneway;
}
