/**
 * Workflow Email Service Interface
 * 
 * Base interface for workflow-specific email services.
 * Each workflow type (dealer claim, custom, etc.) should implement this interface
 * to ensure consistent behavior and prevent breaking other workflows.
 */

import { User } from '@models/User';
import { ApprovalLevel } from '@models/ApprovalLevel';

export interface IWorkflowEmailService {
  /**
   * Send assignment email to approver
   * Each workflow type can implement its own logic for template selection
   */
  sendAssignmentEmail(
    requestData: any,
    approverUser: User,
    initiatorData: any,
    currentLevel: ApprovalLevel | null,
    allLevels: ApprovalLevel[]
  ): Promise<void>;
}

