import { Model } from "mongoose";
import { FirebaseProvider } from "src/common/firebase/firebase.provider";
import { UserDevicesService } from "src/user-devices/user-devices.service";
import { AlertType } from "./alert.types";
import { Notification } from "src/schema/notificatiom.schema";
import { ResponseService } from "src/common/service/response.service";
import { Users } from "src/schema/users.schema";
import { Response } from "express";
export declare class AlertsService {
    private readonly firebase;
    private readonly devicesService;
    private readonly resService;
    private readonly notificationModel;
    private readonly userModel;
    constructor(firebase: FirebaseProvider, devicesService: UserDevicesService, resService: ResponseService, notificationModel: Model<Notification>, userModel: Model<Users>);
    sendAlert(userId: string, type: AlertType, title: string, message: string, data: Record<string, any>): Promise<(import("mongoose").Document<unknown, {}, Notification, {}, {}> & Notification & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }) | undefined>;
    getUserNotifications(res: Response, userId: string, page?: number, limit?: number): Promise<Response<any, Record<string, any>>>;
    invoiceSent(userId: string, invoice: any): Promise<(import("mongoose").Document<unknown, {}, Notification, {}, {}> & Notification & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }) | undefined>;
    estimateSent(userId: string, estimate: any): Promise<(import("mongoose").Document<unknown, {}, Notification, {}, {}> & Notification & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }) | undefined>;
    invoicePaid(userId: string, invoice: any): Promise<(import("mongoose").Document<unknown, {}, Notification, {}, {}> & Notification & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }) | undefined>;
    estimateAccepted(userId: string, estimate: any): Promise<(import("mongoose").Document<unknown, {}, Notification, {}, {}> & Notification & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }) | undefined>;
    estimateRejected(userId: string, estimate: any): Promise<(import("mongoose").Document<unknown, {}, Notification, {}, {}> & Notification & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }) | undefined>;
    invoiceDue(userId: string, invoice: any): Promise<(import("mongoose").Document<unknown, {}, Notification, {}, {}> & Notification & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }) | undefined>;
    invoiceOverdue(userId: string, invoice: any): Promise<(import("mongoose").Document<unknown, {}, Notification, {}, {}> & Notification & Required<{
        _id: import("mongoose").Types.ObjectId;
    }> & {
        __v: number;
    }) | undefined>;
}
