/**
 * Shared MillionVerifier param/result types (browser-safe)
 *
 * These types define the public interface for MillionVerifier operations -- used by both
 * the server-side adapter and the SDK typed wrappers. They contain zero Node.js
 * dependencies and are safe to import in any environment.
 */

// ============================================================================
// Verify Email
// ============================================================================

/**
 * Verify email parameters
 */
export interface MillionVerifierVerifyEmailParams {
  email: string
}

/**
 * Verify email result (normalized, camelCase)
 */
export interface MillionVerifierVerifyEmailResult {
  email: string
  quality: '' | 'good' | 'bad' | 'risky'
  result: 'ok' | 'catch_all' | 'unknown' | 'error' | 'disposable' | 'invalid'
  resultCode: 1 | 2 | 3 | 4 | 5 | 6
  subresult: string
  free: boolean
  role: boolean
  didYouMean: string
  credits: number
  executionTime: number
  error: string
  liveMode: boolean
}

// ============================================================================
// Check Credits
// ============================================================================

/**
 * Check credits parameters (no inputs required)
 */
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
export interface MillionVerifierCheckCreditsParams {}

/**
 * Check credits result
 */
export interface MillionVerifierCheckCreditsResult {
  credits: number
  bulkCredits: number
  renewingCredits: number
  plan: number
}
