import { ZIM } from './ZIM';
import { ZIMBlacklistChangeAction, ZIMCallInvitationMode, ZIMCallUserInfo, ZIMCommunityChangeInfo, ZIMCommunityChannelChangeInfo, ZIMCommunityChannelFullInfoUpdateInfo, ZIMCommunityFullInfoUpdateInfo, ZIMCommunityMemberInfoUpdateInfo, ZIMCommunityMemberStateChangeInfo, ZIMConnectionEvent, ZIMConnectionState, ZIMConversationChangeInfo, ZIMConversationSyncState, ZIMConversationType, ZIMError, ZIMFriendApplicationInfo, ZIMFriendApplicationListChangeAction, ZIMFriendInfo, ZIMFriendListChangeAction, ZIMGroupApplicationInfo, ZIMGroupApplicationListChangeAction, ZIMGroupAttributesUpdateInfo, ZIMGroupEvent, ZIMGroupFullInfo, ZIMGroupMemberEvent, ZIMGroupMemberInfo, ZIMGroupMemberState, ZIMGroupMuteInfo, ZIMGroupOperatedInfo, ZIMGroupState, ZIMGroupVerifyInfo, ZIMMessage, ZIMMessageDeleteType, ZIMMessagePinStatusChangeInfo, ZIMMessageReaction, ZIMMessageReactionChangeInfo, ZIMMessageReceiptInfo, ZIMMessageReceivedInfo, ZIMMessageRootRepliedCountInfo, ZIMMessageSentStatusChangeInfo, ZIMRevokeMessage, ZIMRoomAttributesUpdateInfo, ZIMRoomEvent, ZIMRoomMemberAttributesUpdateInfo, ZIMRoomOperatedInfo, ZIMRoomState, ZIMUserFullInfo, ZIMUserInfo, ZIMUserRule, ZIMUserStatus } from './ZIMDefines';
export interface ZIMEventHandler {
    /**
     * The callback for error information.
     *
     * Available since: 1.0.0 and above.
     * Description: When an exception occurs in the SDK, the callback will prompt detailed exception information.
     * Use cases: It is recommended that developers, after integrating the SDK, listen to this callback during the debugging phase and print error information to the console to promptly identify and fix errors that occur during development.
     * Triggered when: This callback is triggered when an error occurs internally in the SDK. For error codes, refer to the official website documentation.
     *
     * @param zim ZIM instance.
     * @param errorInfo The error information
     */
    error: (zim: ZIM, errorInfo: ZIMError) => void;
    /**
     * Experimental API callback.
     *
     * Available since: 2.28.0 and above.
     * Description: Receive experimental API callbacks. Please use this feature with the assistance of ZEGO technical support.
     *
     * @param zim ZIM instance.
     * @param content Callback content in JSON string format.
     */
    experimentalEventReceived: (zim: ZIM, content: string) => void;
    /**
     * A reminder callback that the token is about to expire.
     *
     * Available since: 1.1.0 and above.
     * Description: When developers use authentication tokens for login, the token update logic can be handled through this event when the token is about to expire.
     * Triggered when: When the authentication token has only 30 seconds remaining, the SDK will trigger this callback to notify developers to update the authentication token. If the token passed during [login] has less than 30 seconds of validity, this callback will be triggered immediately after [login] succeeds.
     * Caution: When this callback is received, developers should promptly call [renewToken] to update the token.
     * References: For details, please refer to the authentication token generation guide at https://doc-zh.zego.im/article/11617 .
     *
     * @param zim ZIM instance.
     * @param result The token will expire event callback result
     */
    tokenWillExpire: (zim: ZIM, result: ZIMTokenWillExpireEventResult) => void;
    /**
     * The event callback when the connection state changes.
     *
     * Available since: 1.1.0 and above.
     * Description: When the connection state changes, this callback notifies the user of the current state and event.
     * Use cases: When you need to monitor the connection state and the events that cause connection state changes, you can use [ZIMConnectionState] and [ZIMConnectionEvent] in this callback to implement different business logic.
     * Triggered when: This callback is triggered when the SDK performs login, logout, or when the network is temporarily interrupted.
     * Caution: In the case of connection state changes caused by general network exceptions, developers do not need to perform reconnection themselves. The SDK will continuously attempt to reconnect until successful.
     *
     * @param zim zim ZIM instance.
     * @param result The connection state changed event callback result
     */
    connectionStateChanged: (zim: ZIM, result: ZIMConnectionStateChangedEventResult) => void;
    /**
     * In the multi-terminal login scenario, after the user modifies their information on device A, other online multi-terminal devices will receive this callback. For offline devices, after the user goes online, they need to call the [ZIM.QueryUsersInfo] interface to actively query user information.
     *
     * Available since: 2.11.0 and above.
     * Description: In multi-device login scenarios, after the user modifies their information on device A, other online multi-device devices will receive this callback. For offline devices, after the user comes online, they need to call the [queryUsersInfo] interface to actively query user information.
     * Triggered when: When the current user on another device modifies their own user information, this callback is triggered on all currently online devices.
     *
     * @param zim ZIM instance.
     * @param result The user info changed event callback result
     */
    userInfoUpdated: (zim: ZIM, result: ZIMUserInfoUpdatedEventResult) => void;
    /**
     * Triggered when the user rule changes.
     *
     * Available since: 2.15.0 and above.
     * Description: When the current user changes user rules via [updateUserOfflinePushRule], this callback notifies other online multi-device devices.
     * Triggered when: When the current user on another device modifies their own user rules, this callback is triggered on all currently online devices.
     *
     * @param zim ZIM instance.
     * @param result The user rule changed event callback result
     */
    userRuleUpdated: (zim: ZIM, result: ZIMUserRuleUpdatedEventResult) => void;
    /**
     * User online status change notification.
     *
     * Available since: 2.18.0 and above.
     * Description: Event notification when the online status of subscribed users changes.
     * Use cases: When your business needs to monitor the online status of certain users, such as displaying online group members, subscribe to those users via [subscribeUsersStatus]. Changes to those users' online status and platform list during the subscription period will be notified through this callback.
     * Triggered when: After the current user first subscribes to a target user, this event is triggered when the target user is first added to the subscription list, or when the subscribed user's online status or online platform list changes. Additionally, if the current user has multi-device login enabled and the online platform changes, this callback will also be triggered.
     * Caution: When the [onUserStatusUpdated] callback returns the current user's [userStatus] information, the [onlineStatus] will be [unknown] and [lastUpdateTime] will be 0, which does not accurately reflect the online status. Please use [onConnectionStateChanged] to map the current user's online status.
     *
     * @param zim ZIM instance.
     * @param result The user status changed event callback result
     */
    userStatusUpdated: (zim: ZIM, result: ZIMUserStatusUpdatedEventResult) => void;
    /**
     * Received notification callback for session update.
     *
     * Available since: 2.0.0 and above.
     * Description: Trigger this callback to return notification of session updates when a session is added, deleted, or modified.
     * Triggered when: Notifications are triggered when a new message is updated in the session, or when the session itself is added, deleted, or modified.
     * Caution: ConversationID is the same as single chat toUserID and group chat groupID.
     * Related APIs: Through [sendPeerMessage] , [sendGroupMessage], [sendRoomMessage], [deleteConversation] [deleteMessage], [deleteMessageByConversationID] trigger.
     *
     * @param zim ZIM instance.
     * @param result The conversation changed event callback result
     */
    conversationChanged: (zim: ZIM, result: ZIMConversationChangedEventResult) => void;
    /**
     * Received notification callback for session update.
     *
     * Available since: 2.0.0 and above.
     * Description: This callback returns the total number of unread messages across all conversations.
     * Triggered when: Immediately after the SDK logs in, a notification of the current total unread message count is triggered. It is also triggered when new messages are received or when the unread count of a conversation is cleared.
     * Caution: If a conversation is set to do-not-disturb mode, changes to its unread count will not drive changes to the total unread count.
     *
     * @param zim ZIM instance.
     * @param result The conversation total unread message count changed event callback result
     */
    conversationTotalUnreadMessageCountUpdated: (zim: ZIM, result: ZIMConversationTotalUnreadMessageCountUpdatedEventResult) => void;
    /**
     * Received notification callback when the message receiver has read this receipt message.
     *
     * Available since: 2.5.0 and above.
     * Description: When the message receiver has read the session, the message sender knows through this callback.
     * Triggered when: Trigger a notification when the message receiver has read the session.
     * Related APIs: [sendConversationMessageReceiptRead]
     *
     * @param zim ZIM instance.
     * @param result The conversation message receipt changed event callback result
     */
    conversationMessageReceiptChanged: (zim: ZIM, result: ZIMConversationMessageReceiptChangedEventResult) => void;
    /**
     * When multiple login ends delete all sessions, the local end triggers the callback to notify the local end that all sessions are deleted.
     *
     * Available since: 2.12.0 and above.
     * Description: When multiple login ends delete all sessions, the local end triggers the callback to notify the local end that all sessions are deleted.
     * Triggered when: When another end clears all unread sessions, the local end triggers a notification.
     * Caution: After calling the SDK [deleteAllConversations] interface to delete all conversations, [onConversationChanged] will not be triggered. It is recommended that developers, upon receiving this callback, call [queryConversationList] again to sync the conversation list UI to the latest state.
     * Related APIs: [deleteAllConversations].
     *
     * @param zim ZIM instance.
     * @param result The conversations all deleted event callback result
     */
    conversationsAllDeleted: (zim: ZIM, result: ZIMConversationsAllDeletedEventResult) => void;
    /**
     * Notification of synchronization status change events between the conversation list and the server
     *
     * Available since: 2.21.0 and above.
     * Description: After the SDK first logs in and starts the process of syncing conversations from the server, this callback is triggered to return notifications of conversation updates when the process completes or fails.
     * Triggered when: This callback is triggered when the SDK performs the sync conversation list operation after the first login or after reconnecting from a network disconnect.
     * Caution: Even if the conversation list does not need to be synced, the SDK will still trigger the sync completion callback so that developers can display or dismiss UI loading indicators.
     *
     * @param zim ZIM instance.
     * @param result The callback result of the conversation list and server status synchronization event
     */
    conversationSyncStateChanged: (zim: ZIM, result: ZIMConversationSyncStateChangedEventResult) => void;
    /**
     * The callback for receiving peer-to-peer message.
     *
     * Available since: 2.18.0 and above.
     * Description: When online, users can receive online peer-to-peer messages through this callback. After re-logging in to the ZIM SDK, users can receive all peer-to-peer messages received during the offline period (up to 7 days) through this callback.
     * Triggered when: This callback is triggered when a peer-to-peer message sent by another user is received.
     * Related APIs: [sendMessage]
     *
     * @deprecated This API was deprecated in version 3.0.0. Please use [onMessageReceived] instead.
     * @param zim ZIM instance.
     * @param result The receive peer message event callback result
     */
    peerMessageReceived: (zim: ZIM, result: ZIMConversationMessageReceivedEventResult) => void;
    /**
     * The callback for receiving room message.
     *
     * Available since: 2.18.0 and above.
     * Description: When online, users can receive online room messages through this callback. After recovering from offline to online, if the user is still in the room, they can receive all room messages from the offline period through this callback (this capability requires the room offline message storage feature to be enabled).
     * Triggered when: This callback is triggered when the current user is in a room and other users in the same room send messages to the room the current user has joined or created.
     * Related APIs: [sendMessage]
     *
     * @deprecated This API was deprecated in version 3.0.0. Please use [onMessageReceived] instead.
     * @param zim ZIM instance.
     * @param result The receive room message event callback result
     */
    roomMessageReceived: (zim: ZIM, result: ZIMConversationMessageReceivedEventResult) => void;
    /**
     * The callback for receiving group message.
     *
     * Available since: 2.18.0 and above.
     * Description: When online, users can receive online group messages through this callback. After re-logging in to the ZIM SDK, users can receive all group chat messages received during the offline period (up to 7 days) through this callback.
     * Triggered when: This callback is triggered when group members in the same group send messages.
     * Related APIs: [sendMessage]
     *
     * @deprecated This API was deprecated in version 3.0.0. Please use [onMessageReceived] instead.
     * @param zim ZIM instance.
     * @param result The receive group message event callback result
     */
    groupMessageReceived: (zim: ZIM, result: ZIMConversationMessageReceivedEventResult) => void;
    /**
     * The callback for receiving message.
     *
     * Available since: 3.0.0 and above.
     * Description: When online, users can receive online messages through this callback. After re-logging in to the ZIM SDK, users can receive all single chat and group chat messages received during the offline period (up to 7 days); if the room has the offline message storage feature enabled, room messages can also be received.
     * Triggered when: This callback is triggered when a peer-to-peer message, room message, group message, or community channel message is received.
     * Related APIs: [sendMessage]
     *
     * @param zim ZIM instance.
     * @param result The receive group message event callback result
     */
    messageReceived: (zim: ZIM, result: ZIMMessageReceivedEventResult) => void;
    /**
     * The callback for receiving broadcast message.
     *
     * Available since: 2.10.0 or later.
     * Description: The callback is received when the server interface [SendMessageToAllUsers] sends a message.
     * Triggered when: This callback is received after logging in to the ZIM service and the server call the [SendMessageToAllUsers] interface to send a message.
     *
     * @param zim ZIM instance.
     * @param result The event result for receiving broadcast message.
     */
    broadcastMessageReceived: (zim: ZIM, result: ZIMBroadcastMessageReceivedEventResult) => void;
    /**
     * The callback for message sent status changed.
     *
     * Available since: 2.6.0 and above.
     * Description: This callback is received when the message sending status changes.
     * Triggered when: When the current user sends a message and the message status changes from sending to sent successfully or send failed, this callback will be triggered.
     * Caution: Only the device user who actually sends the message can receive this callback. Other devices in a multi-device login scenario will not receive this callback.
     * Related APIs: [sendMessage]
     *
     * @param zim ZIM instance.
     * @param result The message sent status changed event callback result
     */
    messageSentStatusChanged: (zim: ZIM, result: ZIMMessageSentStatusChangedEventResult) => void;
    /**
     * Received notification callback when the message receiver confirms that the message has been read.
     *
     * Available since: 2.5.0 and above.
     * Description: When the message receiver confirms that the message has been read, the message sender knows through this callback.
     * Triggered when: Trigger a notification when the message receiver has read the message.
     * Related APIs: Triggered when the peer calls via [sendMessageReceiptsRead].
     *
     * @param zim ZIM instance.
     * @param result The message receipt change event callback result
     */
    messageReceiptChanged: (zim: ZIM, result: ZIMMessageReceiptChangedEventResult) => void;
    /**
     * Received notification callback when some one else sends a message and then revoke a message sent by themselves.
     *
     * Available since: 2.5.0 and above.
     * Description: This callback is received when some one else sends a message and then revoke.
     * Triggered when: This callback occurs when a ZIM instance is created with [create] and the other user revoke a message.
     * Related APIs: You can revoke message to other members via [revokeMessage].
     *
     * @param zim ZIM instance.
     * @param result The message revoke event callback result
     */
    messageRevokeReceived: (zim: ZIM, result: ZIMMessageRevokeReceivedEventResult) => void;
    /**
     * The callback is received when reactions change
     *
     * Available since: 2.28.0 and above.
     * Description: This callback is received when the reaction types in a message increase or decrease, or when the user count and count of a specific reaction change.
     * Triggered when: This callback is triggered when the current user has already received a message in the conversation and the reaction content of the message changes.
     * Related APIs: [addMessageReaction], [deleteMessageReaction]
     *
     * @param zim ZIM instance.
     * @param result The message reaction change event callback result
     */
    messageReactionsChanged: (zim: ZIM, result: ZIMMessageReactionsChangedEventResult) => void;
    /**
     * The callback is received when a message is deleted.
     *
     * Available since: 2.11.0 and above.
     * Description: In multi-device login scenarios, after the user deletes server-side messages on device A, other online multi-device devices will receive this callback.
     * Triggered when: When another device of the current user in a multi-device online login performs message deletion, the online user on the current device will trigger this callback.
     * Caution: When other users in a conversation delete messages, other users will not receive this callback. This callback only takes effect for the user who performs the deletion.
     * Related APIs: [deleteMessages], [deleteAllMessage], [deleteAllConversationMessages]
     *
     * @param zim ZIM instance.
     * @param result The message delete event callback result
     */
    messageDeleted: (zim: ZIM, result: ZIMMessageDeletedEventResult) => void;
    /**
     * The callback is received when the message replied information changes.
     *
     * Available since: 2.17.0 and above.
     * Description: Users in the conversation will receive this callback when the source message referenced by a reply message is deleted, revoked, or its content is edited.
     * Triggered when: This callback is triggered when the current user has already received a message in the conversation and the reply content carried by that message changes.
     * Use cases: This allows developers to be notified in advance of source message status changes for quoted messages in the chat view before the reply source message is fetched, enabling timely UI refresh.
     * Related APIs: [deleteMessages], [revokeMessage], [editMessage]
     *
     * @param zim ZIM instance.
     * @param result The message replied information change event callback result
     */
    messageRepliedInfoChanged: (zim: ZIM, result: ZIMMessageRepliedInfoChangedEventResult) => void;
    /**
     * The callback is received when the message replied count changes.
     *
     * Available since: 2.17.0 and above.
     * Description: When messages continue to be replied to in the same reply chain, changes to the reply count of the source message are notified through this callback.
     * Triggered when: This callback is triggered when the current user has received the source message and the message is replied to.
     * Related APIs: [replyMessage].
     *
     * @param zim ZIM instance.
     * @param result The message replied count change event callback result
     */
    messageRepliedCountChanged: (zim: ZIM, result: ZIMMessageRepliedCountChangedEventResult) => void;
    /**
     * The callback is received when a message is edited.
     *
     * Available since: 2.20.0 and above.
     * Description: Users in the conversation will receive this callback when a message is edited.
     * Triggered when: This callback is triggered when the current user has already received a message in the conversation and that message is subsequently edited.
     * Related APIs: [editMessage].
     *
     * @param zim ZIM instance.
     * @param result The message edited event callback result.
     */
    messageEdited: (zim: ZIM, result: ZIMMessageEditedEventResult) => void;
    /**
     * The callback is received when a message is pinned.
     *
     * Available since: 2.25.0 and above.
     * Description: This callback is received when a message in the conversation is successfully pinned or unpinned, or when the pinned message information changes.
     * Triggered when: This callback is triggered when a message in the conversation is successfully pinned or unpinned, or when the pinned message information changes.
     * Related APIs: [pinMessage].
     *
     * @param zim ZIM instance.
     * @param result The message edited event callback result.
     */
    messagePinStatusChanged: (zim: ZIM, result: ZIMMessagePinStatusChangedEventResult) => void;
    /**
     * The event callback when the room connection status changes.
     *
     * Description: Event callback when the room connection status changes. It is recommended that developers always listen to this callback to properly manage the room lifecycle.
     * Triggered when: This callback is triggered when the room connection status changes, such as when entering or leaving a room, a temporary network interruption, or a room connection timeout.
     * Caution: Since the SDK does not perform unlimited reconnection for room connections, developers need to selectively perform limited reconnection according to their own business requirements.
     * References: https://doc-zh.zego.im/faq/zim-reconnect-support
     *
     * @param zim ZIM instance.
     * @param result The room state change event callback result
     */
    roomStateChanged: (zim: ZIM, result: ZIMRoomStateChangedEventResult) => void;
    /**
     * Callback when other members join the room.
     *
     * Available since: 1.1.0 and above.
     * Description: After joining a room, this callback will be triggered when other members also join the room.
     * Triggered when: This callback is triggered when the current user is online in the room and other users join the room.
     * Caution: If the current user is temporarily offline due to network issues when other users enter the room, this callback will not be re-sent after reconnection. Developers can use [queryRoomMemberList] to get the latest room member list at that time.
     * Related APIs: [enterRoom], [joinRoom].
     *
     * @param zim ZIM instance.
     * @param result The room member joined event callback result
     */
    roomMemberJoined: (zim: ZIM, result: ZIMRoomMemberChangedEventResult) => void;
    /**
     * Callback when other members leave the room.
     *
     * Available since: 1.1.0 and above.
     * Description: After joining a room, this callback will be triggered when other members leave the room.
     * Triggered when: This callback is triggered when the current user is online in the room and other users leave the room.
     * Caution: If the current user is temporarily offline due to network issues when other users leave the room, this callback will not be re-sent after reconnection. Developers can use [queryRoomMemberList] to get the latest room member list at that time.
     * Related APIs: [leaveRoom].
     *
     * @param zim ZIM instance.
     * @param result The room member left event callback result
     */
    roomMemberLeft: (zim: ZIM, result: ZIMRoomMemberChangedEventResult) => void;
    /**
     * Event callback when the room attributes changes.
     *
     * Available since: 1.3.0 and above.
     * Description: When the room attributes in the room change, this callback notifies the users.
     * Triggered when: When first joining a room, if there are room attributes in the room at that time, a callback is triggered once, which developers can use to save as initial attribute values. This callback is also triggered when other users in the room change room attributes (triggered when the current user is online or successfully reconnects after a brief offline period).
     * Use cases: In voice chat room scenarios, room attributes can be used to manage microphone seat information.
     * Related APIs: [setRoomAttributes], [deleteRoomAttributes].
     *
     * @param zim ZIM instance.
     * @param result The room attribute change event callback result
     */
    roomAttributesUpdated: (zim: ZIM, result: ZIMRoomAttributesUpdatedEventResult) => void;
    /**
     * Event callback when the room attributes batch changes.
     *
     * Available since: 1.3.0 and above.
     * Description: When room attributes in the room change in batch, this callback notifies the users.
     * Triggered when: This callback is triggered when another user in the room calls the batch attribute change interface for room attributes.
     * Use cases: In voice chat room scenarios, room attributes can be used to manage microphone seat information.
     * Related APIs: [beginRoomAttributesBatchOperation], [endRoomAttributesBatchOperation].
     *
     * @param zim ZIM instance.
     * @param result The room attribute batch change event callback result
     */
    roomAttributesBatchUpdated: (zim: ZIM, result: ZIMRoomAttributesUpdatedEventResult) => void;
    /**
     * Event callback when the room member attributes changes.
     *
     * Available since: 1.3.0 and above.
     * Description: When the member user attributes in the room change, this callback notifies the users.
     * Triggered when: This callback is triggered when another user's attributes are changed in the room and the current user is online.
     * Use cases: When business additional information needs to be recorded for each member in the room, this callback can be used to receive changes and refresh the UI.
     * Related APIs: [setRoomMemberAttributes].
     *
     * @param zim ZIM instance.
     * @param result The room member attribute change event callback result
     */
    roomMemberAttributesUpdated: (zim: ZIM, result: ZIMRoomMemberAttributesUpdatedEventResult) => void;
    /**
     * Event callback when the group state changes.
     *
     * Available since: 2.0.0 and above.
     * Description: Callback notification of group status change. Used to describe the current lifecycle state of the group and the events triggered when the lifecycle state changes.
     * Use cases: Scenarios that require interaction based on the group status.
     * Triggered when: A notification is triggered when a group is created, joined, left, or dismissed.
     * Related APIs: [createGroup] creates a group; [joinGroup] joins a group; [leaveGroup] leaves a group; [dismissGroup] dismisses a group.
     *
     * @param zim ZIM instance.
     * @param result The group state change event callback result
     */
    groupStateChanged: (zim: ZIM, result: ZIMGroupStateChangedEventResult) => void;
    /**
     * Event callback when the group name changes.
     *
     * Available since: 2.0.0 and above.
     * Description: Group name change notification callback.
     * Use cases: When the group name changes, you need to synchronize the latest group name.
     * Triggered when: Triggered when the group name changes.
     * Related APIs: [updateGroupName], which updates the group name.
     *
     * @param zim ZIM instance.
     * @param result Group name change event result.
     */
    groupNameUpdated: (zim: ZIM, result: ZIMGroupNameUpdatedEventResult) => void;
    /**
     * Event callback when the group avatar changes.
     *
     * Available since: 2.0.0 and above.
     * Description: Notification callback when the group avatar URL changes.
     * Use cases: When the group avatar URL changes, you need to synchronize the latest group avatar URL.
     * Triggered when: The group avatar URL changes.
     * Related APIs: [updateGroupAvatarUrl], which updates the group avatar URL.
     *
     * @param zim ZIM instance.
     * @param result Group avatar change event result.
     */
    groupAvatarUrlUpdated: (zim: ZIM, result: ZIMGroupAvatarUrlUpdatedEventResult) => void;
    /**
     * Event callback when the group notice changes.
     *
     * Available since: 2.0.0 and above.
     * Description: Group notice change notification callback.
     * Use cases: When the group notice changes, you need to synchronize the latest notice content.
     * Triggered when: Triggered when the group notice changes.
     * Related APIs: [updateGroupNotice], which updates the group notice.
     *
     * @param zim ZIM instance.
     * @param result Group notice change event result.
     */
    groupNoticeUpdated: (zim: ZIM, result: ZIMGroupNoticeUpdatedEventResult) => void;
    /**
     * Event callback when the group alias changes.
     *
     * Available since: 2.0.0 and above.
     * Description: Group alias change notification callback.
     * Use cases: When the group alias changes, you need to synchronize the latest alias content.
     * Triggered when: Triggered when the current user who set the group alias or their online multi-device devices change the group alias.
     * Caution: The group alias feature is only visible to the user who set it. Therefore, changes to the group alias by the current user will not be pushed to other users in the group.
     * Related APIs: [updateGroupAlias], which updates the group alias.
     *
     * @param zim ZIM instance.
     * @param result Group alias change event result.
     */
    groupAliasUpdated: (zim: ZIM, result: ZIMGroupAliasUpdatedEventResult) => void;
    /**
     * Event callback when the group attributes change.
     *
     * Available since: 2.0.0 and above.
     * Description: Group attribute change notification callback.
     * Use cases: When group attributes are changed, you need to synchronize the latest group attributes.
     * Triggered when: Triggered when group attributes are set, updated, or deleted.
     * Related APIs: [setGroupAttributes] updates group attributes; [deleteGroupAttributes] deletes group attributes.
     *
     * @param zim ZIM instance.
     * @param result Group attribute change event result.
     */
    groupAttributesUpdated: (zim: ZIM, result: ZIMGroupAttributesUpdatedEventResult) => void;
    /**
     * Event callback when the group is muted.
     *
     * Available since: 2.14.0 and above.
     * Description: Notification callback when the group mute information changes.
     * Triggered when: When the group mute information changes, users in the group will trigger this callback.
     * Related APIs: [muteGroup], group mute.
     *
     * @param zim ZIM instance.
     * @param result Group mute event result.
     */
    groupMutedInfoUpdated: (zim: ZIM, result: ZIMGroupMutedInfoUpdatedEventResult) => void;
    /**
     * Event callback when the group verification information changes.
     *
     * Description: Notification callback when the group join verification mode changes.
     * Triggered when: When the group owner or administrator changes the group join verification mode, users in the group will trigger this callback.
     * Related APIs: [updateGroupJoinMode, updateGroupInviteMode, updateGroupBeInviteMode].
     *
     * @param zim ZIM instance.
     * @param result Group verification information change event result.
     */
    groupVerifyInfoUpdated: (zim: ZIM, result: ZIMGroupVerifyInfoUpdatedEventResult) => void;
    /**
     * Event callback when the group member status changes.
     *
     * Available since: 2.0.0 and above.
     * Description: Callback notification when group member status changes.
     * Use cases: Scenarios that require interaction based on group member states, such as displaying group member join/leave notification UI.
     * Triggered when: Notification is triggered when a group is created, joined, left, or dismissed, or a user is invited to join or kicked out of the group.
     * Related APIs: [createGroup] creates a group, [joinGroup] joins a group, [leaveGroup] leaves a group, [dismissGroup] dismisses a group, [inviteUsersIntoGroup] invites users into the group, [kickGroupMembers] kicks out members.
     *
     * @param zim ZIM instance.
     * @param result Group member status change event result.
     */
    groupMemberStateChanged: (zim: ZIM, result: ZIMGroupMemberStateChangedEventResult) => void;
    /**
     * Event callback when the group member information changes.
     *
     * Description: Callback for group member basic information change events, including group member nickname, role, and other change events.
     * Use cases: After the basic information of group members is changed, scenarios that require displaying or interacting with group members on the page, such as displaying notifications when a group member's role changes.
     * Triggered when: After group member information changes, users in the group will trigger this notification.
     * Related APIs: [setGroupMemberNickname] updates group member nickname; [setGroupMemberRole] updates group member role; [transferGroupOwner] transfers group ownership.
     *
     * @param zim ZIM instance.
     * @param result Group member information change event result.
     */
    groupMemberInfoUpdated: (zim: ZIM, result: ZIMGroupMemberInfoUpdatedEventResult) => void;
    /**
     * Event callback when the group application list changes.
     *
     * Available since: 2.15.0 and above.
     * Description: This callback is triggered when the group join application list changes.
     * Related APIs: [sendGroupJoinApplication], [sendGroupInviteApplications].
     *
     * @param zim ZIM instance.
     * @param result Group application list change event result.
     */
    groupApplicationListChanged: (zim: ZIM, result: ZIMGroupApplicationListChangedEventResult) => void;
    /**
     * Event callback when the group application information changes.
     *
     * Available since: 2.15.0 and above.
     * Description: This callback is triggered when the group join application list information changes.
     * Related APIs: [acceptGroupJoinApplication], [rejectGroupJoinApplication], [acceptGroupInviteApplication], [rejectGroupInviteApplication].
     *
     * @param zim ZIM instance.
     * @param result Group application information change event result.
     */
    groupApplicationUpdated: (zim: ZIM, result: ZIMGroupApplicationUpdatedEventResult) => void;
    /**
     * Event callback when the call invitation is created.
     *
     * Available since: 2.13.0 and above.
     * Description: After the inviter initiates a call invitation and the inviter is online, this callback will be received.
     * Triggered when: If the inviter has multiple online devices, all multi-device devices of the current user will trigger this callback after the inviter sends the call invitation.
     * Related APIs: [callInvite].
     *
     * @param zim ZIM instance.
     * @param result Call invitation creation event result.
     */
    callInvitationCreated: (zim: ZIM, result: ZIMCallInvitationCreatedEventResult) => void;
    /**
     * Event callback when the call invitation is received.
     *
     * Available since: 2.0.0 and above.
     * Use cases: The invitee will call this callback after the inviter sends a call invitation.
     * Triggered when: After creating a ZIM instance through [create].
     * Caution: If the user is not in the invitation list or not online, this callback will not be called.
     * Related APIs: [callInvite].
     *
     * @param zim ZIM instance.
     * @param result Call invitation reception event result.
     */
    callInvitationReceived: (zim: ZIM, result: ZIMCallInvitationReceivedEventResult) => void;
    /**
     * Event callback when the call invitation is cancelled.
     *
     * Available since: 2.0.0 and above.
     * Use cases: The invitee will call this callback after the inviter cancels the call invitation.
     * Triggered when: After creating a ZIM instance through [create].
     * Caution: If the user is not in the cancel invitation list or is offline, this callback will not be called.
     * Related APIs: [callCancel].
     *
     * @param zim ZIM instance.
     * @param result Call invitation cancellation event result.
     */
    callInvitationCancelled: (zim: ZIM, result: ZIMCallInvitationCancelledEventResult) => void;
    /**
     * Event callback when the call invitation is ended.
     *
     * Available since: 2.9.0 and above.
     * Description: After an advanced mode call invitation is established and a participant ends the call, all participants will receive this callback.
     * Caution: If the user is not a participant who initiated this call or is not online, this callback will not be received.
     * Related APIs: [callEnd].
     *
     * @param zim ZIM instance.
     * @param result Call invitation end event result.
     */
    callInvitationEnded: (zim: ZIM, result: ZIMCallInvitationEndedEventResult) => void;
    /**
     * Event callback when the call invitation times out.
     *
     * Available since: 2.9.0 and above.
     * Description: When the call invitation times out, the invitee does not respond and will receive a callback.
     * Use cases: If the invitee does not respond before the timeout period, this callback will be received.
     * Triggered when: After creating a ZIM instance through [create].
     * Caution: If the user is not on the invitation list or is not online, the callback will not be received.
     * Related APIs: [callInvite], [callAccept], [callReject].
     *
     * @param zim ZIM instance.
     * @param result Call invitation timeout event result.
     */
    callInvitationTimeout: (zim: ZIM, result: ZIMCallInvitationTimeoutEventResult) => void;
    /**
     * Event callback when the call invitation user status changes.
     *
     * Available since: 2.9.0 and above.
     * Description: Listen for calling user status changes.
     * Triggered when: When a new member is invited to a call, or a member accepts, rejects, exits, or a member response times out, all users on the current call invitation whose status is "Inviting," "Accepted," and "Received" receive the callback here. If the member is not online at the time of notification, the call is still ongoing when the login succeeds. The status changes of all members during the offline period will be sent to the user at one time.
     * Caution: If the user is not the inviter who initiated this call invitation or is not online, the callback will not be received.
     * Related APIs: [callInvite], [callingInvite], [callAccept], [callReject],[callQuit].
     *
     * @param zim ZIM instance.
     * @param result Call invitation user status change event result.
     */
    callUserStateChanged: (zim: ZIM, result: ZIMCallUserStateChangedEventResult) => void;
    /**
     * Event callback when the friend list changes.
     *
     * Available since: 2.14.0 and above.
     * Description: When the friend list changes, this callback is triggered for the current user and all devices logged in by the current user.
     * Triggered when: This callback is triggered when the current user's friend list changes, i.e., when a friend is added, deleted, or similar events occur.
     * Related APIs: [addFriend], [deleteFriends].
     *
     * @param zim ZIM instance.
     * @param result Friend list change event result.
     */
    friendListChanged: (zim: ZIM, result: ZIMFriendListChangedEventResult) => void;
    /**
     * Event callback when the friend information changes.
     *
     * Available since: 2.14.0 and above.
     * Description: This callback is triggered when friend information is updated.
     * Triggered when: This callback is triggered when a friend's basic information changes, such as avatar or name, or when the current user or another online device modifies a friend's alias or attributes.
     * Related APIs: [updateFriendAlias], [updateFriendAttributes].
     *
     * @param zim ZIM instance.
     * @param result Friend information change event result.
     */
    friendInfoUpdated: (zim: ZIM, result: ZIMFriendInfoUpdatedEventResult) => void;
    /**
     * Event callback when the friend application list changes.
     *
     * Available since: 2.14.0 and above.
     * Description: This callback is triggered when the friend application list changes.
     * Triggered when: This callback is triggered when a user applies to become a friend, or when you send a friend application to a user, causing changes to the friend application list.
     * Related APIs: [sendFriendApplication].
     *
     * @param zim ZIM instance.
     * @param result Friend application list change event result.
     */
    friendApplicationListChanged: (zim: ZIM, result: ZIMFriendApplicationListChangedEventResult) => void;
    /**
     * Event callback when the friend application information changes.
     *
     * Available since: 2.14.0 and above.
     * Description: This callback is triggered when the status or information of the friend application list is updated.
     * Triggered when: This callback is triggered when the other party accepts or rejects your friend application, or when you accept or reject the other party's friend application, causing changes to the friend application information.
     * Related APIs: [acceptFriendApplication], [rejectFriendApplication].
     *
     * @param zim ZIM instance.
     * @param result Friend application information change event result.
     */
    friendApplicationUpdated: (zim: ZIM, result: ZIMFriendApplicationUpdatedEventResult) => void;
    /**
     * Event callback when the blacklist changes.
     *
     * Available since: 2.13.0 and above.
     * Description: This callback is triggered when the current user's blacklist changes.
     * Triggered when: This callback is triggered for the current user and all online devices when the current user adds or removes a user from the blacklist.
     * Related APIs: [addUsersToBlacklist], [removeUsersFromBlacklist].
     *
     * @param zim ZIM instance.
     * @param result Blacklist change event result.
     */
    blacklistChanged: (zim: ZIM, result: ZIMBlacklistChangedEventResult) => void;
    /**
     * Received notification callback for community list changed.
     *
     * Available since: 3.0.0 and above.
     * Description: This callback is received when the current user's own community list changes, or when attributes such as the total unread count of joined communities change.
     * Triggered when: This callback is triggered when the current user joins a new community, leaves a joined community, or when the total unread count of a joined community changes.
     * Use cases: Used to display the list of communities the current user has joined in the UI and subsequent changes.
     * Caution: Only communities that you have joined will trigger this callback notification. Communities you have not joined will not trigger this callback.
     * Related APIs: [createCommunity], [joinCommunity], [leaveCommunity], [dismissCommunity].
     *
     * @param zim ZIM instance.
     * @param result The community list changed event callback result
     */
    communityListChanged: (zim: ZIM, result: ZIMCommunityListChangedEventResult) => void;
    /**
     * Received notification callback for community info updated.
     *
     * Available since: 3.0.0 and above.
     * Description: This callback is received when the current community information changes.
     * Triggered when: When the current community information changes, such as when the community name, avatar, notice, or other attributes are modified by the community owner or administrator, community members will trigger this callback.
     * Use cases: Used to display the latest community attribute data in the UI.
     * Caution: Due to the large scale of community membership, when community attributes change, push notifications are only sent to users who have recently called [queryCommunityInfo]. Users who do not receive the push notification can also obtain the latest community attributes via [queryCommunityInfo].
     * Related APIs: [updateCommunityName], [updateCommunityAvatarUrl], [updateCommunityNotice], [setCommunityAttributes], [deleteCommunityAttributes].
     *
     * @param zim ZIM instance.
     * @param result The community info list updated event callback result
     */
    communityInfoUpdated: (zim: ZIM, result: ZIMCommunityInfoUpdatedEventResult) => void;
    /**
     * .
     *
     * Available since: 3.0.0 and above.
     * Description: This callback is received when the status of members in the community changes.
     * Triggered when: This callback is triggered when events that change the community member status occur, such as a community member joining or leaving.
     * Caution: Due to the large scale of community membership, when a community member's status changes, push notifications are only sent to users who have recently called [queryCommunityInfo]. Users who do not receive the push notification can also obtain the latest community member list via [queryCommunityMemberList].
     * Related APIs: [joinCommunity], [leaveCommunity], [inviteUsersIntoCommunity], [kickCommunityMembers].
     *
     * @param zim ZIM instance.
     * @param result The community member state change event callback result
     */
    communityMemberStateChanged: (zim: ZIM, result: ZIMCommunityMemberStateChangedEventResult) => void;
    /**
     * .
     *
     * Available since: 3.0.0 and above.
     * Description: This callback is received when member information in the community changes.
     * Triggered when: This callback is triggered when a community member's role changes, when a community member is muted or unmuted, or when their basic user information changes.
     * Caution: Due to the large scale of community membership, when a community member's status changes, push notifications are only sent to users who have recently called [queryCommunityInfo]. Users who do not receive the push notification can also obtain the latest community member information via [queryCommunityMembers].
     * Related APIs: [updateCommunityMemberRole], [muteCommunityMembers].
     *
     * @param zim ZIM instance.
     * @param result The community member state change event callback result
     */
    communityMemberInfoUpdated: (zim: ZIM, result: ZIMCommunityMemberInfoUpdatedEventResult) => void;
    /**
     * Received notification callback for community channel list changed.
     *
     * Available since: 3.0.0 and above.
     * Description: This callback is received when the community channel list changes or when attributes within a channel change.
     * Triggered when: This callback is triggered when a channel in the community is created or deleted, or when messages are produced in a channel (similar to conversation-related operations).
     * Use cases: Used by developers to render the user chat activity in community channels in real time.
     * Related APIs: [sendMessage], [createCommunityChannel], [dismissCommunityChannel], [clearConversationUnreadMessageCount], etc.
     *
     * @param zim ZIM instance.
     * @param result The community channel list changed event callback result
     */
    communityChannelListChanged: (zim: ZIM, result: ZIMCommunityChannelListChangedEventResult) => void;
    /**
     * Received notification callback for community info updated.
     *
     * Available since: 3.0.0 and above.
     * Description: This callback is received when the attributes of a channel in the community change.
     * Triggered when: When the community channel name, channel notice, channel attributes, channel mute, or other attributes are changed by the community owner or administrator, active users in the channel will trigger this callback.
     * Caution: Due to the large scale of community membership, ZIM filters active users based on each user's API call behavior to push channel information change notifications. Users who do not receive the push notification can also obtain the latest community channel information via [queryCommunityChannelsInfo].
     * Related APIs: [updateCommunityChannelName], [updateCommunityChannelAvatarUrl], [updateCommunityChannelNotice], [setCommunityChannelAttributes], [deleteCommunityChannelAttributes].
     *
     * @param zim ZIM instance.
     * @param result The community channel info list updated event callback result
     */
    communityChannelInfoUpdated: (zim: ZIM, result: ZIMCommunityChannelInfoUpdatedEventResult) => void;
}
/**
 * The event callback when the connection state changes.
 *
 * @param state Connection state
 * @param event Connection event
 * @param extendedData Extra information when the event occurs, a standard JSON string
 */
