import { CreateNotificationDto } from "../dto/create-notification.dto";
import { NotificationRepository } from "../repositories/notification.repository";
import { CustomerNotificationRepository } from "../repositories/customer_notification.repository";
import { QueryParams } from "src/common/interfaces/query-params.interface";
import { CustomerNotification } from "../entities/customer-notification.entity";
import { FirebaseNotificationService } from "./firebase-notification.service";
import { AuthService } from "../../auth/v1/auth.service";
import { SendNotificationDto } from "../dto/send-notification.dto";
import { SendPushByFcmTokenDto } from "../dto/send-push-by-fcm-token.dto";
import { CustomerLoginRepository } from "../../customers/repositories/customer-login.repository";
import { ConfigService } from "@nestjs/config";
import { NotificationFilterDto } from "../dto/notification-filter.dto";
export declare class NotificationService {
    private readonly notificationRepository;
    private readonly customerNotificationRepository;
    private readonly firebaseService;
    private readonly authService;
    private readonly customerLoginRepository;
    private readonly configService;
    constructor(notificationRepository: NotificationRepository, customerNotificationRepository: CustomerNotificationRepository, firebaseService: FirebaseNotificationService, authService: AuthService, customerLoginRepository: CustomerLoginRepository, configService: ConfigService);
    create(createNotificationDto: CreateNotificationDto): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    sendNotification(sendNotificationDto: SendNotificationDto): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    sendPushByFcmToken(dto: SendPushByFcmTokenDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    sendCustomerNotification(sendNotificationDto: SendNotificationDto): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    findAll(filter: NotificationFilterDto, user_id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    findOne(id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    markAsRead(id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    remove(id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    updateNotificationByUserIdAndTripId(userId: number, tripId: number): Promise<import("typeorm").UpdateResult>;
    updateNotificationByTripIdExcludingUser(userId: number, tripId: number): Promise<import("typeorm").UpdateResult>;
    updateNotificationByTripId(tripId: number): Promise<import("typeorm").UpdateResult>;
    findAllCustomerNotifications(params: QueryParams<CustomerNotification>): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    findOneCustomerNotification(id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    markCustomerNotificationAsRead(id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    removeCustomerNotification(id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    updateNotificationByCustomerIdAndTripId(customerId: number, tripId: number): Promise<import("typeorm").UpdateResult>;
    updateNotificationByTripIdExcludingCustomer(customerId: number, tripId: number): Promise<import("typeorm").UpdateResult>;
}
