import { Repository } from 'typeorm';
import { Notification } from './entities/notification.entity.js';
import { CreateNotificationDto } from './dto/create-notification.dto.js';
import { QueryNotificationDto } from './dto/query-notification.dto.js';
import { PaginatedResponseDto } from '../common/dto/pagination.dto.js';
export declare class NotificationsService {
    private readonly notificationsRepository;
    constructor(notificationsRepository: Repository<Notification>);
    create(createNotificationDto: CreateNotificationDto): Promise<Notification>;
    findAll(userId: string, query: QueryNotificationDto): Promise<PaginatedResponseDto<Notification>>;
    getUnreadCount(userId: string): Promise<number>;
    markAsRead(id: string, userId: string): Promise<Notification>;
    markAllAsRead(userId: string): Promise<void>;
    bulkMarkAsRead(userId: string, ids: string[]): Promise<void>;
    remove(id: string, userId: string): Promise<void>;
    bulkRemove(userId: string, ids: string[]): Promise<void>;
    cleanupOldNotifications(): Promise<void>;
}
