import { AuditService } from '../audit/audit.service';
import { RequestUser } from '../common/request-user';
import { PrismaService } from '../database/prisma.service';
import { SendNotificationDto } from './dto/send-notification.dto';
export declare class NotificationsService {
    private readonly audit;
    private readonly prisma;
    constructor(audit: AuditService, prisma: PrismaService);
    send(dto: SendNotificationDto, user: RequestUser): Promise<{
        status: string;
        notificationId: string;
        channel: "SMS" | "WHATSAPP" | "PUSH";
        criticalPath: boolean;
    }>;
    listMine(user: RequestUser, unreadOnly?: string): import(".prisma/client").Prisma.PrismaPromise<{
        status: import(".prisma/client").$Enums.NotificationStatus;
        data: import("@prisma/client/runtime/library").JsonValue;
        id: string;
        estateId: string;
        title: string;
        channel: import(".prisma/client").$Enums.NotificationChannel;
        createdAt: Date;
        userId: string | null;
        body: string;
        announcementId: string | null;
        readAt: Date | null;
        sentAt: Date | null;
    }[]>;
    markRead(id: string, user: RequestUser): Promise<{
        updated: number;
    }>;
    private normalizeChannel;
}
