/**
 * Chart renderer — converts OOXML chart XML into ECharts visualizations.
 */
import * as echarts from 'echarts';
import { ChartNodeData } from '../model/nodes/ChartNode';
import { RenderContext } from './RenderContext';
import { SafeXmlNode } from '../parser/XmlParser';
interface SeriesData {
    name: string;
    order: number;
    categories: string[];
    values: number[];
    xValues?: number[];
    bubbleSizes?: number[];
    colorHex?: string | object;
    dataPointColors?: (string | undefined)[];
    dataPointStyles?: (DataPointStyle | undefined)[];
    formatCode?: string;
    markerSymbol?: string;
    markerSize?: number;
    smooth?: boolean;
    lineWidth?: number;
}
type ChartLineType = 'solid' | 'dashed' | 'dotted';
interface DataPointStyle {
    color?: string;
    borderColor?: string;
    borderWidth?: number;
    borderType?: ChartLineType;
}
export interface ChartFrameStyle {
    borderColor?: string;
    borderWidth?: number;
    borderStyle?: ChartLineType;
}
/** Parsed c:dTable info for building the chart data table. */
interface DataTableInfo {
    seriesArr: SeriesData[];
    showKeys: boolean;
    formatCode?: string;
}
/** Result of parsing chart XML: option for ECharts, optional data table info. */
export interface ParseChartResult {
    option: echarts.EChartsOption;
    dataTable?: DataTableInfo;
    chartFrameStyle?: ChartFrameStyle;
}
/**
 * Parse a chart XML (chartSpace root) into an ECharts option object and optional data table info.
 * Exported for unit testing.
 */
export declare function parseChartXml(chartXml: SafeXmlNode, ctx: RenderContext, chartPath?: string): ParseChartResult;
/**
 * Render a chart node into an HTML element with an ECharts instance.
 */
export declare function renderChart(node: ChartNodeData, ctx: RenderContext): HTMLElement;
export {};
