import { CreateNotificationDto } from './dto/create-notification.dto';
import { DbService } from 'src/db/db.service';
import { CommonService } from 'src/common/common.service';
import { GetNotificationListDto } from './dto/get-notification-list.dto';
import mongoose from 'mongoose';
export declare class NotificationService {
    private readonly model;
    private readonly commonService;
    constructor(model: DbService, commonService: CommonService);
    createNotification(notificationDto: CreateNotificationDto, userId: string): Promise<mongoose.Document<unknown, {}, import("./entities/notification.entity").Notification, {}, {}> & import("./entities/notification.entity").Notification & {
        _id: mongoose.Types.ObjectId;
    } & {
        __v: number;
    }>;
    getNotificationList(dto: GetNotificationListDto, user: any): Promise<{
        unread: {
            total: number;
            pageNumber: number;
            count: number;
            data: (mongoose.FlattenMaps<{
                notification: {
                    title: string;
                    body: string;
                };
                data: {
                    type: string;
                    redirectPath: string;
                    order_id: string;
                    cart_id: string;
                };
                userId: mongoose.Types.ObjectId;
                resturantId: mongoose.Types.ObjectId | null;
                isRead: boolean;
                isDeleted: boolean;
                isVendor: boolean;
                isCustomer: boolean;
                isDriver: boolean;
            }> & {
                _id: mongoose.Types.ObjectId;
            } & {
                __v: number;
            })[];
        };
        read: {
            total: number;
            pageNumber: number;
            count: number;
            data: (mongoose.FlattenMaps<{
                notification: {
                    title: string;
                    body: string;
                };
                data: {
                    type: string;
                    redirectPath: string;
                    order_id: string;
                    cart_id: string;
                };
                userId: mongoose.Types.ObjectId;
                resturantId: mongoose.Types.ObjectId | null;
                isRead: boolean;
                isDeleted: boolean;
                isVendor: boolean;
                isCustomer: boolean;
                isDriver: boolean;
            }> & {
                _id: mongoose.Types.ObjectId;
            } & {
                __v: number;
            })[];
        };
    }>;
    markAsRead(notificationId: string): Promise<{
        success: boolean;
        message: string;
        data?: undefined;
    } | {
        success: boolean;
        message: string;
        data: mongoose.Document<unknown, {}, import("./entities/notification.entity").Notification, {}, {}> & import("./entities/notification.entity").Notification & {
            _id: mongoose.Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    markAllAsRead(user: any): Promise<{
        success: boolean;
        message: string;
        modifiedCount: number;
    }>;
    deleteNotification(notificationId: string, userId: string): Promise<mongoose.Document<unknown, {}, import("./entities/notification.entity").Notification, {}, {}> & import("./entities/notification.entity").Notification & {
        _id: mongoose.Types.ObjectId;
    } & {
        __v: number;
    }>;
    deleteAllNotifications(userId: string): Promise<mongoose.mongo.DeleteResult>;
}
