import { EChartsOption } from 'echarts';
import { ReactiveController, ReactiveControllerHost } from 'lit';
import { default as CxEChart } from './e-chart';

export type ChartSpec = {
    aliases?: Record<string, string>;
    downloadName?: string;
    type: 'xy';
    x: string | number;
    y: string | number;
} | {
    aliases?: Record<string, string>;
    downloadName?: string;
    type: 'stacked-bar';
    x: string;
} | {
    aliases?: Record<string, string>;
    downloadName?: string;
    type: 'treemap';
};
/** Tabular or hierarchical source row for `buildSpecificOption`. */
export type EChartDataRow = Record<string, unknown>;
export default class EChartController implements ReactiveController {
    #private;
    readonly host: ReactiveControllerHost & CxEChart;
    constructor(host: ReactiveControllerHost & CxEChart);
    buildSpecificOption(data: EChartDataRow[], spec: ChartSpec): EChartsOption;
    hostConnected(): void;
    hostDisconnected(): void;
}