export interface ZIMConnectionStateChangedEventResult {
    /** Connection state */
    state: ZIMConnectionState;
    /** Connection event */
    event: ZIMConnectionEvent;
    /** Extra information when the event occurs, a standard JSON string */
    extendedData: string;
}
/**
 * A reminder callback that the token is about to expire.
 *
 * @param second The remaining seconds before the token expires.
 */
export interface ZIMTokenWillExpireEventResult {
    /** The remaining seconds before the token expires. */
    second: number;
}
/**
 * Callback for user information update.
 *
 * @param info User info
 */
export interface ZIMUserInfoUpdatedEventResult {
    /** User info */
    info: ZIMUserFullInfo;
}
/**
 * User status change notification.
 *
 * @param userStatusList User status list
 */
export interface ZIMUserStatusUpdatedEventResult {
    /** User status list */
    userStatusList: ZIMUserStatus[];
}
/**
 * Callback of user rule changes.
 *
 * @param userRule User rule
 */
export interface ZIMUserRuleUpdatedEventResult {
    /** User rule */
    userRule: ZIMUserRule;
}
/**
 * Received notification callback for session update.
 *
 * @param infoList Conversation change info list
 */
export interface ZIMConversationChangedEventResult {
    /** Conversation change info list */
    infoList: ZIMConversationChangeInfo[];
}
/**
 * Triggered when all conversations are deleted.
 *
 * @param count Conversation count
 */
