import { PrismaClient } from "@prisma/client";
import { Message } from "../../../domain/entities/Message";
import { IMessageRepository } from "../../../domain/repositories/IMessageRepository";
export declare class MessagePrismaRepository implements IMessageRepository {
    private prisma;
    constructor(prisma: PrismaClient);
    findById(id: string, organizationId: string): Promise<Message | null>;
    findAll(organizationId: string, conversationId?: string): Promise<Message[]>;
    findByConversationId(conversationId: string, organizationId: string, limit?: number, offset?: number): Promise<Message[]>;
    findByExternalMessageId(externalMessageId: string, organizationId: string): Promise<Message[]>;
    countByConversationId(conversationId: string, organizationId: string): Promise<number>;
    countByConversationIdAndStatus(conversationId: string, organizationId: string, status: string): Promise<number>;
    countByConversationIdAndDate(conversationId: string, organizationId: string, date: Date): Promise<number>;
    countUnreadByConversationId(conversationId: string, organizationId: string): Promise<number>;
    countBySenderId(senderId: string, organizationId: string): Promise<number>;
    create(messageData: any): Promise<Message>;
    update(id: string, updateData: any): Promise<Message>;
    save(message: Message): Promise<Message>;
    saveOrUpdate(message: Message): Promise<Message>;
    delete(id: string, organizationId: string): Promise<void>;
}
//# sourceMappingURL=MessagePrismaRepository.d.ts.map