/** * Application Port: ILiveryCompositor * * Defines interface for livery image composition. * Infrastructure will provide image processing implementation. */ import type { LiveryDecal } from '../../domain/value-objects/LiveryDecal'; export interface CompositionResult { success: boolean; composedImageUrl?: string; error?: string; timestamp: Date; } export interface ILiveryCompositor { /** * Composite a livery by layering decals on base image */ composeLivery( baseImageUrl: string, decals: LiveryDecal[] ): Promise; /** * Generate a livery pack (.zip) for all drivers in a season */ generateLiveryPack( seasonId: string, liveryData: Array<{ driverId: string; driverName: string; carId: string; composedImageUrl: string; }> ): Promise; /** * Validate livery image (check for logos/text) */ validateLiveryImage(imageUrl: string): Promise<{ isValid: boolean; violations?: string[]; }>; }