import { PrismaService } from '../../prisma/prisma.service';
export declare class MessagesService {
    private prisma;
    constructor(prisma: PrismaService);
    getMessages(groupId: string, page?: any, limit?: any): Promise<({
        user: {
            id: string;
            name: string;
            profilePicture: string | null;
        };
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        type: import("@prisma/client").$Enums.MessageType;
        groupId: string;
        userId: string;
        body: string | null;
        pinned: boolean;
        mediaUrl: string | null;
    })[]>;
    create(groupId: string, userId: string, body: string, type?: string, mediaUrl?: string): Promise<{
        user: {
            id: string;
            name: string;
            profilePicture: string | null;
        };
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        type: import("@prisma/client").$Enums.MessageType;
        groupId: string;
        userId: string;
        body: string | null;
        pinned: boolean;
        mediaUrl: string | null;
    }>;
    markRead(messageId: string, userId: string): Promise<{
        id: string;
        userId: string;
        messageId: string;
        readAt: Date;
    }>;
    pinMessage(id: string, pinned: boolean): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        type: import("@prisma/client").$Enums.MessageType;
        groupId: string;
        userId: string;
        body: string | null;
        pinned: boolean;
        mediaUrl: string | null;
    }>;
    delete(id: string): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        type: import("@prisma/client").$Enums.MessageType;
        groupId: string;
        userId: string;
        body: string | null;
        pinned: boolean;
        mediaUrl: string | null;
    }>;
    isMember(groupId: string, userId: string): Promise<boolean>;
}
