import { DataSource, Repository } from 'typeorm';
import { Notification } from './entities/notification.entity';
import { NotificationConfig } from './entities/notification-config.entity';
import { NotificationGateway } from './notification.gateway';
import { SendNotificationDto } from './dto/send-notification.dto';
import { CreateConfigDto } from './dto/create-config.dto';
import { PushService } from './push.service';
import { MailsService } from '../mails/mails.service';
import { WhatsappService } from './whatsapp.service';
export declare class NotificationsService {
    private readonly notificationRepository;
    private readonly configRepository;
    private readonly dataSource;
    private readonly gateway;
    private readonly pushService;
    private readonly mailsService;
    private readonly whatsappService;
    constructor(notificationRepository: Repository<Notification>, configRepository: Repository<NotificationConfig>, dataSource: DataSource, gateway: NotificationGateway, pushService: PushService, mailsService: MailsService, whatsappService: WhatsappService);
    send(dto: SendNotificationDto): Promise<Notification>;
    private dispatchExtraChannels;
    sendEmailOtp(email: string, otp: string | number, name?: string): Promise<void>;
    findAll(userId: number, unreadOnly?: boolean): Promise<Notification[]>;
    private getUserRoleIds;
    getUnreadCount(userId: number): Promise<number>;
    markRead(id: number, userId: number): Promise<void>;
    markAllRead(userId: number): Promise<void>;
    createConfig(data: CreateConfigDto): Promise<NotificationConfig>;
    findAllConfigs(): Promise<NotificationConfig[]>;
    updateConfig(id: number, data: {
        is_active?: boolean;
        description?: string;
    }): Promise<void>;
    deleteConfig(id: number): Promise<void>;
}
