export interface Product {
  id: string;
  symbol: string;
  name: string;
  category: string;
  price: number;
  change: number;
  changePercent: number;
  open: number;
  high: number;
  low: number;
  volume: number;
  openInterest?: number;
}

export interface KLineData {
  time: string;
  open: number;
  high: number;
  low: number;
  close: number;
  volume: number;
}

export interface TickData {
  symbol: string;
  price: number;
  change: number;
  changePercent: number;
  open: number;
  high: number;
  low: number;
  volume: number;
  openInterest?: number;
  bidPrice?: number;
  askPrice?: number;
  bidVolume?: number;
  askVolume?: number;
  timestamp: number;
}

export interface MarketOverview {
  heatIndex: number;
  heatChange: number;
  upCount: number;
  downCount: number;
  capitalFlow: number;
  volatilityIndex: number;
  volatilityChange: number;
}

export interface WebSocketMessage {
  type: 'tick' | 'kline' | 'trade' | 'signal';
  symbol: string;
  data: any;
  timestamp: number;
}
