export interface ToolCall {
  id: string;
  name: string;
  arguments: Record<string, unknown>;
}

export interface MessageContent {
  text?: string;
  tool_calls?: ToolCall[];
}

export interface Message {
  id?: string;
  message_id?: string;
  goal_id?: string;
  role?: string;
  content?: string | MessageContent;
  description?: string;
  tokens?: number | null;
}

export interface Edge {
  id: string;
  source: string;
  target: string;
  label?: string;
  content?: EdgeContent;
}

export interface EdgeContent {
  id: string;
  title: string;
  children?: EdgeContent[];
  data: Record<string, unknown>;
}
