/**
 * 邮箱提供商接口（适配器模式）
 * 支持IMAP、POP3、API等多种邮箱接入方式
 */

export interface EmailMessage {
  uid?: number;
  from: string;
  to: string;
  subject: string;
  date: Date | string;
  text: string;
  html: string;
  headers?: any;
}

export interface IEmailProvider {
  /**
   * 连接到邮箱
   */
  connect(): Promise<void>;
  
  /**
   * 断开连接
   */
  disconnect(): void;
  
  /**
   * 获取最新的邮件
   * @param count 获取数量
   * @param folder 邮箱文件夹名称，默认'INBOX'
   */
  getLatestEmails(count: number, folder?: string): Promise<EmailMessage[]>;
  
  /**
   * 搜索包含特定关键词的邮件
   * @param subject 主题关键词
   * @param sinceDays 几天内
   */
  searchBySubject(subject: string, sinceDays?: number): Promise<EmailMessage[]>;
  
  /**
   * 标记邮件为已读（可选）
   * @param uid 邮件UID
   */
  markAsRead?(uid: number): Promise<void>;
}

export interface EmailProviderConfig {
  type: 'imap' | 'pop3' | 'api';
  
  // IMAP/POP3配置
  user?: string;
  password?: string;
  host?: string;
  port?: number;
  tls?: boolean;
  tlsOptions?: any;
  
  // API配置（如临时邮箱）
  apiKey?: string;
  apiUrl?: string;
}
