import { EduStoreBase } from '../base';
import { Conversation, MessageItem } from './struct';
/**
 * `MessagesStore` 类用于处理各种聊天消息及IM信令控制。
 */
/** @en
 * The `MessagesStore` class is used for dealing with hat messages and various kinds of chat signal that controls the IM state.
 */
export declare class MessagesStore extends EduStoreBase {
    private _disposers;
    private _dataStore;
    /**
     * 是否禁止聊天
     */
    /** @en
     * Whether the chat is muted or not
     */
    get chatMuted(): boolean;
    /**
     * 历史消息列表
     */
    /** @en
     * Chat history message list
     */
    get roomChatMessages(): MessageItem[];
    /**
     * 会话列表
     */
    /** @en
     * Conversation list
     */
    get roomChatConversations(): Conversation[];
    /**
     * 未读消息数量
     */
    /** @en
     * Number of unread message count
     */
    get unreadMessageCount(): number;
    /**
     *
     */
    /** @en
     *
     */
    get chatConvasationUserUuid(): Map<string, Conversation>;
    /**
     *
     */
    get chatConvasationMessageId(): Map<string, MessageItem>;
    /**
     *
     */
    get roomChatMessagesMessageId(): Map<string, MessageItem>;
    /**
     *
     */
    get newMessageFlag(): boolean;
    /**
     * 增加一条消息到消息列表
     * @param args
     */
    /** @en
     * Adds a message to the message list
     * @param args
     */
    addChatMessage(args: MessageItem): void;
    /**
     *
     * @param conversation
     */
    /**
     *
     * @param conversation
     */
    addRoomChatConversation(conversation: Conversation): void;
    /**
     *
     * @param args
     * @param conversation
     */
    /** @en
     *
     * @param args
     * @param conversation
     */
    addConversationChatMessage(args: MessageItem, conversation: Conversation): void;
    /**
     * 获取房间历史的聊天消息
     * @param data
     * @returns
     */
    /** @en
     * 获取房间历史的聊天消息
     * @param data
     * @returns
     */
    getHistoryChatMessage(data: {
        nextId: string;
        sort: number;
    }): Promise<any>;
    /**
     * 根据学生 ID 获取学生的提问消息
     * @param data
     */
    /** @en
     * 根据学生 ID 获取学生的提问消息
     * @param data
     */
    getConversationHistoryChatMessage(data: {
        nextId: string;
        sort: number;
        studentUuid: string;
    }): Promise<void>;
    /**
     * 获取 提问列表用户信息
     * @param data
     */
    /** @en
     * 获取 提问列表用户信息
     * @param data
     */
    getConversationList(data: {
        nextId: string;
        sort: number;
    }): Promise<any>;
    /**
     * 禁止聊天
     */
    /** @en
     * Mutes chat
     */
    muteChat(): Promise<void>;
    /**
     * 解除禁止聊天
     */
    /** @en
     * Unmutes chat
     */
    unmuteChat(): Promise<void>;
    /**
     * 重置未读消息数
     */
    /** @en
     * Resets unread messages count
     */
    resetUnreadMessageCount(): void;
    /**
     * 增加未读消息总数
     */
    /** @en
     * Increment unread messages count
     */
    incrementUnreadMessageCount(): void;
    /**
     * 发送消息
     * @param message
     */
    /** @en
     * Sends a message
     * @param message
     */
    sendMessage(message: string): Promise<void>;
    /**
     * 发送会话消息
     * @param message
     * @param conversation
     */
    /** @en
     * Sends message to a conversation
     * @param message
     * @param conversation
     */
    sendMessageToConversation(message: string, conversation: Conversation): Promise<void>;
    private _setEventHandler;
    onInstall(): void;
    onDestroy(): void;
}
