export interface PromptEnhancementOptions {
  template?:
    | 'photorealistic'
    | 'illustration'
    | 'minimalist'
    | 'sticker'
    | 'product'
    | 'comic'
    | 'general';
  tags?: string[];
}

export interface PromptEnhancementContext {
  orgId: string;
  projectId: string;
  meta?: {
    tags?: string[];
  };
}

export interface PromptEnhancementResult {
  success: boolean;
  originalPrompt: string;
  enhancedPrompt?: string;
  detectedLanguage?: string;
  appliedTemplate?: string;
  metadata?: {
    style?: string;
    aspectRatio?: string;
    enhancements: string[];
  };
  error?: string;
}

export interface AgentResult {
  success: boolean;
  enhancedPrompt?: string;
  detectedLanguage?: string;
  appliedTemplate?: string;
  enhancements: string[];
  error?: string;
}

export interface IPromptAgent {
  readonly templateType: string;
  enhance(prompt: string, options: PromptEnhancementOptions): Promise<AgentResult>;
}

export interface ValidationResult {
  valid: boolean;
  error?: string;
}

export interface EnhancementLogEntry {
  timestamp: string;
  orgId: string;
  projectId: string;
  originalPrompt: string;
  enhancedPrompt: string;
  meta?: {
    tags?: string[];
  };
  template: string;
  detectedLanguage?: string;
  enhancements: string[];
  model: string;
}