export interface ZIMConversationsAllDeletedEventResult {
    /** Conversation count */
    count: number;
}
/**
 * Received notification callback for synchronizing conv list from server.
 *
 * @param state Conversation synchronization state
 */
export interface ZIMConversationSyncStateChangedEventResult {
    /** Conversation synchronization state */
    state: ZIMConversationSyncState;
}
/**
 * Notification callback for session total unread updates.
 *
 * @param totalUnreadMessageCount Total unread message count
 */
export interface ZIMConversationTotalUnreadMessageCountUpdatedEventResult {
    /** Total unread message count */
    totalUnreadMessageCount: number;
}
/**
 * Callback for notifications of read updates for sessions that receive receipts.
 *
 * @param infos Conversation message receipt change info list
 */
export interface ZIMConversationMessageReceiptChangedEventResult {
    /** Conversation message receipt change info list */
    infos: ZIMMessageReceiptInfo[];
}
/**
 * The notification callback for the read update of the message that received the receipt.
 *
 * @param infos Message receipt change info list
 */
export interface ZIMMessageReceiptChangedEventResult {
    /** Message receipt change info list */
    infos: ZIMMessageReceiptInfo[];
}
/**
 * The callback for receiving revoke message.
 *
 * @param messageList Message revoke list
 */
export interface ZIMMessageRevokeReceivedEventResult {
    /** Message revoke list */
    messageList: ZIMRevokeMessage[];
}
/**
 * The callback of the reactions change.
 *
 * @param reactions Message reaction change info list
 * @param changeInfoList Message reaction change info list
 */
