text: /*!
   *  \~chinese
   *  @header EMGroupManagerDelegate.h
   *  @abstract 此协议定义了群组相关的回调
   *  @author Hyphenate
   *  @version 3.00
   *
   *  \~english
   *  @header EMGroupManagerDelegate.h
   *  @abstract This protocol defined the callbacks of group
   *  @author Hyphenate
   *  @version 3.00
   */
  
  #import <Foundation/Foundation.h>
  
  /*!
   *  \~chinese 
   *  离开群组的原因
   *
   *  \~english
   *  The reason of leaved the group
   */
  typedef enum{
      EMGroupLeaveReasonBeRemoved = 0,    /*! \~chinese 被移除 \~english Removed by owner */
      EMGroupLeaveReasonUserLeave,        /*! \~chinese 自己主动离开 \~english Self leave */
      EMGroupLeaveReasonDestroyed,        /*! \~chinese 群组销毁 \~english Group has been destroyed */
  }EMGroupLeaveReason;
  
  @class EMGroup;
  
  /*!
   *  \~chinese
   *  群组相关的回调
   *
   *  \~english
   *  Callbacks of group
   */
  @protocol EMGroupManagerDelegate <NSObject>
  
  @optional
  
  /*!
   *  \~chinese
   *  用户A邀请用户B入群,用户B接收到该回调
   *
   *  @param aGroupId    群组ID
   *  @param aInviter    邀请者
   *  @param aMessage    邀请信息
   *
   *  \~english
   *  After user A invites user B into the group, user B will receive this callback
   *
   *  @param aGroupId    The group ID
   *  @param aInviter    Inviter
   *  @param aMessage    Invite message
   */
  - (void)didReceiveGroupInvitation:(NSString *)aGroupId
                            inviter:(NSString *)aInviter
                            message:(NSString *)aMessage;
  
  /*!
   *  \~chinese
   *  用户B同意用户A的入群邀请后，用户A接收到该回调
   *
   *  @param aGroup    群组实例
   *  @param aInvitee  被邀请者
   *
   *  \~english
   *  After user B accepted user A‘s group invitation, user A will receive this callback
   *
   *  @param aGroup    User joined group
   *  @param aInvitee  Invitee
   */
  - (void)didReceiveAcceptedGroupInvitation:(EMGroup *)aGroup
                                    invitee:(NSString *)aInvitee;
  
  /*!
   *  \~chinese
   *  用户B拒绝用户A的入群邀请后，用户A接收到该回调
   *
   *  @param aGroup    群组
   *  @param aInvitee  被邀请者
   *  @param aReason   拒绝理由
   *
   *  \~english
   *  After user B declined user A's group invitation, user A will receive the callback
   *
   *  @param aGroup    Group instance
   *  @param aInvitee  Invitee
   *  @param aReason   Decline reason
   */
  - (void)didReceiveDeclinedGroupInvitation:(EMGroup *)aGroup
                                    invitee:(NSString *)aInvitee
                                     reason:(NSString *)aReason;
  
  /*!
   *  \~chinese
   *  SDK自动同意了用户A的加B入群邀请后，用户B接收到该回调，需要设置EMOptions的isAutoAcceptGroupInvitation为YES
   *
   *  @param aGroup    群组实例
   *  @param aInviter  邀请者
   *  @param aMessage  邀请消息
   *
   *  \~english
   *  User B will receive this callback after SDK automatically accept user A's group invitation, need set EMOptions's isAutoAcceptGroupInvitation property to YES
   *
   *  @param aGroup    Group
   *  @param aInviter  Inviter
   *  @param aMessage  Invite message
   */
  - (void)didJoinedGroup:(EMGroup *)aGroup
                 inviter:(NSString *)aInviter
                 message:(NSString *)aMessage;
  
  /*!
   *  \~chinese
   *  离开群组回调
   *
   *  @param aGroup    群组实例
   *  @param aReason   离开原因
   *
   *  \~english
   *  Callback of leave group
   *
   *  @param aGroup    Group instance
   *  @param aReason   Leave reason
   */
  - (void)didReceiveLeavedGroup:(EMGroup *)aGroup
                         reason:(EMGroupLeaveReason)aReason;
  
  /*!
   *  \~chinese
   *  群组的群主收到用户的入群申请，群的类型是EMGroupStylePublicJoinNeedApproval
   *
   *  @param aGroup     群组实例
   *  @param aApplicant 申请者
   *  @param aReason    申请者的附属信息
   *
   *  \~english
   *  Group's owner receive user's applicaton of joining group, group's style is EMGroupStylePublicJoinNeedApproval
   *
   *  @param aGroup     Group
   *  @param aApplicant The applicant
   *  @param aReason    The applicant's message
   */
  - (void)didReceiveJoinGroupApplication:(EMGroup *)aGroup
                               applicant:(NSString *)aApplicant
                                  reason:(NSString *)aReason;
  
  /*!
   *  \~chinese
   *  群主拒绝用户A的入群申请后，用户A会接收到该回调，群的类型是EMGroupStylePublicJoinNeedApproval
   *
   *  @param aGroupId    群组ID
   *  @param aReason     拒绝理由
   *
   *  \~english
   *  User A will receive this callback after group's owner declined it's application, group's style is EMGroupStylePublicJoinNeedApproval
   *
   *  @param aGroupId    Group id
   *  @param aReason     Decline reason
   */
  - (void)didReceiveDeclinedJoinGroup:(NSString *)aGroupId
                               reason:(NSString *)aReason;
  
  /*!
   *  \~chinese
   *  群主同意用户A的入群申请后，用户A会接收到该回调，群的类型是EMGroupStylePublicJoinNeedApproval
   *
   *  @param aGroup   通过申请的群组
   *
   *  \~english
   *  User A will receive this callback after group's owner accepted it's application, group's style is EMGroupStylePublicJoinNeedApproval
   *
   *  @param aGroup   Group instance
   */
  - (void)didReceiveAcceptedJoinGroup:(EMGroup *)aGroup;
  
  /*!
   *  \~chinese
   *  群组列表发生变化
   *
   *  @param aGroupList  群组列表<EMGroup>
   *
   *  \~english
   *  Group List changed
   *
   *  @param aGroupList  Group list<EMGroup>
   */
  - (void)didUpdateGroupList:(NSArray *)aGroupList;
  
  @end
  