import { Repository } from 'typeorm';
import { ConfigService } from '@nestjs/config';
import { CrawlerService } from 'modules/crawler/crawler.service';
import { BreachCheckWebsites } from './entities/breach-check-website.entity';
import { BreachCheckWebsiteBaseline } from './entities/breach-check-website-baseline.entity';
import { BreachCheckResult } from './entities/breach-check-result.entity';
import { BreachCheckOrganization } from './entities/breach-check-organization.entity';
import { BreachCheckOrganizationResponseDto } from './dto/organization-ressponse.dto';
import { CreateBreachCheckOrganizationDto } from './dto/create-organization.dto';
import { CreateBreachCheckWebsiteDto } from './dto/create-breach-check-website.dto';
import { BreachCheckWebsiteResponseDto } from './dto/breach-check-website-response.dto';
import { BreachCheckResultListResponseDto } from './dto/breach-check-result-response.dto';
import { UpdateBreachCheckOrganizationDto } from './dto/update-organization.dto';
import { UpdateBreachCheckWebsiteDto } from './dto/update-breach-check-website.dto';
import { SettingsService } from 'modules/settings/setting.services';
export declare class BreachCheckAlertService {
    private monitoredWebsiteRepository;
    private websiteBaselineRepository;
    private checkResultRepository;
    private organizationRepository;
    private configService;
    private readonly crawlService;
    private readonly settingsService;
    private readonly logger;
    private websites;
    private isCheckRunning;
    private checkIntervals;
    constructor(monitoredWebsiteRepository: Repository<BreachCheckWebsites>, websiteBaselineRepository: Repository<BreachCheckWebsiteBaseline>, checkResultRepository: Repository<BreachCheckResult>, organizationRepository: Repository<BreachCheckOrganization>, configService: ConfigService, crawlService: CrawlerService, settingsService: SettingsService);
    createOrganization(createOrganizationDto: CreateBreachCheckOrganizationDto): Promise<BreachCheckOrganizationResponseDto>;
    getAllOrganizations(): Promise<BreachCheckOrganizationResponseDto[]>;
    getOrganizationById(id: number): Promise<BreachCheckOrganizationResponseDto>;
    deleteOrganization(id: number): Promise<void>;
    addMonitoredWebsite(createMonitoredWebsite: CreateBreachCheckWebsiteDto[]): Promise<BreachCheckWebsiteResponseDto[]>;
    deleteWebsite(id: number): Promise<void>;
    checkWebsiteById(id: number): Promise<BreachCheckWebsiteResponseDto>;
    getOrganizationByUserId(userId: number): Promise<BreachCheckOrganizationResponseDto[]>;
    startBreachCheck(): Promise<void>;
    stopBreachCheck(): Promise<void>;
    private scheduleChecks;
    checkWebsiteNow(websiteId: number, page?: number, limit?: number): Promise<BreachCheckResultListResponseDto>;
    updateOrganization(id: number, user: any, updateDto: UpdateBreachCheckOrganizationDto): Promise<BreachCheckOrganizationResponseDto>;
    updateBreachcheckWebsite(id: number, user: any, updateDto: UpdateBreachCheckWebsiteDto): Promise<BreachCheckWebsiteResponseDto>;
    private performCheck;
    private performSingleCheck;
    private checkAvailability;
    private checkDefacement;
    /**
     * Creates initial baseline for first-time website monitoring
     */
    private createInitialBaseline;
    /**
     * Performs detailed analysis when changes are detected
     */
    private performDetailedAnalysis;
    /**
     * Analyzes route changes efficiently - only checking routes that actually changed
     */
    private analyzeRouteChanges;
    /**
     * Updates baseline intelligently based on changes and conditions
     */
    private updateBaselineIfNeeded;
    private storeCheckResult;
}