export interface ZIMMessageReactionsChangedEventResult {
    /** Message reaction change info list */
    reactions: ZIMMessageReaction[];
    /** Message reaction change info list */
    changeInfoList: ZIMMessageReactionChangeInfo[];
}
/**
 * Reply to the event that the number of message trees has changed.
 *
 * @param infos Message root reply count change info list
 */
export interface ZIMMessageRepliedCountChangedEventResult {
    /** Message root reply count change info list */
    infos: ZIMMessageRootRepliedCountInfo[];
}
/**
 * The reply information of a reply message is changed.
 *
 * @param messageList Message replied info change info list
 */
export interface ZIMMessageRepliedInfoChangedEventResult {
    /** Message replied info change info list */
    messageList: ZIMMessage[];
}
/**
 * Callback when the message is deleted.
 *
 * @param conversationID Conversation ID
 * @param conversationType Conversation type
 * @param messageDeleteType Message delete type
 * @param messageList Message delete list. This parameter is valid when isDeleteConversationAllMessage is false and ZIMMessageDeleteType is [ZIMMessageDeleteTypeMessageListDeleted].
 */
export interface ZIMMessageDeletedEventResult {
    /** Conversation ID */
    conversationID: string;
    /** Conversation type */
    conversationType: ZIMConversationType;
    /** Message delete type */
    messageDeleteType: ZIMMessageDeleteType;
    /** Message delete list. This parameter is valid when isDeleteConversationAllMessage is false and ZIMMessageDeleteType is [ZIMMessageDeleteTypeMessageListDeleted]. */
    messageList: ZIMMessage[];
}
/**
 * The callback for received message send status change.
 *
 * @param infos Message sent status change info list
 */
