import type { File } from '@nest-lab/fastify-multer';

export interface FileUploadResult {
  file: File;
  url: string;
}

export interface FileStreamResult {
  stream: NodeJS.ReadableStream;
  file: File;
}

export interface FileMetadata {
  width?: number;
  height?: number;
  duration?: number;
  bitrate?: number;
  codec?: string;
  language?: string;
}

export type FileType = 'video' | 'audio' | 'image' | 'document' | 'text' | 'unknown';

export interface FileValidationOptions {
  maxFileSize: number;
  allowedMimeTypes: string[];
}

export interface FileUploadOptions {
  roomId?: string;
  metadata?: Record<string, string>;
}

// File processing status
export type FileProcessingStatus = 'pending' | 'processing' | 'completed' | 'failed';

export interface FileProcessingResult {
  status: FileProcessingStatus;
  metadata?: FileMetadata;
  error?: string;
}
