/**
 * DTOs for Ollama module
 */

export interface GenerateOptionsDto {
  temperature?: number;
  top_p?: number;
  max_tokens?: number;
  stop?: string[];
  stream?: boolean;
}

export interface ChatMessage {
  role: "system" | "user" | "assistant";
  content: string;
}

export interface ChatOptionsDto {
  temperature?: number;
  top_p?: number;
  max_tokens?: number;
  stop?: string[];
  stream?: boolean;
}

export interface GenerateResponseDto {
  response: string;
  model: string;
  done: boolean;
}

export interface ChatResponseDto {
  message: ChatMessage;
  model: string;
  done: boolean;
}

export interface EmbedResponseDto {
  embedding: number[];
}

export interface OllamaModel {
  name: string;
  modified_at: string;
  size: number;
  digest: string;
}

export interface ListModelsResponseDto {
  models: OllamaModel[];
}

export interface HealthCheckResponseDto {
  status: "healthy" | "unhealthy";
  mode: "local" | "remote";
  endpoint: string;
  available: boolean;
  error?: string;
}