export interface ZIMMessageSentStatusChangedEventResult {
    /** Message sent status change info list */
    infos: ZIMMessageSentStatusChangeInfo[];
}
/**
 * The callback of the broadcast message received by all employees.
 *
 * @param message Broadcast message
 */
export interface ZIMBroadcastMessageReceivedEventResult {
    /** Broadcast message */
    message: ZIMMessage;
}
/**
 * The callback for receiving group message.
 *
 * @param messageList Conversation message list
 * @param fromConversationID Message source conversation ID
 * @param info Message received info
 */
export interface ZIMConversationMessageReceivedEventResult {
    /** Conversation message list */
    messageList: ZIMMessage[];
    /** Message source conversation ID */
    fromConversationID: string;
    /** Message received info */
    info: ZIMMessageReceivedInfo;
}
/**
 * Triggered when messages are received.
 *
 * @param messageList message list
 * @param receivedInfo Message received info
 */
export interface ZIMMessageReceivedEventResult {
    /** message list */
    messageList: ZIMMessage[];
    /** Message received info */
    receivedInfo: ZIMMessageReceivedInfo;
}
/**
 * The message edited event callback result.
 *
 * @param messageList The message list.
 */
export interface ZIMMessageEditedEventResult {
    /** The message list. */
    messageList: ZIMMessage[];
}
/**
 * The message pinned event callback result.
 *
 * @param infos The message pin status change info list.
 */
