import { AnyObject } from '../../../../shared/types'; import { UploadFileInfo } from 'naive-ui'; import { CHAT_TYPE, MESSAGE_TYPE, ROLE_TYPE, STATUS } from '../constants'; type ItemContent = { chatMessageType: MESSAGE_TYPE; msg: string; referenceContent?: any; forwardMessageList?: AnyObject[]; messageTemplate?: any; messageTemplateData?: any; fileUrl?: string; avStatus?: string; [key: string]: any; }; export type MsgListItem = { id: string; sessionKey: string; content: ItemContent; senderName: string; sendTime: string; sender: string; status: string; senderAvatar: string; __content: string; __time?: string; __sendTime?: string; [key: string]: any; }; export type SessionItem = { id: string; sessionKey: string; receiver: string; createdTime: string; avatar: string; name: string; defaultName: string; chatType: CHAT_TYPE; roleInfo: ROLE_TYPE; status: STATUS; sortTime: string; topping: boolean; unreadNum: number; updatedTime: string; lastMessageContent: string; sender?: string; lastMessageId?: string; lastMessage?: ItemContent; lastMessageSendTime?: string; lastMessageStatus?: string; lastSenderName?: string; businessInfo?: { uiSetting?: AnyObject; topicInfo?: { param?: AnyObject; [key: string]: any; }; }; labelList?: AnyObject[]; notDisturb: boolean; }; export type IState = { orgId: string; currentSessionItem: SessionItem; id: string; userInfo: AnyObject; msgList: MsgListItem[]; sessionList: SessionItem[]; isChangeSession: boolean; isUpdateSession: boolean; currentReferenceMsg: null | AnyObject; currentReEditMsg: null | AnyObject; showVideo: boolean; currentAVMsg: AnyObject; currentGroupUser: AnyObject[]; showMultipleVideo: boolean; userDetail: { show: boolean; position: { x: number; y: number; }; userId: string; info: AnyObject | null; }; isForward: boolean; loading: boolean; [key: string]: any; }; export type FileOptions = { file: UploadFileInfo; fileList: Array; }; type TurnServer = { url: string; username?: string; credential?: string; credentialType?: string; }; export type ProxyServer = Partial<{ websocketProxy: string; loggerProxy: string; turnServer: Array; iceTransportPolicy: 'all' | 'relay'; }>; export type ImageItem = { id: string; fileUrl: string; senderName: string; fileSize: string; sendTime: string; fileName: string; width?: number; height?: number; [key: string]: any; }; export {};