export type AgentStatus = 'active' | 'idle' | 'thinking' | 'error' | 'offline'

export interface Agent {
  id: string
  displayName: string
  role: string
  status: AgentStatus
  currentTask?: string
  taskProgress?: number
  taskElapsed?: string
  sessionKey: string
  channel: string
  lastActivity: string
  errorMessage?: string
}

export interface Session {
  id: string
  sessionKey: string
  agentId: string
  channel: string
  status: string
  contextTokens: number
  totalTokens: number
  estimatedCost: number
  model: string
  startedAt: string
  lastActivityAt: string
}

export interface Task {
  id: string
  agentId: string
  title: string
  description: string
  status: string
  progress?: number
  sessionKey: string
  createdAt: string
  updatedAt: string
}

export interface Project {
  id: string
  name: string
  description: string
  status: string
  agentIds: string[]
  createdAt: string
  updatedAt: string
}

export interface PaginatedResponse<T> {
  data: T[]
  totalCount: number
  page: number
  pageSize: number
  hasMore: boolean
}

export interface ApiError {
  error: string
  details?: Record<string, string>
}