export interface ZIMMessagePinStatusChangedEventResult {
    /** The message pin status change info list. */
    infos: ZIMMessagePinStatusChangeInfo[];
}
/**
 * event callback when the room connection status changes.
 *
 * @param roomID Room ID
 * @param state Room state
 * @param event Room state change event
 * @param extendedData Extended data
 */
export interface ZIMRoomStateChangedEventResult {
    /** Room ID */
    roomID: string;
    /** Room state */
    state: ZIMRoomState;
    /** Room state change event */
    event: ZIMRoomEvent;
    /** Extended data */
    extendedData: string;
}
/**
 * Triggered when room members join or leave.
 *
 * @param roomID Room ID
 * @param memberList Room member list
 */
export interface ZIMRoomMemberChangedEventResult {
    /** Room ID */
    roomID: string;
    /** Room member list */
    memberList: ZIMUserInfo[];
}
/**
 * Notification of room property changes.
 *
 * @param roomID Room ID
 * @param infos Room attribute change info list
 */
export interface ZIMRoomAttributesUpdatedEventResult {
    /** Room ID */
    roomID: string;
    /** Room attribute change info list */
    infos: ZIMRoomAttributesUpdateInfo[];
}
/**
 * Room user property update callback.
 *
 * @param roomID Room ID
 * @param infos Room member attribute change info list
 * @param operatedInfo Operated info
 */
