[Error] enum NativeError { "Initialization", "Database", "Network", }; enum MessageAck { "Received", "Seen", "Sent", }; dictionary MessagePreview { string sender; string text; timestamp date; MessageAck ack; }; dictionary Dialog { string id; string title; MessagePreview? lastMessage; boolean pinned; }; namespace talaria { [Throws=NativeError] void initDatabase(string path); [Throws=NativeError] void initClient(); [Throws=NativeError] boolean needLogin(); [Throws=NativeError] u64 requestLoginCode(string phone); [Throws=NativeError] void signIn(u64 tokenPtr, string code); [Throws=NativeError] sequence getDialogs(); [Throws=NativeError] void sendMessage(string packed, string text); };