import { Repository } from 'typeorm';
import { BreachedPassword } from '../txt-import/entities/breached-password.entity';
import { BreachEmail, Email } from '../txt-import/entities/breached-email.entity';
import { BreachedRecordIdentifier } from './entities/identifier.entity';
import { EmailBreachResponseDto } from './dto/breach-res.dto';
import { BreachRecord } from './entities/breach-data.entity';
export declare class BreachCheckService {
    private readonly breachDataRepository;
    private readonly breachEmailRepository;
    private readonly identifierRepository;
    private readonly emailRepository;
    private breachRepository;
    private readonly logger;
    constructor(breachDataRepository: Repository<BreachedPassword>, breachEmailRepository: Repository<BreachEmail>, identifierRepository: Repository<BreachedRecordIdentifier>, emailRepository: Repository<Email>, breachRepository: Repository<BreachRecord>);
    /**
     * Check if an email exists in the breach database
     * @param email The email to check
     * @returns Information about breaches containing this email
     */
    checkEmailBreaches(email: string): Promise<EmailBreachResponseDto>;
    private checkEmailInDatabase;
    private checkEmailInExternalApi;
    private updateBreachesInDatabase;
    /**
     * Check if a password exists in the breach database
     * @param password The password to check
     * @returns Information about breaches containing this password
     */
    checkPassword(password: string): Promise<{
        found: boolean;
        count: number;
    }>;
    /**
     * Check if a phone number exists in the breach database
     * @param phone The phone number to check
     * @returns Information about breaches containing this phone number
     */
    checkPhone(phone: string): Promise<{
        found: boolean;
        breaches: any[];
    }>;
    /**
     * Gets stats about the breach database
     * @returns Statistics about the breach database
     */
    getBreachStats(): Promise<{
        totalRecords: number;
        sources: {
            source: string;
            count: number;
        }[];
    }>;
}
