import 'package:tencent_cloud_chat_sdk/enum/V2TimAdvancedMsgListener.dart'; import 'package:tencent_cloud_chat_sdk/enum/V2TimSimpleMsgListener.dart'; import 'package:tencent_cloud_chat_sdk/enum/get_group_message_read_member_list_filter.dart'; import 'package:tencent_cloud_chat_sdk/enum/history_msg_get_type_enum.dart'; import 'package:tencent_cloud_chat_sdk/enum/message_priority_enum.dart'; import 'package:tencent_cloud_chat_sdk/enum/offlinePushInfo.dart'; import 'package:tencent_cloud_chat_sdk/enum/receive_message_opt_enum.dart'; import 'package:tencent_cloud_chat_sdk/models/v2_tim_callback.dart' if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_callback.dart'; import 'package:tencent_cloud_chat_sdk/models/v2_tim_group_message_read_member_list.dart' if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_group_message_read_member_list.dart'; import 'package:tencent_cloud_chat_sdk/models/v2_tim_message.dart' if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_message.dart'; import 'package:tencent_cloud_chat_sdk/models/v2_tim_message_change_info.dart' if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_message_change_info.dart'; import 'package:tencent_cloud_chat_sdk/models/v2_tim_message_list_result.dart' if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_message_list_result.dart'; import 'package:tencent_cloud_chat_sdk/models/v2_tim_message_online_url.dart' if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_message_online_url.dart'; import 'package:tencent_cloud_chat_sdk/models/v2_tim_message_receipt.dart' if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_message_receipt.dart'; import 'package:tencent_cloud_chat_sdk/models/v2_tim_message_search_param.dart' if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_message_search_param.dart'; import 'package:tencent_cloud_chat_sdk/models/v2_tim_message_search_result.dart' if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_message_search_result.dart'; import 'package:tencent_cloud_chat_sdk/models/v2_tim_msg_create_info_result.dart' if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_msg_create_info_result.dart'; import 'package:tencent_cloud_chat_sdk/models/v2_tim_value_callback.dart' if (dart.library.html) 'package:tencent_cloud_chat_sdk/web/compatible_models/v2_tim_value_callback.dart'; class MessageListResponse { final bool haveMoreData; final List data; MessageListResponse({required this.haveMoreData, required this.data}); } abstract class MessageService { Future> getHistoryMessageList({ HistoryMsgGetTypeEnum getType = HistoryMsgGetTypeEnum.V2TIM_GET_LOCAL_OLDER_MSG, String? userID, String? groupID, int lastMsgSeq, required int count, String? lastMsgID, List? messageTypeList, }); Future getHistoryMessageListWithComplete({ HistoryMsgGetTypeEnum getType = HistoryMsgGetTypeEnum.V2TIM_GET_LOCAL_OLDER_MSG, String? userID, String? groupID, int lastMsgSeq, required int count, String? lastMsgID, List? messageTypeList, }); Future getHistoryMessageListV2({ HistoryMsgGetTypeEnum getType = HistoryMsgGetTypeEnum.V2TIM_GET_LOCAL_OLDER_MSG, String? userID, String? groupID, int lastMsgSeq, required int count, String? lastMsgID, List? messageTypeList, }); Future addSimpleMsgListener({ required V2TimSimpleMsgListener listener, }); Future addAdvancedMsgListener({ required V2TimAdvancedMsgListener listener, }); Future removeSimpleMsgListener({V2TimSimpleMsgListener? listener}); Future createTextMessage({required String text}); Future createFaceMessage({required int index, required String data}); Future createCustomMessage({required String data}); Future createTextAtMessage({required String text, required List atUserList}); Future> sendMessage( {required String id, // 自己创建的ID required String receiver, required String groupID, MessagePriorityEnum priority = MessagePriorityEnum.V2TIM_PRIORITY_NORMAL, bool onlineUserOnly = false, bool isExcludedFromUnreadCount = false, bool needReadReceipt = false, OfflinePushInfo? offlinePushInfo, String? cloudCustomData, // 云自定义消息字段,只能在消息发送前添加 String? localCustomData, bool isExcludedFromContentModeration}); Future> sendReplyMessage({ required String id, // 自己创建的ID required String receiver, required String groupID, OfflinePushInfo? offlinePushInfo, bool needReadReceipt = false, required V2TimMessage replyMessage, // 被回复的消息 }); Future> reSendMessage({required String msgID, bool onlineUserOnly}); Future> modifyMessage({required V2TimMessage message}); Future createImageMessage({String? imageName, String? imagePath, dynamic inputElement}); Future createVideoMessage( {String? videoPath = "", String? type = "", int? duration = 0, String? snapshotPath = "", dynamic inputElement}); Future createFileMessage( {String? filePath, required String fileName, dynamic inputElement}); Future createLocationMessage( {required String desc, required double longitude, required double latitude}); Future createSoundMessage({ required String soundPath, required int duration, }); Future createForwardMessage({ required String msgID, }); Future createMergerMessage({ required List msgIDList, required String title, required List abstractList, required String compatibleText, }); Future deleteMessageFromLocalStorage({ required String msgID, Object? webMessageInstance, }); Future revokeMessage({required String msgID, Object? webMessageInstance}); Future clearC2CHistoryMessage({ required String userID, }); Future clearGroupHistoryMessage({ required String groupID, }); Future markC2CMessageAsRead({ required String userID, }); Future markGroupMessageAsRead({ required String groupID, }); Future removeAdvancedMsgListener({V2TimAdvancedMsgListener? listener}); Future?> downloadMergerMessage({ required String msgID, }); Future deleteMessages({required List msgIDs, List? webMessageInstanceList}); Future?> findMessages({ required List messageIDList, }); Future> searchLocalMessages({ required V2TimMessageSearchParam searchParam, }); Future setLocalCustomInt({required String msgID, required int localCustomInt}); Future setLocalCustomData({required String msgID, required String localCustomData}); Future setC2CReceiveMessageOpt({ required List userIDList, required ReceiveMsgOptEnum opt, }); Future setGroupReceiveMessageOpt({ required String groupID, required ReceiveMsgOptEnum opt, }); Future> getGroupMessageReadMemberList({ required String messageID, required GetGroupMessageReadMemberListFilter filter, int nextSeq = 0, int count = 100, }); Future>> getMessageReadReceipts({ required List messageIDList, }); Future sendMessageReadReceipts({ required List messageIDList, }); Future> getMessageOnlineUrl({ required String msgID, }); Future downloadMessage({ required String msgID, required int messageType, required int imageType, // 图片类型,仅messageType为图片消息是有效 required bool isSnapshot, // 是否是视频封面,仅messageType为视频消息是有效 }); Future translateText(String text, String target); }