/**
* Cliente de validación de emails
* Maneja validación individual, batch y upload de archivos
*/
///
///
import { HttpClient } from '../http/httpClient';
import type { Logger } from '../utils/logger';
import type { EmailValidationRequest, EmailValidationResponse, BatchValidationRequest, BatchValidationResponse, UploadOptions, BatchJobStatus } from './types';
export interface ValidationClientOptions {
baseURL: string;
httpClient?: HttpClient;
logger?: Logger;
getAuthHeaders: () => Record;
}
export declare class ValidationClient {
private baseURL;
private httpClient;
private logger?;
private getAuthHeaders;
constructor(options: ValidationClientOptions);
/**
* Valida un email individual
*/
validateEmail(request: EmailValidationRequest): Promise;
/**
* Valida múltiples emails en batch
*/
batchValidateEmails(request: BatchValidationRequest): Promise;
/**
* Upload de archivo para validación batch
*/
uploadFileBatch(file: Buffer | Blob | File, options?: UploadOptions): Promise;
/**
* Obtiene el estado de un trabajo batch
*/
getBatchStatus(jobId: string): Promise;
/**
* Obtiene resultados de un trabajo batch completado
*/
getBatchResults(jobId: string): Promise;
/**
* Espera a que un trabajo batch se complete y retorna los resultados
*/
waitForBatchCompletion(jobId: string, options?: {
pollInterval?: number;
timeout?: number;
onProgress?: (status: BatchJobStatus) => void;
}): Promise;
/**
* Cancela un trabajo batch en progreso
*/
cancelBatch(jobId: string): Promise;
/**
* Valida emails con reintentos automáticos para los que fallen
*/
validateEmailsWithRetry(emails: string[], options?: {
checkSmtp?: boolean;
includeRawDns?: boolean;
maxRetries?: number;
onProgress?: (completed: number, total: number) => void;
}): Promise;
}
//# sourceMappingURL=validationClient.d.ts.map