import { EduRoleTypeEnum } from '../../../..';
/**
 * 用户信息
 */
/** @en
 * User info
 */
interface UserInfo {
    userUuid: string;
    userName: string;
    role: EduRoleTypeEnum;
}
/**
 * 消息扩展信息
 */
/** @en
 * Extra info of a chat message
 */
export interface MessageExt {
    range: number;
    userName: string;
    userUuid: string;
}
/**
 * 历史消息
 */
/** @en
 * History message
 */
export interface IHistoryChatMessage {
    message: string;
    sendTime: number;
    sequences: string;
    fromUser: UserInfo;
    messageId: string;
    ext?: MessageExt;
}
/**
 * 历史消息
 */
/** @en
 * History message
 */
export declare class HistoryChatMessage {
    message: string;
    sendTime: number;
    sequences: string;
    fromUser: UserInfo;
    messageId: string;
    ext?: MessageExt;
    constructor(data: IHistoryChatMessage);
}
/**
 * 聊天消息对象
 */
/** @en
 * Message object
 */
export declare class MessageItem {
    id: string;
    ts: number;
    messageId: string;
    content: string;
    role: EduRoleTypeEnum;
    isOwn?: boolean;
    userName: string;
    unread?: boolean;
    isBroadcast: boolean;
    constructor(data: {
        id: string;
        ts: number;
        messageId: string;
        content: string;
        role: EduRoleTypeEnum;
        isOwn?: boolean;
        userName: string;
        unread?: boolean;
        isBroadcast: boolean;
    });
    toMessage(): {
        id: string;
        uid: string;
        userName: string;
        role: string;
        timestamp: number;
        content: string;
        isOwn: boolean | undefined;
        unread: boolean | undefined;
        isBroadcast: boolean;
    };
}
/**
 * 会话对象
 */
/** @en
 * Conversation object
 */
export declare class Conversation {
    userUuid: string;
    userName: string;
    role?: EduRoleTypeEnum;
    lastMessageTs?: number;
    unreadMessageCount: number;
    messages: MessageItem[];
    timestamp?: number;
    constructor(data: {
        userUuid: string;
        userName: string;
        role?: EduRoleTypeEnum;
        lastMessageTs?: number;
        unreadMessageCount: number;
        messages: MessageItem[];
        timestamp?: number;
    });
}
export {};
