import { Repository } from "typeorm";
import { ChatMessage, SenderType, ReceiverType, ParticipantRoleType } from "../entities/chat-message.entity";
export declare class ChatMessageRepository {
    private readonly chatMessageEntity;
    constructor(chatMessageEntity: Repository<ChatMessage>);
    save(messageData: Partial<ChatMessage>): Promise<ChatMessage>;
    findByParams(options: {
        where?: any;
        relations?: string[];
        select?: string[];
        orderBy?: any;
        take?: number;
        skip?: number;
        findOne?: boolean;
    }): Promise<ChatMessage | ChatMessage[]>;
    getChatHistory(chatRoomId: number, limit?: number, skip?: number): Promise<ChatMessage[]>;
    markMessagesAsRead(chatRoomId: number, userId: number, userType: ParticipantRoleType): Promise<void>;
    getUnreadCount(participantType: string, participantId: number): Promise<number>;
    saveMessage(chatRoomId: number, senderType: SenderType, senderId: number, receiverType: ReceiverType, receiverId: number, messageText: string): Promise<ChatMessage>;
}
