import { Repository } from 'typeorm';
import { Announcement } from './entities/announcement.entity';
import { Notification } from '../notifications/entities/notification.entity';
import { User } from '../users/entities/user.entity';
import { CreateAnnouncementDto } from './dto/create-announcement.dto';
import { UpdateAnnouncementDto } from './dto/update-announcement.dto';
import { MailService } from '../notifications/mail.service';
export declare class AnnouncementsService {
    private readonly announcementRepo;
    private readonly notificationRepo;
    private readonly userRepo;
    private readonly mailService;
    constructor(announcementRepo: Repository<Announcement>, notificationRepo: Repository<Notification>, userRepo: Repository<User>, mailService: MailService);
    findAll(user: User): Promise<Announcement[]>;
    findAllAdmin(): Promise<Announcement[]>;
    findOne(id: number): Promise<Announcement>;
    create(dto: CreateAnnouncementDto, author: User): Promise<Announcement>;
    update(id: number, dto: UpdateAnnouncementDto, user: User): Promise<Announcement>;
    publish(id: number, user: User): Promise<Announcement>;
    remove(id: number, user: User): Promise<{
        message: string;
    }>;
    private publishAndNotify;
    private getRecipients;
}
