import { ChatMessage as BringgChatMessage } from '@bringg/types';
import StoreEntity from '../../Core/StoreEntity';
import Session from '../../Services/Identity/Session';
import { ChatMessageResponse, CreateMessageRequest, CreateMessageResponse, FetchMessagesRequest } from '../ChatMessage.consts';
export default class ChatMessage extends StoreEntity<BringgChatMessage> {
    mapByChatConversations: Map<number, BringgChatMessage[]>;
    onChatMessagesUpdateEvent: (messagesById: Map<number, BringgChatMessage[]>) => void;
    constructor(session: Session);
    onChatMessagesUpdate: (fn: (messagesById: Map<number, BringgChatMessage[]>) => void) => void;
    getChatMessages(id: number): BringgChatMessage[];
    fetchMessages(request: FetchMessagesRequest): Promise<ChatMessageResponse>;
    createMessages(requests: CreateMessageRequest[]): Promise<CreateMessageResponse>;
}
