/**
 * Chat Types for OrbiQuant LLM Copilot
 * Interfaces for chat sessions, messages, and API responses
 */

export interface ChatMessage {
  id: string;
  role: 'user' | 'assistant' | 'system';
  content: string;
  timestamp: string;
  toolsUsed?: string[];
}

export interface ChatSession {
  id: string;
  userId: string;
  messages: ChatMessage[];
  createdAt: string;
  updatedAt: string;
}

export interface SendMessageResponse {
  message: ChatMessage;
  toolsUsed: string[];
  tokensUsed: number;
}

export interface CreateSessionResponse {
  sessionId: string;
  createdAt: string;
}

export interface ChatState {
  sessions: ChatSession[];
  currentSessionId: string | null;
  messages: ChatMessage[];
  loading: boolean;
  isOpen: boolean;
  error: string | null;
}
