import { EduScenarioAppStore } from './index';
import { ChatMessage, NotifyMessage, UserInfo, NotifyMessageType, PrivateChatMessage } from '../api/declare';
import { EduTextMessage } from 'agora-rte-sdk';
import HxChatClient from '../utilities/hx-chat';
export declare class MessageStore {
    private appStore;
    hxChatClient: HxChatClient;
    constructor(appStore: EduScenarioAppStore);
    transformEduMessage2ChatMessage(message: EduTextMessage): ChatMessage;
    initIM(): Promise<void>;
    reset(): void;
    chatVisible: boolean;
    chatMessageList: ChatMessage[];
    notifyMessageList: NotifyMessage[];
    unreadChatMessageCount: number;
    hasUnreadNotifyMessage: boolean;
    notifyMessageDialogVisible: boolean;
    inOutNotificationLimitCount: number;
    privateChatMessage: PrivateChatMessage;
    get roomStore(): import("./room").RoomStore;
    get roomInfo(): import("../api/declare").RoomInfo;
    get roomApi(): import("../services/room-api").RoomApi;
    get roomProperties(): {
        im: any;
        userPermission: {
            micAccess: boolean;
            cameraAccess: boolean;
        };
        roomInfo: {
            roomId: string;
            roomName: string;
            roomPassword: string;
        };
        share: {
            type: import("./room").ShareType;
            screen: {
                ownerInfo: UserInfo;
                streamInfo: any;
            };
        };
        board: {
            info: {
                boardId: string;
                boardToken: string;
                appIdentifier: string;
            };
            state: {
                follow: number;
                grantUsers: string[];
            };
            ownerInfo: UserInfo;
        };
        schedule: {
            state: import("./room").RoomState;
        };
        record: {
            ownerInfo: UserInfo;
            state: number;
            recordId: string;
            recordingTime: number;
            startTime?: number | undefined;
            sid: string;
            resourceId: string;
        };
        processes: {
            micAccess: any;
            cameraAccess: any;
        };
        flexProps?: any;
    };
    get userStore(): import("./user").UserStore;
    toggleNotifyMessageDialog(v: boolean): void;
    setChatVisible(visible: boolean): void;
    addNotifyMessage(msg: {
        sender: UserInfo;
        type: NotifyMessageType;
        payload?: any;
    }): void;
    sendChatMessage(content: string): Promise<void>;
    resendChatMessage(messageId: number): Promise<void>;
    addChatMessage(message: ChatMessage): void;
    setUnreadChatMessageCount(count?: number): void;
    setUserInOutNotificationLimitCount(count: number): void;
    sendPrivateChatMessage(targetUserId: string, content: string): Promise<unknown>;
    dealNotifyMessageEvent(messageId: number): Promise<void>;
}