export interface ZIMRoomMemberAttributesUpdatedEventResult {
    /** Room ID */
    roomID: string;
    /** Room member attribute change info list */
    infos: ZIMRoomMemberAttributesUpdateInfo[];
    /** Operated info */
    operatedInfo: ZIMRoomOperatedInfo;
}
/**
 * Group state change notification callback.
 *
 * @param state Group state
 * @param event Group state change event
 * @param operatedInfo Operated info
 * @param groupInfo Group info
 */
export interface ZIMGroupStateChangedEventResult {
    /** Group state */
    state: ZIMGroupState;
    /** Group state change event */
    event: ZIMGroupEvent;
    /** Operated info */
    operatedInfo: ZIMGroupOperatedInfo;
    /** Group info */
    groupInfo: ZIMGroupFullInfo;
}
/**
 * Group name update notification callback.
 *
 * @param groupID Group ID
 * @param groupName Group name
 * @param operatedInfo Operated info
 */
export interface ZIMGroupNameUpdatedEventResult {
    /** Group ID */
    groupID: string;
    /** Group name */
    groupName: string;
    /** Operated info */
    operatedInfo: ZIMGroupOperatedInfo;
}
/**
 * Group avatar URL update notification callback.
 *
 * @param groupID Group ID
 * @param groupAvatarUrl Group avatar URL
 * @param operatedInfo Operated info
 */
export interface ZIMGroupAvatarUrlUpdatedEventResult {
    /** Group ID */
    groupID: string;
    /** Group avatar URL */
    groupAvatarUrl: string;
    /** Operated info */
    operatedInfo: ZIMGroupOperatedInfo;
}
/**
 * Notification callback for group announcement updates.
 *
 * @param groupID Group ID
 * @param groupNotice Group notice
 * @param operatedInfo Operated info
 */
export interface ZIMGroupNoticeUpdatedEventResult {
    /** Group ID */
    groupID: string;
    /** Group notice */
    groupNotice: string;
    /** Operated info */
    operatedInfo: ZIMGroupOperatedInfo;
}
/**
 * Group alias update notification callback.
 *
 * @param groupID Group ID
 * @param groupAlias Group alias
 * @param operatedUserID Operated user ID
 */
export interface ZIMGroupAliasUpdatedEventResult {
    /** Group ID */
    groupID: string;
    /** Group alias */
    groupAlias: string;
    /** Operated user ID */
    operatedUserID: string;
}
/**
 * Group property update attributes callback.
 *
 * @param groupID Group ID
 * @param infoList Group attribute change info list
 * @param operatedInfo Operated info
 */
export interface ZIMGroupAttributesUpdatedEventResult {
    /** Group ID */
    groupID: string;
    /** Group attribute change info list */
    infoList: ZIMGroupAttributesUpdateInfo[];
    /** Operated info */
    operatedInfo: ZIMGroupOperatedInfo;
}
/**
 * Notification callback for group mute info updates.
 *
 * @param groupID Group ID
 * @param mutedInfo Group mute info
 * @param operatedInfo Operated info
 */
export interface ZIMGroupMutedInfoUpdatedEventResult {
    /** Group ID */
    groupID: string;
    /** Group mute info */
    mutedInfo: ZIMGroupMuteInfo;
    /** Operated info */
    operatedInfo: ZIMGroupOperatedInfo;
}
/**
 * Notification callback for group verification mode update.
 *
 * @param groupID Group ID
 * @param verifyInfo Group verify info
 * @param operatedInfo Operated info
 */
export interface ZIMGroupVerifyInfoUpdatedEventResult {
    /** Group ID */
    groupID: string;
    /** Group verify info */
    verifyInfo: ZIMGroupVerifyInfo;
    /** Operated info */
    operatedInfo: ZIMGroupOperatedInfo;
}
/**
 * This method will be called back when the group application list changes.
 *
 * @param action Group application list change action
 * @param applicationList Group application list
 */
export interface ZIMGroupApplicationListChangedEventResult {
    /** Group application list change action */
    action: ZIMGroupApplicationListChangeAction;
    /** Group application list */
    applicationList: ZIMGroupApplicationInfo[];
}
/**
 * This method will be called back when the group application list changes.
 *
 * @param applicationList Group application list
 */
