import type { MessageInfo, MessageType } from 'tuikit-atomicx-react/chat'; interface ScrollPosition { /** The target scroll position from the top */ top: number; /** The scroll behavior, defaults to 'smooth' */ behavior?: ScrollBehavior; } interface QuoteContent { messageAbstract: string; messageID: string; messageSender: string; messageSequence: number; messageTime: number; messageType: number; version: number; } interface CloudCustomData { messageReply: Partial; } interface MessageAction { key: 'copy' | 'recall' | 'quote' | 'forward' | 'delete' | string; label?: string; icon?: React.ReactNode; onClick?: (message: MessageInfo) => void; visible?: ((message: MessageInfo) => boolean) | boolean; component?: React.ComponentType<{ message: MessageInfo }>; className?: string; style?: React.CSSProperties; } type MessageAlignmentType = 'left' | 'right' | 'two-sided'; interface ReadReceiptInfo { readCount: number | undefined; unreadCount: number | undefined; isPeerRead: boolean | undefined; timestamp: number; } // interface MessageInfo { // conversationID: string; // ID?: string; // messageID?: string; // sequence?: number; // time?: number; // } enum MessageListType { HISTORY = 0, PINNED = 1, LATEST = 2, } enum MessageFetchDirection { OLDER = 0, NEWER = 1, } interface MessageFetchOption { conversationID: string; messageListType: MessageListType; cursor?: MessageInfo; direction?: MessageFetchDirection; pageCount?: number; messageTypeList?: MessageType[]; } export type { ScrollPosition, QuoteContent, CloudCustomData, MessageAction, MessageAlignmentType, ReadReceiptInfo, MessageInfo, MessageFetchOption, }; export { MessageListType, MessageFetchDirection, };