export interface InterpreterOutput {
  liked: string[];
  disliked: string[];
  themes: string[];
  character_preferences: string[];
  tone: string[];
  avoid: string[];
}

export interface RetrievalCandidate {
  title: string;
  reason: string;
}

export interface RetrievalOutput {
  candidates: RetrievalCandidate[];
}

export interface RankingOutput {
  definitely_like: string[];
  might_like: string[];
  questionable: string[];
  will_not_like: string[];
}

export type CuratorCategory = 'Definitely Like' | 'Might Like' | 'Questionable' | 'Will Not Like';

export interface CuratorOutput {
  title: string;
  explanation: string;
  category: CuratorCategory;
}

export type PipelineStage = 'interpreter' | 'retrieval' | 'ranking' | 'curator' | 'complete';
export type SSEStatus = 'start' | 'done' | 'error';

export interface SSEEvent {
  stage: PipelineStage;
  status: SSEStatus;
  data?: unknown;
}