export interface ZIMGroupApplicationUpdatedEventResult {
    /** Group application list */
    applicationList: ZIMGroupApplicationInfo[];
}
/**
 * Group member state change notification callback.
 *
 * @param groupID Group ID
 * @param state Group member state
 * @param event Group member state change event
 * @param userList Group member list
 * @param operatedInfo Operated info
 */
export interface ZIMGroupMemberStateChangedEventResult {
    /** Group ID */
    groupID: string;
    /** Group member state */
    state: ZIMGroupMemberState;
    /** Group member state change event */
    event: ZIMGroupMemberEvent;
    /** Group member list */
    userList: ZIMGroupMemberInfo[];
    /** Operated info */
    operatedInfo: ZIMGroupOperatedInfo;
}
/**
 * Group member basic information change notification.
 *
 * @param groupID Group ID
 * @param userList Group member list
 * @param operatedInfo Operated info
 */
export interface ZIMGroupMemberInfoUpdatedEventResult {
    /** Group ID */
    groupID: string;
    /** Group member list */
    userList: ZIMGroupMemberInfo[];
    /** Operated info */
    operatedInfo: ZIMGroupOperatedInfo;
}
/**
 * The notification callback for the call invitation created by the caller.
 *
 * @param callID Call ID
 * @param mode Call mode
 * @param caller Caller user ID
 * @param extendedData Extended data
 * @param timeout Call timeout
 * @param createTime Call create time
 * @param callUserList Call user list
 */
export interface ZIMCallInvitationCreatedEventResult {
    /** Call ID */
    callID: string;
    /** Call mode */
    mode: ZIMCallInvitationMode;
    /** Caller user ID */
    caller: string;
    /** Extended data */
    extendedData: string;
    /** Call timeout */
    timeout: number;
    /** Call create time */
    createTime: number;
    /** Call user list */
    callUserList: ZIMCallUserInfo[];
}
/**
 * The notification callback for the call invitation received by the invitee.
 *
 * @param callID Call ID
 * @param mode Call mode
 * @param caller Caller user ID
 * @param inviter Inviter user ID
 * @param extendedData Extended data
 * @param timeout Call timeout
 * @param createTime Call create time
 * @param callUserList Call user list
 */
export interface ZIMCallInvitationReceivedEventResult {
    /** Call ID */
    callID: string;
    /** Call mode */
    mode: ZIMCallInvitationMode;
    /** Caller user ID */
    caller: string;
    /** Inviter user ID */
    inviter: string;
    /** Extended data */
    extendedData: string;
    /** Call timeout */
    timeout: number;
    /** Call create time */
    createTime: number;
    /** Call user list */
    callUserList: ZIMCallUserInfo[];
}
/**
 * The notification callback received by the invitee to cancel the invitation.
 *
 * @param callID Call ID
 * @param mode Call invitation mode.
 * @param inviter Inviter user ID
 * @param extendedData Extended data
 */
export interface ZIMCallInvitationCancelledEventResult {
    /** Call ID */
    callID: string;
    /** Call invitation mode. */
    mode: ZIMCallInvitationMode;
    /** Inviter user ID */
    inviter: string;
    /** Extended data */
    extendedData: string;
}
/**
 * Callback for notification of called call invitation timeout.
 *
 * @param callID Call ID
 * @param mode Call mode
 */
export interface ZIMCallInvitationTimeoutEventResult {
    /** Call ID */
    callID: string;
    /** Call mode */
    mode: ZIMCallInvitationMode;
}
/**
 * Callback for notification of caller call invitation ended.
 *
 * @param callID Call ID
 * @param mode Call mode
 * @param caller Caller user ID
 * @param operatedUserID Operated user ID
 * @param extendedData Extended data
 * @param endTime Call end time
 */
export interface ZIMCallInvitationEndedEventResult {
    /** Call ID */
    callID: string;
    /** Call mode */
    mode: ZIMCallInvitationMode;
    /** Caller user ID */
    caller: string;
    /** Operated user ID */
    operatedUserID: string;
    /** Extended data */
    extendedData: string;
    /** Call end time */
    endTime: number;
}
/**
 * Call the notification of the user status in the invitation invitation.
 *
 * @param callID Call ID
 * @param callUserList Call user list
 */
export interface ZIMCallUserStateChangedEventResult {
    /** Call ID */
    callID: string;
    /** Call user list */
    callUserList: ZIMCallUserInfo[];
}
/**
 * This method will be called back when the blacklist is updated or changes occur.
 *
 * @param userList Blacklist user list
 * @param action Action type
 */
export interface ZIMBlacklistChangedEventResult {
    /** Blacklist user list */
    userList: ZIMUserInfo[];
    /** Action type */
    action: ZIMBlacklistChangeAction;
}
/**
 * This method will be called back when the  friend list is updated or changes occur.
 *
 * @param friendList Friend list
 * @param action Action type
 */
export interface ZIMFriendListChangedEventResult {
    /** Friend list */
    friendList: ZIMFriendInfo[];
    /** Action type */
    action: ZIMFriendListChangeAction;
}
/**
 * This callback will be triggered when there is an update in the friend information.
 *
 * @param friendList Friend info list
 */
export interface ZIMFriendInfoUpdatedEventResult {
    /** Friend info list */
    friendList: ZIMFriendInfo[];
}
/**
 * Friend application list change event callback.
 *
 * @param applicationList Friend application list
 * @param action Action type
 */
export interface ZIMFriendApplicationListChangedEventResult {
    /** Friend application list */
    applicationList: ZIMFriendApplicationInfo[];
    /** Action type */
    action: ZIMFriendApplicationListChangeAction;
}
/**
 * The current method will be called when there is an update in the friend request list.
 *
 * @param applicationList Friend application list
 */
export interface ZIMFriendApplicationUpdatedEventResult {
    /** Friend application list */
    applicationList: ZIMFriendApplicationInfo[];
}
/**
 * Triggered when the community list changes.
 *
 * @param changeInfoList List of community change information.
 */
export interface ZIMCommunityListChangedEventResult {
    /** List of community change information. */
    changeInfoList: ZIMCommunityChangeInfo[];
}
/**
 * Triggered when community information is updated.
 *
 * @param updateInfoList List of community information updates.
 */
export interface ZIMCommunityInfoUpdatedEventResult {
    /** List of community information updates. */
    updateInfoList: ZIMCommunityFullInfoUpdateInfo[];
}
/**
 * Triggered when a community member's state changes.
 *
 * @param communityID Community ID.
 * @param changeInfoList List of community member state changes.
 */
export interface ZIMCommunityMemberStateChangedEventResult {
    /** Community ID. */
    communityID: string;
    /** List of community member state changes. */
    changeInfoList: ZIMCommunityMemberStateChangeInfo[];
}
/**
 * Triggered when community member information is updated.
 *
 * @param communityID Community ID.
 * @param updateInfoList List of community member information updates.
 */
export interface ZIMCommunityMemberInfoUpdatedEventResult {
    /** Community ID. */
    communityID: string;
    /** List of community member information updates. */
    updateInfoList: ZIMCommunityMemberInfoUpdateInfo[];
}
/**
 * Triggered when the community channel list changes.
 *
 * @param communityID Community ID.
 * @param changeInfoList List of community channel changes.
 */
export interface ZIMCommunityChannelListChangedEventResult {
    /** Community ID. */
    communityID: string;
    /** List of community channel changes. */
    changeInfoList: ZIMCommunityChannelChangeInfo[];
}
/**
 * Triggered when community channel information is updated.
 *
 * @param communityID Community ID.
 * @param updateInfoList List of community channel information updates.
 */
export interface ZIMCommunityChannelInfoUpdatedEventResult {
    /** Community ID. */
    communityID: string;
    /** List of community channel information updates. */
    updateInfoList: ZIMCommunityChannelFullInfoUpdateInfo[];
}
