/**
 * GSC MCP UI — Type definitions for shared component props.
 * Subset of the full MCP UI Kit types, scoped to what GSC apps need.
 */

export type StatusVariant =
  | 'active' | 'complete' | 'paused' | 'draft' | 'error'
  | 'sent' | 'paid' | 'pending' | 'open' | 'won' | 'lost' | 'abandoned';

export type TrendDirection = 'up' | 'down' | 'flat';
export type MetricColor = 'default' | 'green' | 'blue' | 'purple' | 'yellow' | 'red';

export interface StatItem { label: string; value: string; }

export interface TableColumn {
  key: string;
  label: string;
  format?: string;
  sortable?: boolean;
  width?: string;
}

export interface TableRow {
  id?: string;
  [key: string]: any;
}

export interface PageHeaderProps {
  title: string;
  subtitle?: string;
  status?: string;
  statusVariant?: StatusVariant;
  gradient?: boolean;
  stats?: StatItem[];
}

export interface DataTableProps {
  columns?: TableColumn[];
  rows?: TableRow[];
  selectable?: boolean;
  emptyMessage?: string;
  pageSize?: number;
}

export interface MetricCardProps {
  label: string;
  value: string;
  trend?: TrendDirection;
  trendValue?: string;
  color?: MetricColor;
}

export interface StatusBadgeProps {
  label: string;
  variant?: StatusVariant;
}

export interface SparklineChartProps {
  values?: number[];
  color?: string;
  height?: number;
  width?: number;
}

export interface LineChartProps {
  points?: { label: string; value: number }[];
  color?: string;
  showPoints?: boolean;
  showArea?: boolean;
  title?: string;
  yAxisLabel?: string;
}
