/**
 * u-charts-original.js 类型定义
 *
 * 从原始 u-charts.js 文件中提取的核心类型定义
 * 用于 BaseChartOriginal2D 和 ColumnChartOriginal2D 组件
 */

/**
 * 图表配置接口 - 与原始 u-charts.js 兼容
 */
export interface ChartsConfig {
  /** 图表类型 */
  type: 'pie' | 'ring' | 'line' | 'column' | 'bar' | 'area' | 'radar' | 'candle';
  /** Canvas 上下文 */
  context: any;
  /** 图表宽度（像素） */
  width: number;
  /** 图表高度（像素） */
  height: number;
  /** 设备像素比 */
  pixelRatio?: number;
  /** X 轴分类数据 */
  categories?: string[];
  /** 系列数据 */
  series?: any[];
  /** 图表动画 */
  animation?: boolean;
  /** 背景颜色 */
  background?: string;
  /** 颜色数组 */
  color?: string[];
  /** 内边距 */
  padding?: number[];
  /** 是否启用滚动 */
  enableScroll?: boolean;
  /** 是否显示数据标签 */
  dataLabel?: boolean;
  /** 图例配置 */
  legend?: any;
  /** X 轴配置 */
  xAxis?: any;
  /** Y 轴配置 */
  yAxis?: any;
  /** 额外配置 */
  extra?: any;
  /** 数据更新回调 */
  update?: boolean;
}

/**
 * 触摸事件接口
 */
export interface TouchEvent {
  touchEvent: {
    x: number;
    y: number;
  };
  [key: string]: any;
}

declare module '../lib/u-charts-original' {
  import { ChartsConfig } from '../types/u-charts-original';

  const uCharts: new (config: ChartsConfig) => {
    touchLegend(e: any): void;
    showToolTip(e: any): void;
    scroll(e: any): void;
  };

  export default uCharts;
}
