/**
 * Vision Pipeline Interface Definitions
 */

import { VisionAnalysisResult } from '../vision/vision.interface';

export interface PreciseModeOptions {
  userId: string;
  tenantId: string;
  modelId: string;
  fileId: string;
  fileName: string;
  skipQualityCheck?: boolean;
  maxPages?: number;
}

export interface PipelineResult {
  success: boolean;
  fileId: string;
  fileName: string;
  totalPages: number;
  processedPages: number;
  failedPages: number;
  results: VisionAnalysisResult[];
  cost: number;
  duration: number; // seconds
  mode: 'precise';
}

export interface ProcessingStatus {
  status: 'converting' | 'splitting' | 'checking' | 'analyzing' | 'indexing' | 'completed' | 'failed';
  progress: number;
  message: string;
  cost?: number;
}

export interface FileFormat {
  extension: string;
  needsConversion: boolean;
  supported: boolean;
}

export interface ModeRecommendation {
  recommendedMode: 'precise' | 'fast';
  reason: string;
  estimatedCost?: number;
  estimatedTime?: number; // seconds
  warnings?: string[];
}
