+ long sendRemoteDeleteMessage(
+ long targetSentTimestamp, String recipient
+ ) throws Error.Failure, Error.InvalidNumber;
+
+ long sendRemoteDeleteMessage(
+ long targetSentTimestamp, List<String> recipients
+ ) throws Error.Failure, Error.InvalidNumber;
+
+ long sendGroupRemoteDeleteMessage(
+ long targetSentTimestamp, byte[] groupId
+ ) throws Error.Failure, Error.GroupNotFound, Error.InvalidGroupId;
+
+ long sendMessageReaction(
+ String emoji, boolean remove, String targetAuthor, long targetSentTimestamp, String recipient
+ ) throws Error.InvalidNumber, Error.Failure;
+
+ long sendMessageReaction(
+ String emoji, boolean remove, String targetAuthor, long targetSentTimestamp, List<String> recipients
+ ) throws Error.InvalidNumber, Error.Failure;
+
+ long sendNoteToSelfMessage(
+ String message, List<String> attachments
+ ) throws Error.AttachmentInvalid, Error.Failure;
+
+ void sendEndSessionMessage(List<String> recipients) throws Error.Failure, Error.InvalidNumber, Error.UntrustedIdentity;
+
+ long sendGroupMessage(
+ String message, List<String> attachments, byte[] groupId
+ ) throws Error.GroupNotFound, Error.Failure, Error.AttachmentInvalid, Error.InvalidGroupId;
+
+ long sendGroupMessageReaction(
+ String emoji, boolean remove, String targetAuthor, long targetSentTimestamp, byte[] groupId
+ ) throws Error.GroupNotFound, Error.Failure, Error.InvalidNumber, Error.InvalidGroupId;
+
+ String getContactName(String number) throws Error.InvalidNumber;
+
+ void setContactName(String number, String name) throws Error.InvalidNumber;
+
+ void setContactBlocked(String number, boolean blocked) throws Error.InvalidNumber;
+
+ void setGroupBlocked(byte[] groupId, boolean blocked) throws Error.GroupNotFound, Error.InvalidGroupId;
+
+ List<byte[]> getGroupIds();
+
+ String getGroupName(byte[] groupId) throws Error.InvalidGroupId;
+
+ List<String> getGroupMembers(byte[] groupId) throws Error.InvalidGroupId;
+
+ byte[] updateGroup(
+ byte[] groupId, String name, List<String> members, String avatar
+ ) throws Error.AttachmentInvalid, Error.Failure, Error.InvalidNumber, Error.GroupNotFound, Error.InvalidGroupId;
+
+ boolean isRegistered();
+
+ void updateProfile(
+ String name, String about, String aboutEmoji, String avatarPath, boolean removeAvatar
+ ) throws Error.Failure;
+
+ String version();
+
+ List<String> listNumbers();
+
+ List<String> getContactNumber(final String name) throws Error.Failure;
+
+ void quitGroup(final byte[] groupId) throws Error.GroupNotFound, Error.Failure, Error.InvalidGroupId;
+
+ boolean isContactBlocked(final String number) throws Error.InvalidNumber;
+
+ boolean isGroupBlocked(final byte[] groupId) throws Error.InvalidGroupId;
+
+ boolean isMember(final byte[] groupId) throws Error.InvalidGroupId;
+
+ byte[] joinGroup(final String groupLink) throws Error.Failure;