import { Repository } from 'typeorm';
import { Alert } from './entity/alert.entity';
import { AlertStage } from 'common/enum/alert.enum';
import { CreateAlertDto } from './dto/create-alert.dto';
import { ReviewAlertDto } from './dto/review-alert.dto';
import { PublishAlertDto } from './dto/publish-alert.dto';
import { AlertGathererService } from './services/alert-gatherer.service';
import { AlertReviewerService } from './services/alert-reviewer.service';
import { AlertPublisherService } from './services/alert-publisher.service';
import { AlertResponseDto, IAlertResponsePaginated } from './dto/response-alert.dto';
import { updateAlertDto } from './dto/update-alert.dto';
import { FileUploadService } from 'modules/file-upload/file-upload.service';
export declare class AlertService {
    private alertRepository;
    private alertGathererService;
    private alertReviewerService;
    private alertPublisherService;
    private fileUploadService;
    private logger;
    constructor(alertRepository: Repository<Alert>, alertGathererService: AlertGathererService, alertReviewerService: AlertReviewerService, alertPublisherService: AlertPublisherService, fileUploadService: FileUploadService);
    createAlert(createAlertDto: CreateAlertDto, file: Express.Multer.File): Promise<AlertResponseDto>;
    fetchExternalAlerts(options: {
        page: number;
        limit: number;
    }): Promise<IAlertResponsePaginated>;
    findAlertsByStage(stage: AlertStage, options: {
        page: number;
        limit: number;
        search?: string;
    }): Promise<IAlertResponsePaginated>;
    findAlertById(id: string): Promise<AlertResponseDto>;
    reviewAlert(reviewAlertDto: ReviewAlertDto): Promise<AlertResponseDto>;
    publishAlert(publishAlertDto: PublishAlertDto): Promise<AlertResponseDto>;
    updateAlert(id: string, updateAlertDto: updateAlertDto): Promise<AlertResponseDto>;
    deleteAlert(id: string): Promise<void>;
}
