/**
 * Port: AvatarGenerationPort
 * 
 * Defines the contract for AI-powered avatar generation.
 */

import type { AvatarStyle, RacingSuitColor } from '../../domain/types/AvatarGenerationRequest';

export interface AvatarGenerationOptions {
  facePhotoUrl: string;
  prompt: string;
  suitColor: RacingSuitColor;
  style: AvatarStyle;
  count: number;
}

export interface GeneratedAvatar {
  url: string;
  thumbnailUrl?: string;
}

export interface AvatarGenerationResult {
  success: boolean;
  avatars: GeneratedAvatar[];
  errorMessage?: string;
}

export interface AvatarGenerationPort {
  /**
   * Generate racing avatars from a face photo
   * @param options Generation options including face photo and styling preferences
   * @returns Generated avatar URLs
   */
  generateAvatars(options: AvatarGenerationOptions): Promise<AvatarGenerationResult>;
}