/**
* Cliente principal de MailSafePro SDK
*/
///
///
import type { UserSession } from './auth/types';
import { HttpClient } from './http/httpClient';
import type { Logger, LoggerOptions } from './utils/logger';
import type { RateLimiterConfig } from './utils/rateLimiter';
import type { EmailValidationRequest, EmailValidationResponse, BatchValidationRequest, BatchValidationResponse, UploadOptions, BatchJobStatus } from './validation/types';
export interface MailSafeProClientOptions {
baseURL?: string;
apiKey?: string;
logger?: Logger | LoggerOptions;
timeout?: number;
maxRetries?: number;
rateLimitConfig?: RateLimiterConfig;
autoRefresh?: boolean;
enableRetry?: boolean;
}
export declare class MailSafeProClient {
readonly version = "1.2.3";
private authClient;
private validationClient;
private httpClient;
private logger;
private baseURL;
constructor(options?: MailSafeProClientOptions);
login(email: string, password: string): Promise;
register(email: string, password: string, name?: string): Promise;
logout(): Promise;
refreshToken(): Promise;
getSession(): UserSession | null;
isAuthenticated(): boolean;
setApiKey(apiKey: string): void;
clearApiKey(): void;
validateEmail(request: EmailValidationRequest): Promise;
batchValidateEmails(request: BatchValidationRequest): Promise;
uploadFileBatch(file: Buffer | Blob | File, options?: UploadOptions): Promise;
getBatchStatus(jobId: string): Promise;
getBatchResults(jobId: string): Promise;
waitForBatchCompletion(jobId: string, options?: {
pollInterval?: number;
timeout?: number;
onProgress?: (status: BatchJobStatus) => void;
}): Promise;
cancelBatch(jobId: string): Promise;
validateEmailsWithRetry(emails: string[], options?: {
checkSmtp?: boolean;
includeRawDns?: boolean;
maxRetries?: number;
onProgress?: (completed: number, total: number) => void;
}): Promise;
getRateLimiterStats(): ReturnType;
clearRateLimiter(): void;
setAutoRefresh(enabled: boolean): void;
getLogger(): Logger;
destroy(): void;
}
//# sourceMappingURL=client.d.ts.map