import { PrismaService } from '../../prisma/prisma.service';
import { NotificationType } from '@prisma/client';
interface CreateNotificationOptions {
    type: NotificationType;
    title: string;
    body: string;
    payload?: Record<string, any>;
    fcmToken?: string | null;
}
export declare class NotificationsService {
    private prisma;
    constructor(prisma: PrismaService);
    create(userId: string, opts: CreateNotificationOptions): Promise<{
        id: string;
        createdAt: Date;
        type: import("@prisma/client").$Enums.NotificationType;
        userId: string;
        body: string;
        title: string;
        payload: import("@prisma/client/runtime/library").JsonValue;
        read: boolean;
    }>;
    findAll(userId: string): Promise<{
        id: string;
        createdAt: Date;
        type: import("@prisma/client").$Enums.NotificationType;
        userId: string;
        body: string;
        title: string;
        payload: import("@prisma/client/runtime/library").JsonValue;
        read: boolean;
    }[]>;
    markRead(id: string, userId: string): Promise<{
        id: string;
        createdAt: Date;
        type: import("@prisma/client").$Enums.NotificationType;
        userId: string;
        body: string;
        title: string;
        payload: import("@prisma/client/runtime/library").JsonValue;
        read: boolean;
    }>;
    markAllRead(userId: string): Promise<import("@prisma/client").Prisma.BatchPayload>;
    private sendPush;
}
export {};
