import type { ECElementEvent, ElementEvent, SetOptionOpts, init } from 'echarts/core';
type GmChartInitType = typeof init;
export type GmChartInitParameters = Parameters<GmChartInitType>;
export type GmChartTheme = NonNullable<GmChartInitParameters[1]>;
export type GmChartInitOptions = NonNullable<GmChartInitParameters[2]>;
export type GmChartUpdateOptions = SetOptionOpts;
export type EChartsType = ReturnType<GmChartInitType>;
type GmChartZRenderType = ReturnType<EChartsType['getZr']>;
export type GmChartEventTarget = EChartsType | GmChartZRenderType;
type GmChartSetOptionType = EChartsType['setOption'];
export type GmChartOption = Parameters<GmChartSetOptionType>[0];
export type GmChartAutoResize = boolean | {
    throttle?: number;
    onResize?: () => void;
};
type GmChartMouseEventName = 'click' | 'dblclick' | 'mouseout' | 'mouseover' | 'mouseup' | 'mousedown' | 'mousemove' | 'contextmenu' | 'globalout';
type GmChartElementEventName = GmChartMouseEventName | 'mousewheel' | 'drag' | 'dragstart' | 'dragend' | 'dragenter' | 'dragleave' | 'dragover' | 'drop';
type GmChartZRenderEventName = `zr:${GmChartElementEventName}`;
type GmChartOtherEventName = 'highlight' | 'downplay' | 'selectchanged' | 'legendselectchanged' | 'legendselected' | 'legendunselected' | 'legendselectall' | 'legendinverseselect' | 'legendscroll' | 'datazoom' | 'datarangeselected' | 'graphroam' | 'georoam' | 'treeroam' | 'timelinechanged' | 'timelineplaychanged' | 'restore' | 'dataviewchanged' | 'magictypechanged' | 'geoselectchanged' | 'geoselected' | 'geounselected' | 'axisareaselected' | 'brush' | 'brushEnd' | 'brushselected' | 'globalcursortaken';
type GmChartMouseEmits = {
    [key in GmChartMouseEventName]: (params: ECElementEvent) => void;
};
type GmChartZRenderEmits = {
    [key in GmChartZRenderEventName]: (params: ElementEvent) => void;
};
type GmChartOtherEmits = {
    [key in GmChartOtherEventName]: (params: any) => void;
};
export type GmChartEmits = GmChartMouseEmits & GmChartOtherEmits & {
    rendered: (params: {
        elapsedTime: number;
    }) => void;
    finished: () => void;
} & GmChartZRenderEmits;
export {};
