| interface GradientObject { | 
|     id?: number; | 
|     type: string; | 
|     colorStops: GradientColorStop[]; | 
|     global?: boolean; | 
| } | 
| interface GradientColorStop { | 
|     offset: number; | 
|     color: string; | 
| } | 
| declare class Gradient { | 
|     id?: number; | 
|     type: string; | 
|     colorStops: GradientColorStop[]; | 
|     global: boolean; | 
|     constructor(colorStops: GradientColorStop[]); | 
|     addColorStop(offset: number, color: string): void; | 
| } | 
|   | 
| interface RadialGradientObject extends GradientObject { | 
|     type: 'radial'; | 
|     x: number; | 
|     y: number; | 
|     r: number; | 
| } | 
| declare class RadialGradient extends Gradient { | 
|     type: 'radial'; | 
|     x: number; | 
|     y: number; | 
|     r: number; | 
|     constructor(x: number, y: number, r: number, colorStops?: GradientColorStop[], globalCoord?: boolean); | 
| } | 
|   | 
| interface LinearGradientObject extends GradientObject { | 
|     type: 'linear'; | 
|     x: number; | 
|     y: number; | 
|     x2: number; | 
|     y2: number; | 
| } | 
| declare class LinearGradient extends Gradient { | 
|     type: 'linear'; | 
|     x: number; | 
|     y: number; | 
|     x2: number; | 
|     y2: number; | 
|     constructor(x: number, y: number, x2: number, y2: number, colorStops?: GradientColorStop[], globalCoord?: boolean); | 
| } | 
|   | 
| declare type Dictionary<T> = { | 
|     [key: string]: T; | 
| }; | 
| declare type ArrayLike$1<T> = { | 
|     [key: number]: T; | 
|     length: number; | 
| }; | 
| declare type ImageLike = HTMLImageElement | HTMLCanvasElement | HTMLVideoElement; | 
| declare type TextVerticalAlign = 'top' | 'middle' | 'bottom'; | 
| declare type TextAlign = 'left' | 'center' | 'right'; | 
| declare type FontWeight = 'normal' | 'bold' | 'bolder' | 'lighter' | number; | 
| declare type FontStyle = 'normal' | 'italic' | 'oblique'; | 
| declare type BuiltinTextPosition = 'left' | 'right' | 'top' | 'bottom' | 'inside' | 'insideLeft' | 'insideRight' | 'insideTop' | 'insideBottom' | 'insideTopLeft' | 'insideTopRight' | 'insideBottomLeft' | 'insideBottomRight'; | 
| declare type ZREventProperties = { | 
|     zrX: number; | 
|     zrY: number; | 
|     zrDelta: number; | 
|     zrEventControl: 'no_globalout' | 'only_globalout'; | 
|     zrByTouch: boolean; | 
| }; | 
| declare type ZRRawMouseEvent = MouseEvent & ZREventProperties; | 
| declare type ZRRawTouchEvent = TouchEvent & ZREventProperties; | 
| declare type ZRRawPointerEvent = TouchEvent & ZREventProperties; | 
| declare type ZRRawEvent = ZRRawMouseEvent | ZRRawTouchEvent | ZRRawPointerEvent; | 
| declare type ElementEventName = 'click' | 'dblclick' | 'mousewheel' | 'mouseout' | 'mouseover' | 'mouseup' | 'mousedown' | 'mousemove' | 'contextmenu' | 'drag' | 'dragstart' | 'dragend' | 'dragenter' | 'dragleave' | 'dragover' | 'drop' | 'globalout'; | 
| declare type ElementEventNameWithOn = 'onclick' | 'ondblclick' | 'onmousewheel' | 'onmouseout' | 'onmouseup' | 'onmousedown' | 'onmousemove' | 'oncontextmenu' | 'ondrag' | 'ondragstart' | 'ondragend' | 'ondragenter' | 'ondragleave' | 'ondragover' | 'ondrop'; | 
| declare type PropType<TObj, TProp extends keyof TObj> = TObj[TProp]; | 
| declare type FunctionPropertyNames<T> = { | 
|     [K in keyof T]: T[K] extends Function ? K : never; | 
| }[keyof T]; | 
| declare type MapToType<T extends Dictionary<any>, S> = { | 
|     [P in keyof T]: T[P] extends Dictionary<any> ? MapToType<T[P], S> : S; | 
| }; | 
| declare type KeyOfDistributive<T> = T extends unknown ? keyof T : never; | 
| declare type WithThisType<Func extends (...args: any) => any, This> = (this: This, ...args: Parameters<Func>) => ReturnType<Func>; | 
|   | 
| declare type SVGVNodeAttrs = Record<string, string | number | undefined | boolean>; | 
| interface SVGVNode { | 
|     tag: string; | 
|     attrs: SVGVNodeAttrs; | 
|     children?: SVGVNode[]; | 
|     text?: string; | 
|     elm?: Node; | 
|     key: string; | 
| } | 
|   | 
| declare type ImagePatternRepeat = 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat'; | 
| interface PatternObjectBase { | 
|     id?: number; | 
|     type?: 'pattern'; | 
|     x?: number; | 
|     y?: number; | 
|     rotation?: number; | 
|     scaleX?: number; | 
|     scaleY?: number; | 
| } | 
| interface ImagePatternObject extends PatternObjectBase { | 
|     image: ImageLike | string; | 
|     repeat?: ImagePatternRepeat; | 
|     imageWidth?: number; | 
|     imageHeight?: number; | 
| } | 
| interface SVGPatternObject extends PatternObjectBase { | 
|     svgElement?: SVGVNode; | 
|     svgWidth?: number; | 
|     svgHeight?: number; | 
| } | 
| declare type PatternObject = ImagePatternObject | SVGPatternObject; | 
|   | 
| declare const nativeSlice: (start?: number, end?: number) => any[]; | 
| declare function guid(): number; | 
| declare function logError(...args: any[]): void; | 
| declare function clone<T extends any>(source: T): T; | 
| declare function merge<T extends Dictionary<any>, S extends Dictionary<any>>(target: T, source: S, overwrite?: boolean): T & S; | 
| declare function merge<T extends any, S extends any>(target: T, source: S, overwrite?: boolean): T | S; | 
| declare function mergeAll(targetAndSources: any[], overwrite?: boolean): any; | 
| declare function extend<T extends Dictionary<any>, S extends Dictionary<any>>(target: T, source: S): T & S; | 
| declare function defaults<T extends Dictionary<any>, S extends Dictionary<any>>(target: T, source: S, overlay?: boolean): T & S; | 
| declare const createCanvas: () => HTMLCanvasElement; | 
| declare function indexOf<T>(array: T[] | readonly T[] | ArrayLike$1<T>, value: T): number; | 
| declare function inherits(clazz: Function, baseClazz: Function): void; | 
| declare function mixin<T, S>(target: T | Function, source: S | Function, override?: boolean): void; | 
| declare function isArrayLike(data: any): data is ArrayLike$1<any>; | 
| declare function each<I extends Dictionary<any> | any[] | readonly any[] | ArrayLike$1<any>, Context>(arr: I, cb: (this: Context, value: I extends (infer T)[] | readonly (infer T)[] | ArrayLike$1<infer T> ? T : I extends Dictionary<any> ? I extends Record<infer K, infer T> ? T : unknown : unknown, index?: I extends any[] | readonly any[] | ArrayLike$1<any> ? number : keyof I & string, arr?: I) => void, context?: Context): void; | 
| declare function map<T, R, Context>(arr: readonly T[], cb: (this: Context, val: T, index?: number, arr?: readonly T[]) => R, context?: Context): R[]; | 
| declare function reduce<T, S, Context>(arr: readonly T[], cb: (this: Context, previousValue: S, currentValue: T, currentIndex?: number, arr?: readonly T[]) => S, memo?: S, context?: Context): S; | 
| declare function filter<T, Context>(arr: readonly T[], cb: (this: Context, value: T, index: number, arr: readonly T[]) => boolean, context?: Context): T[]; | 
| declare function find<T, Context>(arr: readonly T[], cb: (this: Context, value: T, index?: number, arr?: readonly T[]) => boolean, context?: Context): T; | 
| declare function keys<T extends object>(obj: T): (KeyOfDistributive<T> & string)[]; | 
| declare type Bind1<F, Ctx> = F extends (this: Ctx, ...args: infer A) => infer R ? (...args: A) => R : unknown; | 
| declare type Bind2<F, Ctx, T1> = F extends (this: Ctx, a: T1, ...args: infer A) => infer R ? (...args: A) => R : unknown; | 
| declare type Bind3<F, Ctx, T1, T2> = F extends (this: Ctx, a: T1, b: T2, ...args: infer A) => infer R ? (...args: A) => R : unknown; | 
| declare type Bind4<F, Ctx, T1, T2, T3> = F extends (this: Ctx, a: T1, b: T2, c: T3, ...args: infer A) => infer R ? (...args: A) => R : unknown; | 
| declare type Bind5<F, Ctx, T1, T2, T3, T4> = F extends (this: Ctx, a: T1, b: T2, c: T3, d: T4, ...args: infer A) => infer R ? (...args: A) => R : unknown; | 
| declare type BindFunc<Ctx> = (this: Ctx, ...arg: any[]) => any; | 
| interface FunctionBind { | 
|     <F extends BindFunc<Ctx>, Ctx>(func: F, ctx: Ctx): Bind1<F, Ctx>; | 
|     <F extends BindFunc<Ctx>, Ctx, T1 extends Parameters<F>[0]>(func: F, ctx: Ctx, a: T1): Bind2<F, Ctx, T1>; | 
|     <F extends BindFunc<Ctx>, Ctx, T1 extends Parameters<F>[0], T2 extends Parameters<F>[1]>(func: F, ctx: Ctx, a: T1, b: T2): Bind3<F, Ctx, T1, T2>; | 
|     <F extends BindFunc<Ctx>, Ctx, T1 extends Parameters<F>[0], T2 extends Parameters<F>[1], T3 extends Parameters<F>[2]>(func: F, ctx: Ctx, a: T1, b: T2, c: T3): Bind4<F, Ctx, T1, T2, T3>; | 
|     <F extends BindFunc<Ctx>, Ctx, T1 extends Parameters<F>[0], T2 extends Parameters<F>[1], T3 extends Parameters<F>[2], T4 extends Parameters<F>[3]>(func: F, ctx: Ctx, a: T1, b: T2, c: T3, d: T4): Bind5<F, Ctx, T1, T2, T3, T4>; | 
| } | 
| declare const bind: FunctionBind; | 
| declare type Curry1<F, T1> = F extends (a: T1, ...args: infer A) => infer R ? (...args: A) => R : unknown; | 
| declare type Curry2<F, T1, T2> = F extends (a: T1, b: T2, ...args: infer A) => infer R ? (...args: A) => R : unknown; | 
| declare type Curry3<F, T1, T2, T3> = F extends (a: T1, b: T2, c: T3, ...args: infer A) => infer R ? (...args: A) => R : unknown; | 
| declare type Curry4<F, T1, T2, T3, T4> = F extends (a: T1, b: T2, c: T3, d: T4, ...args: infer A) => infer R ? (...args: A) => R : unknown; | 
| declare type CurryFunc = (...arg: any[]) => any; | 
| declare function curry<F extends CurryFunc, T1 extends Parameters<F>[0]>(func: F, a: T1): Curry1<F, T1>; | 
| declare function curry<F extends CurryFunc, T1 extends Parameters<F>[0], T2 extends Parameters<F>[1]>(func: F, a: T1, b: T2): Curry2<F, T1, T2>; | 
| declare function curry<F extends CurryFunc, T1 extends Parameters<F>[0], T2 extends Parameters<F>[1], T3 extends Parameters<F>[2]>(func: F, a: T1, b: T2, c: T3): Curry3<F, T1, T2, T3>; | 
| declare function curry<F extends CurryFunc, T1 extends Parameters<F>[0], T2 extends Parameters<F>[1], T3 extends Parameters<F>[2], T4 extends Parameters<F>[3]>(func: F, a: T1, b: T2, c: T3, d: T4): Curry4<F, T1, T2, T3, T4>; | 
|   | 
| declare function isArray(value: any): value is any[]; | 
| declare function isFunction(value: any): value is Function; | 
| declare function isString(value: any): value is string; | 
| declare function isStringSafe(value: any): value is string; | 
| declare function isNumber(value: any): value is number; | 
| declare function isObject<T = unknown>(value: T): value is (object & T); | 
| declare function isBuiltInObject(value: any): boolean; | 
| declare function isTypedArray(value: any): boolean; | 
| declare function isDom(value: any): value is HTMLElement; | 
| declare function isGradientObject(value: any): value is GradientObject; | 
| declare function isImagePatternObject(value: any): value is ImagePatternObject; | 
| declare function isRegExp(value: unknown): value is RegExp; | 
| declare function eqNaN(value: any): boolean; | 
| declare function retrieve<T>(...args: T[]): T; | 
| declare function retrieve2<T, R>(value0: T, value1: R): T | R; | 
| declare function retrieve3<T, R, W>(value0: T, value1: R, value2: W): T | R | W; | 
| declare type SliceParams = Parameters<typeof nativeSlice>; | 
| declare function slice<T>(arr: ArrayLike$1<T>, ...args: SliceParams): T[]; | 
| declare function normalizeCssArray(val: number | number[]): number[]; | 
| declare function assert(condition: any, message?: string): void; | 
| declare function trim(str: string): string; | 
| declare function setAsPrimitive(obj: any): void; | 
| declare function isPrimitive(obj: any): boolean; | 
| interface MapInterface<T, KEY extends string | number = string | number> { | 
|     delete(key: KEY): boolean; | 
|     has(key: KEY): boolean; | 
|     get(key: KEY): T | undefined; | 
|     set(key: KEY, value: T): this; | 
|     keys(): KEY[]; | 
|     forEach(callback: (value: T, key: KEY) => void): void; | 
| } | 
| declare class HashMap<T, KEY extends string | number = string | number> { | 
|     data: MapInterface<T, KEY>; | 
|     constructor(obj?: HashMap<T, KEY> | { | 
|         [key in KEY]?: T; | 
|     } | KEY[]); | 
|     hasKey(key: KEY): boolean; | 
|     get(key: KEY): T; | 
|     set(key: KEY, value: T): T; | 
|     each<Context>(cb: (this: Context, value?: T, key?: KEY) => void, context?: Context): void; | 
|     keys(): KEY[]; | 
|     removeKey(key: KEY): void; | 
| } | 
| declare function createHashMap<T, KEY extends string | number = string | number>(obj?: HashMap<T, KEY> | { | 
|     [key in KEY]?: T; | 
| } | KEY[]): HashMap<T, KEY>; | 
| declare function concatArray<T, R>(a: ArrayLike$1<T>, b: ArrayLike$1<R>): ArrayLike$1<T | R>; | 
| declare function createObject<T>(proto?: object, properties?: T): T; | 
| declare function disableUserSelect(dom: HTMLElement): void; | 
| declare function hasOwn(own: object, prop: string): boolean; | 
| declare function noop(): void; | 
| declare const RADIAN_TO_DEGREE: number; | 
|   | 
| declare const util_d_curry: typeof curry; | 
| declare const util_d_guid: typeof guid; | 
| declare const util_d_logError: typeof logError; | 
| declare const util_d_clone: typeof clone; | 
| declare const util_d_merge: typeof merge; | 
| declare const util_d_mergeAll: typeof mergeAll; | 
| declare const util_d_extend: typeof extend; | 
| declare const util_d_defaults: typeof defaults; | 
| declare const util_d_createCanvas: typeof createCanvas; | 
| declare const util_d_indexOf: typeof indexOf; | 
| declare const util_d_inherits: typeof inherits; | 
| declare const util_d_mixin: typeof mixin; | 
| declare const util_d_isArrayLike: typeof isArrayLike; | 
| declare const util_d_each: typeof each; | 
| declare const util_d_map: typeof map; | 
| declare const util_d_reduce: typeof reduce; | 
| declare const util_d_filter: typeof filter; | 
| declare const util_d_find: typeof find; | 
| declare const util_d_keys: typeof keys; | 
| type util_d_Bind1<F, Ctx> = Bind1<F, Ctx>; | 
| type util_d_Bind2<F, Ctx, T1> = Bind2<F, Ctx, T1>; | 
| type util_d_Bind3<F, Ctx, T1, T2> = Bind3<F, Ctx, T1, T2>; | 
| type util_d_Bind4<F, Ctx, T1, T2, T3> = Bind4<F, Ctx, T1, T2, T3>; | 
| type util_d_Bind5<F, Ctx, T1, T2, T3, T4> = Bind5<F, Ctx, T1, T2, T3, T4>; | 
| declare const util_d_bind: typeof bind; | 
| type util_d_Curry1<F, T1> = Curry1<F, T1>; | 
| type util_d_Curry2<F, T1, T2> = Curry2<F, T1, T2>; | 
| type util_d_Curry3<F, T1, T2, T3> = Curry3<F, T1, T2, T3>; | 
| type util_d_Curry4<F, T1, T2, T3, T4> = Curry4<F, T1, T2, T3, T4>; | 
| declare const util_d_isArray: typeof isArray; | 
| declare const util_d_isFunction: typeof isFunction; | 
| declare const util_d_isString: typeof isString; | 
| declare const util_d_isStringSafe: typeof isStringSafe; | 
| declare const util_d_isNumber: typeof isNumber; | 
| declare const util_d_isObject: typeof isObject; | 
| declare const util_d_isBuiltInObject: typeof isBuiltInObject; | 
| declare const util_d_isTypedArray: typeof isTypedArray; | 
| declare const util_d_isDom: typeof isDom; | 
| declare const util_d_isGradientObject: typeof isGradientObject; | 
| declare const util_d_isImagePatternObject: typeof isImagePatternObject; | 
| declare const util_d_isRegExp: typeof isRegExp; | 
| declare const util_d_eqNaN: typeof eqNaN; | 
| declare const util_d_retrieve: typeof retrieve; | 
| declare const util_d_retrieve2: typeof retrieve2; | 
| declare const util_d_retrieve3: typeof retrieve3; | 
| declare const util_d_slice: typeof slice; | 
| declare const util_d_normalizeCssArray: typeof normalizeCssArray; | 
| declare const util_d_assert: typeof assert; | 
| declare const util_d_trim: typeof trim; | 
| declare const util_d_setAsPrimitive: typeof setAsPrimitive; | 
| declare const util_d_isPrimitive: typeof isPrimitive; | 
| type util_d_HashMap<T, KEY extends string | number = string | number> = HashMap<T, KEY>; | 
| declare const util_d_HashMap: typeof HashMap; | 
| declare const util_d_createHashMap: typeof createHashMap; | 
| declare const util_d_concatArray: typeof concatArray; | 
| declare const util_d_createObject: typeof createObject; | 
| declare const util_d_disableUserSelect: typeof disableUserSelect; | 
| declare const util_d_hasOwn: typeof hasOwn; | 
| declare const util_d_noop: typeof noop; | 
| declare const util_d_RADIAN_TO_DEGREE: typeof RADIAN_TO_DEGREE; | 
| declare namespace util_d { | 
|   export { | 
|     util_d_curry as curry, | 
|     util_d_guid as guid, | 
|     util_d_logError as logError, | 
|     util_d_clone as clone, | 
|     util_d_merge as merge, | 
|     util_d_mergeAll as mergeAll, | 
|     util_d_extend as extend, | 
|     util_d_defaults as defaults, | 
|     util_d_createCanvas as createCanvas, | 
|     util_d_indexOf as indexOf, | 
|     util_d_inherits as inherits, | 
|     util_d_mixin as mixin, | 
|     util_d_isArrayLike as isArrayLike, | 
|     util_d_each as each, | 
|     util_d_map as map, | 
|     util_d_reduce as reduce, | 
|     util_d_filter as filter, | 
|     util_d_find as find, | 
|     util_d_keys as keys, | 
|     util_d_Bind1 as Bind1, | 
|     util_d_Bind2 as Bind2, | 
|     util_d_Bind3 as Bind3, | 
|     util_d_Bind4 as Bind4, | 
|     util_d_Bind5 as Bind5, | 
|     util_d_bind as bind, | 
|     util_d_Curry1 as Curry1, | 
|     util_d_Curry2 as Curry2, | 
|     util_d_Curry3 as Curry3, | 
|     util_d_Curry4 as Curry4, | 
|     util_d_isArray as isArray, | 
|     util_d_isFunction as isFunction, | 
|     util_d_isString as isString, | 
|     util_d_isStringSafe as isStringSafe, | 
|     util_d_isNumber as isNumber, | 
|     util_d_isObject as isObject, | 
|     util_d_isBuiltInObject as isBuiltInObject, | 
|     util_d_isTypedArray as isTypedArray, | 
|     util_d_isDom as isDom, | 
|     util_d_isGradientObject as isGradientObject, | 
|     util_d_isImagePatternObject as isImagePatternObject, | 
|     util_d_isRegExp as isRegExp, | 
|     util_d_eqNaN as eqNaN, | 
|     util_d_retrieve as retrieve, | 
|     util_d_retrieve2 as retrieve2, | 
|     util_d_retrieve3 as retrieve3, | 
|     util_d_slice as slice, | 
|     util_d_normalizeCssArray as normalizeCssArray, | 
|     util_d_assert as assert, | 
|     util_d_trim as trim, | 
|     util_d_setAsPrimitive as setAsPrimitive, | 
|     util_d_isPrimitive as isPrimitive, | 
|     util_d_HashMap as HashMap, | 
|     util_d_createHashMap as createHashMap, | 
|     util_d_concatArray as concatArray, | 
|     util_d_createObject as createObject, | 
|     util_d_disableUserSelect as disableUserSelect, | 
|     util_d_hasOwn as hasOwn, | 
|     util_d_noop as noop, | 
|     util_d_RADIAN_TO_DEGREE as RADIAN_TO_DEGREE, | 
|   }; | 
| } | 
|   | 
| declare type EventCallbackSingleParam<EvtParam = any> = EvtParam extends any ? (params: EvtParam) => boolean | void : never; | 
| declare type EventCallback<EvtParams = any[]> = EvtParams extends any[] ? (...args: EvtParams) => boolean | void : never; | 
| declare type EventQuery = string | Object; | 
| declare type CbThis<Ctx, Impl> = unknown extends Ctx ? Impl : Ctx; | 
| declare type DefaultEventDefinition = Dictionary<EventCallback<any[]>>; | 
| interface EventProcessor<EvtDef = DefaultEventDefinition> { | 
|     normalizeQuery?: (query: EventQuery) => EventQuery; | 
|     filter?: (eventType: keyof EvtDef, query: EventQuery) => boolean; | 
|     afterTrigger?: (eventType: keyof EvtDef) => void; | 
| } | 
| declare class Eventful<EvtDef extends DefaultEventDefinition = DefaultEventDefinition> { | 
|     private _$handlers; | 
|     protected _$eventProcessor: EventProcessor<EvtDef>; | 
|     constructor(eventProcessors?: EventProcessor<EvtDef>); | 
|     on<Ctx, EvtNm extends keyof EvtDef>(event: EvtNm, handler: WithThisType<EvtDef[EvtNm], CbThis<Ctx, this>>, context?: Ctx): this; | 
|     on<Ctx, EvtNm extends keyof EvtDef>(event: EvtNm, query: EventQuery, handler: WithThisType<EvtDef[EvtNm], CbThis<Ctx, this>>, context?: Ctx): this; | 
|     isSilent(eventName: keyof EvtDef): boolean; | 
|     off(eventType?: keyof EvtDef, handler?: Function): this; | 
|     trigger<EvtNm extends keyof EvtDef>(eventType: EvtNm, ...args: Parameters<EvtDef[EvtNm]>): this; | 
|     triggerWithContext(type: keyof EvtDef, ...args: any[]): this; | 
| } | 
|   | 
| declare type VectorArray = number[]; | 
| declare function create(x?: number, y?: number): VectorArray; | 
| declare function copy<T extends VectorArray>(out: T, v: VectorArray): T; | 
| declare function clone$1(v: VectorArray): VectorArray; | 
| declare function set<T extends VectorArray>(out: T, a: number, b: number): T; | 
| declare function add<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray): T; | 
| declare function scaleAndAdd<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray, a: number): T; | 
| declare function sub<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray): T; | 
| declare function len(v: VectorArray): number; | 
| declare const length: typeof len; | 
| declare function lenSquare(v: VectorArray): number; | 
| declare const lengthSquare: typeof lenSquare; | 
| declare function mul<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray): T; | 
| declare function div<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray): T; | 
| declare function dot(v1: VectorArray, v2: VectorArray): number; | 
| declare function scale<T extends VectorArray>(out: T, v: VectorArray, s: number): T; | 
| declare function normalize<T extends VectorArray>(out: T, v: VectorArray): T; | 
| declare function distance(v1: VectorArray, v2: VectorArray): number; | 
| declare const dist: typeof distance; | 
| declare function distanceSquare(v1: VectorArray, v2: VectorArray): number; | 
| declare const distSquare: typeof distanceSquare; | 
| declare function negate<T extends VectorArray>(out: T, v: VectorArray): T; | 
| declare function lerp<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray, t: number): T; | 
| declare function applyTransform<T extends VectorArray>(out: T, v: VectorArray, m: MatrixArray): T; | 
| declare function min<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray): T; | 
| declare function max<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray): T; | 
|   | 
| type vector_d_VectorArray = VectorArray; | 
| declare const vector_d_create: typeof create; | 
| declare const vector_d_copy: typeof copy; | 
| declare const vector_d_set: typeof set; | 
| declare const vector_d_add: typeof add; | 
| declare const vector_d_scaleAndAdd: typeof scaleAndAdd; | 
| declare const vector_d_sub: typeof sub; | 
| declare const vector_d_len: typeof len; | 
| declare const vector_d_length: typeof length; | 
| declare const vector_d_lenSquare: typeof lenSquare; | 
| declare const vector_d_lengthSquare: typeof lengthSquare; | 
| declare const vector_d_mul: typeof mul; | 
| declare const vector_d_div: typeof div; | 
| declare const vector_d_dot: typeof dot; | 
| declare const vector_d_scale: typeof scale; | 
| declare const vector_d_normalize: typeof normalize; | 
| declare const vector_d_distance: typeof distance; | 
| declare const vector_d_dist: typeof dist; | 
| declare const vector_d_distanceSquare: typeof distanceSquare; | 
| declare const vector_d_distSquare: typeof distSquare; | 
| declare const vector_d_negate: typeof negate; | 
| declare const vector_d_lerp: typeof lerp; | 
| declare const vector_d_applyTransform: typeof applyTransform; | 
| declare const vector_d_min: typeof min; | 
| declare const vector_d_max: typeof max; | 
| declare namespace vector_d { | 
|   export { | 
|     vector_d_VectorArray as VectorArray, | 
|     vector_d_create as create, | 
|     vector_d_copy as copy, | 
|     clone$1 as clone, | 
|     vector_d_set as set, | 
|     vector_d_add as add, | 
|     vector_d_scaleAndAdd as scaleAndAdd, | 
|     vector_d_sub as sub, | 
|     vector_d_len as len, | 
|     vector_d_length as length, | 
|     vector_d_lenSquare as lenSquare, | 
|     vector_d_lengthSquare as lengthSquare, | 
|     vector_d_mul as mul, | 
|     vector_d_div as div, | 
|     vector_d_dot as dot, | 
|     vector_d_scale as scale, | 
|     vector_d_normalize as normalize, | 
|     vector_d_distance as distance, | 
|     vector_d_dist as dist, | 
|     vector_d_distanceSquare as distanceSquare, | 
|     vector_d_distSquare as distSquare, | 
|     vector_d_negate as negate, | 
|     vector_d_lerp as lerp, | 
|     vector_d_applyTransform as applyTransform, | 
|     vector_d_min as min, | 
|     vector_d_max as max, | 
|   }; | 
| } | 
|   | 
| declare type MatrixArray = number[]; | 
| declare function create$1(): MatrixArray; | 
| declare function identity(out: MatrixArray): MatrixArray; | 
| declare function copy$1(out: MatrixArray, m: MatrixArray): MatrixArray; | 
| declare function mul$1(out: MatrixArray, m1: MatrixArray, m2: MatrixArray): MatrixArray; | 
| declare function translate(out: MatrixArray, a: MatrixArray, v: VectorArray): MatrixArray; | 
| declare function rotate(out: MatrixArray, a: MatrixArray, rad: number, pivot?: VectorArray): MatrixArray; | 
| declare function scale$1(out: MatrixArray, a: MatrixArray, v: VectorArray): MatrixArray; | 
| declare function invert(out: MatrixArray, a: MatrixArray): MatrixArray | null; | 
| declare function clone$2(a: MatrixArray): MatrixArray; | 
|   | 
| type matrix_d_MatrixArray = MatrixArray; | 
| declare const matrix_d_identity: typeof identity; | 
| declare const matrix_d_translate: typeof translate; | 
| declare const matrix_d_rotate: typeof rotate; | 
| declare const matrix_d_invert: typeof invert; | 
| declare namespace matrix_d { | 
|   export { | 
|     matrix_d_MatrixArray as MatrixArray, | 
|     create$1 as create, | 
|     matrix_d_identity as identity, | 
|     copy$1 as copy, | 
|     mul$1 as mul, | 
|     matrix_d_translate as translate, | 
|     matrix_d_rotate as rotate, | 
|     scale$1 as scale, | 
|     matrix_d_invert as invert, | 
|     clone$2 as clone, | 
|   }; | 
| } | 
|   | 
| interface PointLike { | 
|     x: number; | 
|     y: number; | 
| } | 
| declare class Point { | 
|     x: number; | 
|     y: number; | 
|     constructor(x?: number, y?: number); | 
|     copy(other: PointLike): this; | 
|     clone(): Point; | 
|     set(x: number, y: number): this; | 
|     equal(other: PointLike): boolean; | 
|     add(other: PointLike): this; | 
|     scale(scalar: number): void; | 
|     scaleAndAdd(other: PointLike, scalar: number): void; | 
|     sub(other: PointLike): this; | 
|     dot(other: PointLike): number; | 
|     len(): number; | 
|     lenSquare(): number; | 
|     normalize(): this; | 
|     distance(other: PointLike): number; | 
|     distanceSquare(other: Point): number; | 
|     negate(): this; | 
|     transform(m: MatrixArray): this; | 
|     toArray(out: number[]): number[]; | 
|     fromArray(input: number[]): void; | 
|     static set(p: PointLike, x: number, y: number): void; | 
|     static copy(p: PointLike, p2: PointLike): void; | 
|     static len(p: PointLike): number; | 
|     static lenSquare(p: PointLike): number; | 
|     static dot(p0: PointLike, p1: PointLike): number; | 
|     static add(out: PointLike, p0: PointLike, p1: PointLike): void; | 
|     static sub(out: PointLike, p0: PointLike, p1: PointLike): void; | 
|     static scale(out: PointLike, p0: PointLike, scalar: number): void; | 
|     static scaleAndAdd(out: PointLike, p0: PointLike, p1: PointLike, scalar: number): void; | 
|     static lerp(out: PointLike, p0: PointLike, p1: PointLike, t: number): void; | 
| } | 
|   | 
| declare class BoundingRect { | 
|     x: number; | 
|     y: number; | 
|     width: number; | 
|     height: number; | 
|     constructor(x: number, y: number, width: number, height: number); | 
|     union(other: BoundingRect): void; | 
|     applyTransform(m: MatrixArray): void; | 
|     calculateTransform(b: RectLike): MatrixArray; | 
|     intersect(b: RectLike, mtv?: PointLike): boolean; | 
|     contain(x: number, y: number): boolean; | 
|     clone(): BoundingRect; | 
|     copy(other: RectLike): void; | 
|     plain(): RectLike; | 
|     isFinite(): boolean; | 
|     isZero(): boolean; | 
|     static create(rect: RectLike): BoundingRect; | 
|     static copy(target: RectLike, source: RectLike): void; | 
|     static applyTransform(target: RectLike, source: RectLike, m: MatrixArray): void; | 
| } | 
| declare type RectLike = { | 
|     x: number; | 
|     y: number; | 
|     width: number; | 
|     height: number; | 
| }; | 
|   | 
| interface ExtendedCanvasRenderingContext2D extends CanvasRenderingContext2D { | 
|     dpr?: number; | 
| } | 
| declare class PathProxy { | 
|     dpr: number; | 
|     data: number[] | Float32Array; | 
|     private _version; | 
|     private _saveData; | 
|     private _pendingPtX; | 
|     private _pendingPtY; | 
|     private _pendingPtDist; | 
|     private _ctx; | 
|     private _xi; | 
|     private _yi; | 
|     private _x0; | 
|     private _y0; | 
|     private _len; | 
|     private _pathSegLen; | 
|     private _pathLen; | 
|     private _ux; | 
|     private _uy; | 
|     static CMD: { | 
|         M: number; | 
|         L: number; | 
|         C: number; | 
|         Q: number; | 
|         A: number; | 
|         Z: number; | 
|         R: number; | 
|     }; | 
|     constructor(notSaveData?: boolean); | 
|     increaseVersion(): void; | 
|     getVersion(): number; | 
|     setScale(sx: number, sy: number, segmentIgnoreThreshold?: number): void; | 
|     setDPR(dpr: number): void; | 
|     setContext(ctx: ExtendedCanvasRenderingContext2D): void; | 
|     getContext(): ExtendedCanvasRenderingContext2D; | 
|     beginPath(): this; | 
|     reset(): void; | 
|     moveTo(x: number, y: number): this; | 
|     lineTo(x: number, y: number): this; | 
|     bezierCurveTo(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): this; | 
|     quadraticCurveTo(x1: number, y1: number, x2: number, y2: number): this; | 
|     arc(cx: number, cy: number, r: number, startAngle: number, endAngle: number, anticlockwise?: boolean): this; | 
|     arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): this; | 
|     rect(x: number, y: number, w: number, h: number): this; | 
|     closePath(): this; | 
|     fill(ctx: CanvasRenderingContext2D): void; | 
|     stroke(ctx: CanvasRenderingContext2D): void; | 
|     len(): number; | 
|     setData(data: Float32Array | number[]): void; | 
|     appendPath(path: PathProxy | PathProxy[]): void; | 
|     addData(cmd: number, a?: number, b?: number, c?: number, d?: number, e?: number, f?: number, g?: number, h?: number): void; | 
|     private _drawPendingPt; | 
|     private _expandData; | 
|     toStatic(): void; | 
|     getBoundingRect(): BoundingRect; | 
|     private _calculateLength; | 
|     rebuildPath(ctx: PathRebuilder, percent: number): void; | 
|     clone(): PathProxy; | 
|     private static initDefaultProps; | 
| } | 
| interface PathRebuilder { | 
|     moveTo(x: number, y: number): void; | 
|     lineTo(x: number, y: number): void; | 
|     bezierCurveTo(x: number, y: number, x2: number, y2: number, x3: number, y3: number): void; | 
|     quadraticCurveTo(x: number, y: number, x2: number, y2: number): void; | 
|     arc(cx: number, cy: number, r: number, startAngle: number, endAngle: number, anticlockwise: boolean): void; | 
|     ellipse(cx: number, cy: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, anticlockwise: boolean): void; | 
|     rect(x: number, y: number, width: number, height: number): void; | 
|     closePath(): void; | 
| } | 
|   | 
| declare type easingFunc = (percent: number) => number; | 
| declare type AnimationEasing = keyof typeof easingFuncs | easingFunc; | 
| declare const easingFuncs: { | 
|     linear(k: number): number; | 
|     quadraticIn(k: number): number; | 
|     quadraticOut(k: number): number; | 
|     quadraticInOut(k: number): number; | 
|     cubicIn(k: number): number; | 
|     cubicOut(k: number): number; | 
|     cubicInOut(k: number): number; | 
|     quarticIn(k: number): number; | 
|     quarticOut(k: number): number; | 
|     quarticInOut(k: number): number; | 
|     quinticIn(k: number): number; | 
|     quinticOut(k: number): number; | 
|     quinticInOut(k: number): number; | 
|     sinusoidalIn(k: number): number; | 
|     sinusoidalOut(k: number): number; | 
|     sinusoidalInOut(k: number): number; | 
|     exponentialIn(k: number): number; | 
|     exponentialOut(k: number): number; | 
|     exponentialInOut(k: number): number; | 
|     circularIn(k: number): number; | 
|     circularOut(k: number): number; | 
|     circularInOut(k: number): number; | 
|     elasticIn(k: number): number; | 
|     elasticOut(k: number): number; | 
|     elasticInOut(k: number): number; | 
|     backIn(k: number): number; | 
|     backOut(k: number): number; | 
|     backInOut(k: number): number; | 
|     bounceIn(k: number): number; | 
|     bounceOut(k: number): number; | 
|     bounceInOut(k: number): number; | 
| }; | 
|   | 
| interface Stage { | 
|     update?: () => void; | 
| } | 
| interface AnimationOption { | 
|     stage?: Stage; | 
| } | 
| declare class Animation extends Eventful { | 
|     stage: Stage; | 
|     private _head; | 
|     private _tail; | 
|     private _running; | 
|     private _time; | 
|     private _pausedTime; | 
|     private _pauseStart; | 
|     private _paused; | 
|     constructor(opts?: AnimationOption); | 
|     addClip(clip: Clip): void; | 
|     addAnimator(animator: Animator<any>): void; | 
|     removeClip(clip: Clip): void; | 
|     removeAnimator(animator: Animator<any>): void; | 
|     update(notTriggerFrameAndStageUpdate?: boolean): void; | 
|     _startLoop(): void; | 
|     start(): void; | 
|     stop(): void; | 
|     pause(): void; | 
|     resume(): void; | 
|     clear(): void; | 
|     isFinished(): boolean; | 
|     animate<T>(target: T, options: { | 
|         loop?: boolean; | 
|     }): Animator<T>; | 
| } | 
|   | 
| declare type OnframeCallback = (percent: number) => void; | 
| declare type ondestroyCallback = () => void; | 
| declare type onrestartCallback = () => void; | 
| interface ClipProps { | 
|     life?: number; | 
|     delay?: number; | 
|     loop?: boolean; | 
|     easing?: AnimationEasing; | 
|     onframe?: OnframeCallback; | 
|     ondestroy?: ondestroyCallback; | 
|     onrestart?: onrestartCallback; | 
| } | 
| declare class Clip { | 
|     private _life; | 
|     private _delay; | 
|     private _inited; | 
|     private _startTime; | 
|     private _pausedTime; | 
|     private _paused; | 
|     animation: Animation; | 
|     loop: boolean; | 
|     easing: AnimationEasing; | 
|     easingFunc: (p: number) => number; | 
|     next: Clip; | 
|     prev: Clip; | 
|     onframe: OnframeCallback; | 
|     ondestroy: ondestroyCallback; | 
|     onrestart: onrestartCallback; | 
|     constructor(opts: ClipProps); | 
|     step(globalTime: number, deltaTime: number): boolean; | 
|     pause(): void; | 
|     resume(): void; | 
|     setEasing(easing: AnimationEasing): void; | 
| } | 
|   | 
| declare type ValueType = 0 | 1 | 2 | 3 | 4 | 5 | 6; | 
| declare type Keyframe = { | 
|     time: number; | 
|     value: unknown; | 
|     percent: number; | 
|     rawValue: unknown; | 
|     easing?: AnimationEasing; | 
|     easingFunc?: (percent: number) => number; | 
|     additiveValue?: unknown; | 
| }; | 
| declare class Track { | 
|     keyframes: Keyframe[]; | 
|     propName: string; | 
|     valType: ValueType; | 
|     discrete: boolean; | 
|     _invalid: boolean; | 
|     private _finished; | 
|     private _needsSort; | 
|     private _additiveTrack; | 
|     private _additiveValue; | 
|     private _lastFr; | 
|     private _lastFrP; | 
|     constructor(propName: string); | 
|     isFinished(): boolean; | 
|     setFinished(): void; | 
|     needsAnimate(): boolean; | 
|     getAdditiveTrack(): Track; | 
|     addKeyframe(time: number, rawValue: unknown, easing?: AnimationEasing): Keyframe; | 
|     prepare(maxTime: number, additiveTrack?: Track): void; | 
|     step(target: any, percent: number): void; | 
|     private _addToTarget; | 
| } | 
| declare type DoneCallback = () => void; | 
| declare type AbortCallback = () => void; | 
| declare type OnframeCallback$1<T> = (target: T, percent: number) => void; | 
| declare class Animator<T> { | 
|     animation?: Animation; | 
|     targetName?: string; | 
|     scope?: string; | 
|     __fromStateTransition?: string; | 
|     private _tracks; | 
|     private _trackKeys; | 
|     private _target; | 
|     private _loop; | 
|     private _delay; | 
|     private _maxTime; | 
|     private _force; | 
|     private _paused; | 
|     private _started; | 
|     private _allowDiscrete; | 
|     private _additiveAnimators; | 
|     private _doneCbs; | 
|     private _onframeCbs; | 
|     private _abortedCbs; | 
|     private _clip; | 
|     constructor(target: T, loop: boolean, allowDiscreteAnimation?: boolean, additiveTo?: Animator<any>[]); | 
|     getMaxTime(): number; | 
|     getDelay(): number; | 
|     getLoop(): boolean; | 
|     getTarget(): T; | 
|     changeTarget(target: T): void; | 
|     when(time: number, props: Dictionary<any>, easing?: AnimationEasing): this; | 
|     whenWithKeys(time: number, props: Dictionary<any>, propNames: string[], easing?: AnimationEasing): this; | 
|     pause(): void; | 
|     resume(): void; | 
|     isPaused(): boolean; | 
|     duration(duration: number): this; | 
|     private _doneCallback; | 
|     private _abortedCallback; | 
|     private _setTracksFinished; | 
|     private _getAdditiveTrack; | 
|     start(easing?: AnimationEasing): this; | 
|     stop(forwardToLast?: boolean): void; | 
|     delay(time: number): this; | 
|     during(cb: OnframeCallback$1<T>): this; | 
|     done(cb: DoneCallback): this; | 
|     aborted(cb: AbortCallback): this; | 
|     getClip(): Clip; | 
|     getTrack(propName: string): Track; | 
|     getTracks(): Track[]; | 
|     stopTracks(propNames: string[], forwardToLast?: boolean): boolean; | 
|     saveTo(target: T, trackKeys?: readonly string[], firstOrLast?: boolean): void; | 
|     __changeFinalValue(finalProps: Dictionary<any>, trackKeys?: readonly string[]): void; | 
| } | 
|   | 
| interface PathStyleProps extends CommonStyleProps { | 
|     fill?: string | PatternObject | LinearGradientObject | RadialGradientObject; | 
|     stroke?: string | PatternObject | LinearGradientObject | RadialGradientObject; | 
|     decal?: PatternObject; | 
|     strokePercent?: number; | 
|     strokeNoScale?: boolean; | 
|     fillOpacity?: number; | 
|     strokeOpacity?: number; | 
|     lineDash?: false | number[] | 'solid' | 'dashed' | 'dotted'; | 
|     lineDashOffset?: number; | 
|     lineWidth?: number; | 
|     lineCap?: CanvasLineCap; | 
|     lineJoin?: CanvasLineJoin; | 
|     miterLimit?: number; | 
|     strokeFirst?: boolean; | 
| } | 
| interface PathProps extends DisplayableProps { | 
|     strokeContainThreshold?: number; | 
|     segmentIgnoreThreshold?: number; | 
|     subPixelOptimize?: boolean; | 
|     style?: PathStyleProps; | 
|     shape?: Dictionary<any>; | 
|     autoBatch?: boolean; | 
|     __value?: (string | number)[] | (string | number); | 
|     buildPath?: (ctx: PathProxy | CanvasRenderingContext2D, shapeCfg: Dictionary<any>, inBatch?: boolean) => void; | 
| } | 
| declare type PathKey = keyof PathProps; | 
| declare type PathPropertyType = PropType<PathProps, PathKey>; | 
| declare type PathStatePropNames = DisplayableStatePropNames | 'shape'; | 
| declare type PathState = Pick<PathProps, PathStatePropNames> & { | 
|     hoverLayer?: boolean; | 
| }; | 
| interface Path<Props extends PathProps = PathProps> { | 
|     animate(key?: '', loop?: boolean): Animator<this>; | 
|     animate(key: 'style', loop?: boolean): Animator<this['style']>; | 
|     animate(key: 'shape', loop?: boolean): Animator<this['shape']>; | 
|     getState(stateName: string): PathState; | 
|     ensureState(stateName: string): PathState; | 
|     states: Dictionary<PathState>; | 
|     stateProxy: (stateName: string) => PathState; | 
| } | 
| declare class Path<Props extends PathProps = PathProps> extends Displayable<Props> { | 
|     path: PathProxy; | 
|     strokeContainThreshold: number; | 
|     segmentIgnoreThreshold: number; | 
|     subPixelOptimize: boolean; | 
|     style: PathStyleProps; | 
|     autoBatch: boolean; | 
|     private _rectStroke; | 
|     protected _normalState: PathState; | 
|     protected _decalEl: Path; | 
|     shape: Dictionary<any>; | 
|     constructor(opts?: Props); | 
|     update(): void; | 
|     getDecalElement(): Path<PathProps>; | 
|     protected _init(props?: Props): void; | 
|     protected getDefaultStyle(): Props['style']; | 
|     protected getDefaultShape(): {}; | 
|     protected canBeInsideText(): boolean; | 
|     protected getInsideTextFill(): "#333" | "#ccc" | "#eee"; | 
|     protected getInsideTextStroke(textFill?: string): string; | 
|     buildPath(ctx: PathProxy | CanvasRenderingContext2D, shapeCfg: Dictionary<any>, inBatch?: boolean): void; | 
|     pathUpdated(): void; | 
|     getUpdatedPathProxy(inBatch?: boolean): PathProxy; | 
|     createPathProxy(): void; | 
|     hasStroke(): boolean; | 
|     hasFill(): boolean; | 
|     getBoundingRect(): BoundingRect; | 
|     contain(x: number, y: number): boolean; | 
|     dirtyShape(): void; | 
|     dirty(): void; | 
|     animateShape(loop: boolean): Animator<this["shape"]>; | 
|     updateDuringAnimation(targetKey: string): void; | 
|     attrKV(key: PathKey, value: PathPropertyType): void; | 
|     setShape(obj: Props['shape']): this; | 
|     setShape<T extends keyof Props['shape']>(obj: T, value: Props['shape'][T]): this; | 
|     shapeChanged(): boolean; | 
|     createStyle(obj?: Props['style']): Props["style"]; | 
|     protected _innerSaveToNormal(toState: PathState): void; | 
|     protected _applyStateObj(stateName: string, state: PathState, normalState: PathState, keepCurrentStates: boolean, transition: boolean, animationCfg: ElementAnimateConfig): void; | 
|     protected _mergeStates(states: PathState[]): PathState; | 
|     getAnimationStyleProps(): MapToType<PathProps, boolean>; | 
|     isZeroArea(): boolean; | 
|     static extend<Shape extends Dictionary<any>>(defaultProps: { | 
|         type?: string; | 
|         shape?: Shape; | 
|         style?: PathStyleProps; | 
|         beforeBrush?: Displayable['beforeBrush']; | 
|         afterBrush?: Displayable['afterBrush']; | 
|         getBoundingRect?: Displayable['getBoundingRect']; | 
|         calculateTextPosition?: Element['calculateTextPosition']; | 
|         buildPath(this: Path, ctx: CanvasRenderingContext2D | PathProxy, shape: Shape, inBatch?: boolean): void; | 
|         init?(this: Path, opts: PathProps): void; | 
|     }): { | 
|         new (opts?: PathProps & { | 
|             shape: Shape; | 
|         }): Path; | 
|     }; | 
|     protected static initDefaultProps: void; | 
| } | 
|   | 
| declare class Transformable { | 
|     parent: Transformable; | 
|     x: number; | 
|     y: number; | 
|     scaleX: number; | 
|     scaleY: number; | 
|     skewX: number; | 
|     skewY: number; | 
|     rotation: number; | 
|     anchorX: number; | 
|     anchorY: number; | 
|     originX: number; | 
|     originY: number; | 
|     globalScaleRatio: number; | 
|     transform: MatrixArray; | 
|     invTransform: MatrixArray; | 
|     getLocalTransform(m?: MatrixArray): MatrixArray; | 
|     setPosition(arr: number[]): void; | 
|     setScale(arr: number[]): void; | 
|     setSkew(arr: number[]): void; | 
|     setOrigin(arr: number[]): void; | 
|     needLocalTransform(): boolean; | 
|     updateTransform(): void; | 
|     private _resolveGlobalScaleRatio; | 
|     getComputedTransform(): MatrixArray; | 
|     setLocalTransform(m: VectorArray): void; | 
|     decomposeTransform(): void; | 
|     getGlobalScale(out?: VectorArray): VectorArray; | 
|     transformCoordToLocal(x: number, y: number): number[]; | 
|     transformCoordToGlobal(x: number, y: number): number[]; | 
|     getLineScale(): number; | 
|     copyTransform(source: Transformable): void; | 
|     static getLocalTransform(target: Transformable, m?: MatrixArray): MatrixArray; | 
|     private static initDefaultProps; | 
| } | 
| declare const TRANSFORMABLE_PROPS: readonly ["x", "y", "originX", "originY", "anchorX", "anchorY", "rotation", "scaleX", "scaleY", "skewX", "skewY"]; | 
| declare type TransformProp = (typeof TRANSFORMABLE_PROPS)[number]; | 
|   | 
| interface TSpanStyleProps extends PathStyleProps { | 
|     x?: number; | 
|     y?: number; | 
|     text?: string; | 
|     font?: string; | 
|     fontSize?: number; | 
|     fontWeight?: FontWeight; | 
|     fontStyle?: FontStyle; | 
|     fontFamily?: string; | 
|     textAlign?: CanvasTextAlign; | 
|     textBaseline?: CanvasTextBaseline; | 
| } | 
| interface TSpanProps extends DisplayableProps { | 
|     style?: TSpanStyleProps; | 
| } | 
| declare class TSpan extends Displayable<TSpanProps> { | 
|     style: TSpanStyleProps; | 
|     hasStroke(): boolean; | 
|     hasFill(): boolean; | 
|     createStyle(obj?: TSpanStyleProps): TSpanStyleProps; | 
|     setBoundingRect(rect: BoundingRect): void; | 
|     getBoundingRect(): BoundingRect; | 
|     protected static initDefaultProps: void; | 
| } | 
|   | 
| interface ImageStyleProps extends CommonStyleProps { | 
|     image?: string | ImageLike; | 
|     x?: number; | 
|     y?: number; | 
|     width?: number; | 
|     height?: number; | 
|     sx?: number; | 
|     sy?: number; | 
|     sWidth?: number; | 
|     sHeight?: number; | 
| } | 
| interface ImageProps extends DisplayableProps { | 
|     style?: ImageStyleProps; | 
|     onload?: (image: ImageLike) => void; | 
| } | 
| declare class ZRImage extends Displayable<ImageProps> { | 
|     style: ImageStyleProps; | 
|     __image: ImageLike; | 
|     __imageSrc: string; | 
|     onload: (image: ImageLike) => void; | 
|     createStyle(obj?: ImageStyleProps): ImageStyleProps; | 
|     private _getSize; | 
|     getWidth(): number; | 
|     getHeight(): number; | 
|     getAnimationStyleProps(): MapToType<ImageProps, boolean>; | 
|     getBoundingRect(): BoundingRect; | 
| } | 
|   | 
| declare class RectShape { | 
|     r?: number | number[]; | 
|     x: number; | 
|     y: number; | 
|     width: number; | 
|     height: number; | 
| } | 
| interface RectProps extends PathProps { | 
|     shape?: Partial<RectShape>; | 
| } | 
| declare class Rect extends Path<RectProps> { | 
|     shape: RectShape; | 
|     constructor(opts?: RectProps); | 
|     getDefaultShape(): RectShape; | 
|     buildPath(ctx: CanvasRenderingContext2D, shape: RectShape): void; | 
|     isZeroArea(): boolean; | 
| } | 
|   | 
| interface GroupProps extends ElementProps { | 
| } | 
| declare class Group extends Element<GroupProps> { | 
|     readonly isGroup = true; | 
|     private _children; | 
|     constructor(opts?: GroupProps); | 
|     childrenRef(): Element<ElementProps>[]; | 
|     children(): Element<ElementProps>[]; | 
|     childAt(idx: number): Element; | 
|     childOfName(name: string): Element; | 
|     childCount(): number; | 
|     add(child: Element): Group; | 
|     addBefore(child: Element, nextSibling: Element): this; | 
|     replace(oldChild: Element, newChild: Element): this; | 
|     replaceAt(child: Element, index: number): this; | 
|     _doAdd(child: Element): void; | 
|     remove(child: Element): this; | 
|     removeAll(): this; | 
|     eachChild<Context>(cb: (this: Context, el: Element, index?: number) => void, context?: Context): this; | 
|     traverse<T>(cb: (this: T, el: Element) => boolean | void, context?: T): this; | 
|     addSelfToZr(zr: ZRenderType): void; | 
|     removeSelfFromZr(zr: ZRenderType): void; | 
|     getBoundingRect(includeChildren?: Element[]): BoundingRect; | 
| } | 
| interface GroupLike extends Element { | 
|     childrenRef(): Element[]; | 
| } | 
|   | 
| interface TextStylePropsPart { | 
|     text?: string; | 
|     fill?: string; | 
|     stroke?: string; | 
|     strokeNoScale?: boolean; | 
|     opacity?: number; | 
|     fillOpacity?: number; | 
|     strokeOpacity?: number; | 
|     lineWidth?: number; | 
|     lineDash?: false | number[]; | 
|     lineDashOffset?: number; | 
|     borderDash?: false | number[]; | 
|     borderDashOffset?: number; | 
|     font?: string; | 
|     textFont?: string; | 
|     fontStyle?: FontStyle; | 
|     fontWeight?: FontWeight; | 
|     fontFamily?: string; | 
|     fontSize?: number | string; | 
|     align?: TextAlign; | 
|     verticalAlign?: TextVerticalAlign; | 
|     lineHeight?: number; | 
|     width?: number | string; | 
|     height?: number; | 
|     tag?: string; | 
|     textShadowColor?: string; | 
|     textShadowBlur?: number; | 
|     textShadowOffsetX?: number; | 
|     textShadowOffsetY?: number; | 
|     backgroundColor?: string | { | 
|         image: ImageLike | string; | 
|     }; | 
|     padding?: number | number[]; | 
|     margin?: number; | 
|     borderColor?: string; | 
|     borderWidth?: number; | 
|     borderRadius?: number | number[]; | 
|     shadowColor?: string; | 
|     shadowBlur?: number; | 
|     shadowOffsetX?: number; | 
|     shadowOffsetY?: number; | 
| } | 
| interface TextStyleProps extends TextStylePropsPart { | 
|     text?: string; | 
|     x?: number; | 
|     y?: number; | 
|     width?: number; | 
|     rich?: Dictionary<TextStylePropsPart>; | 
|     overflow?: 'break' | 'breakAll' | 'truncate' | 'none'; | 
|     lineOverflow?: 'truncate'; | 
|     ellipsis?: string; | 
|     placeholder?: string; | 
|     truncateMinChar?: number; | 
| } | 
| interface TextProps extends DisplayableProps { | 
|     style?: TextStyleProps; | 
|     zlevel?: number; | 
|     z?: number; | 
|     z2?: number; | 
|     culling?: boolean; | 
|     cursor?: string; | 
| } | 
| declare type TextState = Pick<TextProps, DisplayableStatePropNames> & ElementCommonState; | 
| declare type DefaultTextStyle = Pick<TextStyleProps, 'fill' | 'stroke' | 'align' | 'verticalAlign'> & { | 
|     autoStroke?: boolean; | 
| }; | 
| interface ZRText { | 
|     animate(key?: '', loop?: boolean): Animator<this>; | 
|     animate(key: 'style', loop?: boolean): Animator<this['style']>; | 
|     getState(stateName: string): TextState; | 
|     ensureState(stateName: string): TextState; | 
|     states: Dictionary<TextState>; | 
|     stateProxy: (stateName: string) => TextState; | 
| } | 
| declare class ZRText extends Displayable<TextProps> implements GroupLike { | 
|     type: string; | 
|     style: TextStyleProps; | 
|     overlap: 'hidden' | 'show' | 'blur'; | 
|     innerTransformable: Transformable; | 
|     isTruncated: boolean; | 
|     private _children; | 
|     private _childCursor; | 
|     private _defaultStyle; | 
|     constructor(opts?: TextProps); | 
|     childrenRef(): (ZRImage | Rect | TSpan)[]; | 
|     update(): void; | 
|     updateTransform(): void; | 
|     getLocalTransform(m?: MatrixArray): MatrixArray; | 
|     getComputedTransform(): MatrixArray; | 
|     private _updateSubTexts; | 
|     addSelfToZr(zr: ZRenderType): void; | 
|     removeSelfFromZr(zr: ZRenderType): void; | 
|     getBoundingRect(): BoundingRect; | 
|     setDefaultTextStyle(defaultTextStyle: DefaultTextStyle): void; | 
|     setTextContent(textContent: never): void; | 
|     protected _mergeStyle(targetStyle: TextStyleProps, sourceStyle: TextStyleProps): TextStyleProps; | 
|     private _mergeRich; | 
|     getAnimationStyleProps(): MapToType<TextProps, boolean>; | 
|     private _getOrCreateChild; | 
|     private _updatePlainTexts; | 
|     private _updateRichTexts; | 
|     private _placeToken; | 
|     private _renderBackground; | 
|     static makeFont(style: TextStylePropsPart): string; | 
| } | 
|   | 
| interface TextPositionCalculationResult { | 
|     x: number; | 
|     y: number; | 
|     align: TextAlign; | 
|     verticalAlign: TextVerticalAlign; | 
| } | 
|   | 
| declare class PolylineShape { | 
|     points: VectorArray[]; | 
|     percent?: number; | 
|     smooth?: number; | 
|     smoothConstraint?: VectorArray[]; | 
| } | 
| interface PolylineProps extends PathProps { | 
|     shape?: Partial<PolylineShape>; | 
| } | 
| declare class Polyline extends Path<PolylineProps> { | 
|     shape: PolylineShape; | 
|     constructor(opts?: PolylineProps); | 
|     getDefaultStyle(): { | 
|         stroke: string; | 
|         fill: string; | 
|     }; | 
|     getDefaultShape(): PolylineShape; | 
|     buildPath(ctx: CanvasRenderingContext2D, shape: PolylineShape): void; | 
| } | 
|   | 
| interface ElementAnimateConfig { | 
|     duration?: number; | 
|     delay?: number; | 
|     easing?: AnimationEasing; | 
|     during?: (percent: number) => void; | 
|     done?: Function; | 
|     aborted?: Function; | 
|     scope?: string; | 
|     force?: boolean; | 
|     additive?: boolean; | 
|     setToFinal?: boolean; | 
| } | 
| interface ElementTextConfig { | 
|     position?: BuiltinTextPosition | (number | string)[]; | 
|     rotation?: number; | 
|     layoutRect?: RectLike; | 
|     offset?: number[]; | 
|     origin?: (number | string)[] | 'center'; | 
|     distance?: number; | 
|     local?: boolean; | 
|     insideFill?: string; | 
|     insideStroke?: string; | 
|     outsideFill?: string; | 
|     outsideStroke?: string; | 
|     inside?: boolean; | 
| } | 
| interface ElementTextGuideLineConfig { | 
|     anchor?: Point; | 
|     showAbove?: boolean; | 
|     candidates?: ('left' | 'top' | 'right' | 'bottom')[]; | 
| } | 
| interface ElementEvent { | 
|     type: ElementEventName; | 
|     event: ZRRawEvent; | 
|     target: Element; | 
|     topTarget: Element; | 
|     cancelBubble: boolean; | 
|     offsetX: number; | 
|     offsetY: number; | 
|     gestureEvent: string; | 
|     pinchX: number; | 
|     pinchY: number; | 
|     pinchScale: number; | 
|     wheelDelta: number; | 
|     zrByTouch: boolean; | 
|     which: number; | 
|     stop: (this: ElementEvent) => void; | 
| } | 
| declare type ElementEventCallback<Ctx, Impl> = (this: CbThis$1<Ctx, Impl>, e: ElementEvent) => boolean | void; | 
| declare type CbThis$1<Ctx, Impl> = unknown extends Ctx ? Impl : Ctx; | 
| interface ElementEventHandlerProps { | 
|     onclick: ElementEventCallback<unknown, unknown>; | 
|     ondblclick: ElementEventCallback<unknown, unknown>; | 
|     onmouseover: ElementEventCallback<unknown, unknown>; | 
|     onmouseout: ElementEventCallback<unknown, unknown>; | 
|     onmousemove: ElementEventCallback<unknown, unknown>; | 
|     onmousewheel: ElementEventCallback<unknown, unknown>; | 
|     onmousedown: ElementEventCallback<unknown, unknown>; | 
|     onmouseup: ElementEventCallback<unknown, unknown>; | 
|     oncontextmenu: ElementEventCallback<unknown, unknown>; | 
|     ondrag: ElementEventCallback<unknown, unknown>; | 
|     ondragstart: ElementEventCallback<unknown, unknown>; | 
|     ondragend: ElementEventCallback<unknown, unknown>; | 
|     ondragenter: ElementEventCallback<unknown, unknown>; | 
|     ondragleave: ElementEventCallback<unknown, unknown>; | 
|     ondragover: ElementEventCallback<unknown, unknown>; | 
|     ondrop: ElementEventCallback<unknown, unknown>; | 
| } | 
| interface ElementProps extends Partial<ElementEventHandlerProps>, Partial<Pick<Transformable, TransformProp>> { | 
|     name?: string; | 
|     ignore?: boolean; | 
|     isGroup?: boolean; | 
|     draggable?: boolean | 'horizontal' | 'vertical'; | 
|     silent?: boolean; | 
|     ignoreClip?: boolean; | 
|     globalScaleRatio?: number; | 
|     textConfig?: ElementTextConfig; | 
|     textContent?: ZRText; | 
|     clipPath?: Path; | 
|     drift?: Element['drift']; | 
|     extra?: Dictionary<unknown>; | 
|     anid?: string; | 
| } | 
| declare const PRIMARY_STATES_KEYS: ["x" | "y" | "originX" | "originY" | "anchorX" | "anchorY" | "rotation" | "scaleX" | "scaleY" | "skewX" | "skewY", "ignore"]; | 
| declare type ElementStatePropNames = (typeof PRIMARY_STATES_KEYS)[number] | 'textConfig'; | 
| declare type ElementState = Pick<ElementProps, ElementStatePropNames> & ElementCommonState; | 
| declare type ElementCommonState = { | 
|     hoverLayer?: boolean; | 
| }; | 
| declare type ElementCalculateTextPosition = (out: TextPositionCalculationResult, style: ElementTextConfig, rect: RectLike) => TextPositionCalculationResult; | 
| interface Element<Props extends ElementProps = ElementProps> extends Transformable, Eventful<{ | 
|     [key in ElementEventName]: (e: ElementEvent) => void | boolean; | 
| } & { | 
|     [key in string]: (...args: any) => void | boolean; | 
| }>, ElementEventHandlerProps { | 
| } | 
| declare class Element<Props extends ElementProps = ElementProps> { | 
|     id: number; | 
|     type: string; | 
|     name: string; | 
|     ignore: boolean; | 
|     silent: boolean; | 
|     isGroup: boolean; | 
|     draggable: boolean | 'horizontal' | 'vertical'; | 
|     dragging: boolean; | 
|     parent: Group; | 
|     animators: Animator<any>[]; | 
|     ignoreClip: boolean; | 
|     __hostTarget: Element; | 
|     __zr: ZRenderType; | 
|     __dirty: number; | 
|     __isRendered: boolean; | 
|     __inHover: boolean; | 
|     private _clipPath?; | 
|     private _textContent?; | 
|     private _textGuide?; | 
|     textConfig?: ElementTextConfig; | 
|     textGuideLineConfig?: ElementTextGuideLineConfig; | 
|     anid: string; | 
|     extra: Dictionary<unknown>; | 
|     currentStates?: string[]; | 
|     prevStates?: string[]; | 
|     states: Dictionary<ElementState>; | 
|     stateTransition: ElementAnimateConfig; | 
|     stateProxy?: (stateName: string, targetStates?: string[]) => ElementState; | 
|     protected _normalState: ElementState; | 
|     private _innerTextDefaultStyle; | 
|     constructor(props?: Props); | 
|     protected _init(props?: Props): void; | 
|     drift(dx: number, dy: number, e?: ElementEvent): void; | 
|     beforeUpdate(): void; | 
|     afterUpdate(): void; | 
|     update(): void; | 
|     updateInnerText(forceUpdate?: boolean): void; | 
|     protected canBeInsideText(): boolean; | 
|     protected getInsideTextFill(): string | undefined; | 
|     protected getInsideTextStroke(textFill: string): string | undefined; | 
|     protected getOutsideFill(): string | undefined; | 
|     protected getOutsideStroke(textFill: string): string; | 
|     traverse<Context>(cb: (this: Context, el: Element<Props>) => void, context?: Context): void; | 
|     protected attrKV(key: string, value: unknown): void; | 
|     hide(): void; | 
|     show(): void; | 
|     attr(keyOrObj: Props): this; | 
|     attr<T extends keyof Props>(keyOrObj: T, value: Props[T]): this; | 
|     saveCurrentToNormalState(toState: ElementState): void; | 
|     protected _innerSaveToNormal(toState: ElementState): void; | 
|     protected _savePrimaryToNormal(toState: Dictionary<any>, normalState: Dictionary<any>, primaryKeys: readonly string[]): void; | 
|     hasState(): boolean; | 
|     getState(name: string): ElementState; | 
|     ensureState(name: string): ElementState; | 
|     clearStates(noAnimation?: boolean): void; | 
|     useState(stateName: string, keepCurrentStates?: boolean, noAnimation?: boolean, forceUseHoverLayer?: boolean): ElementState; | 
|     useStates(states: string[], noAnimation?: boolean, forceUseHoverLayer?: boolean): void; | 
|     isSilent(): boolean; | 
|     private _updateAnimationTargets; | 
|     removeState(state: string): void; | 
|     replaceState(oldState: string, newState: string, forceAdd: boolean): void; | 
|     toggleState(state: string, enable: boolean): void; | 
|     protected _mergeStates(states: ElementState[]): ElementState; | 
|     protected _applyStateObj(stateName: string, state: ElementState, normalState: ElementState, keepCurrentStates: boolean, transition: boolean, animationCfg: ElementAnimateConfig): void; | 
|     private _attachComponent; | 
|     private _detachComponent; | 
|     getClipPath(): Path<PathProps>; | 
|     setClipPath(clipPath: Path): void; | 
|     removeClipPath(): void; | 
|     getTextContent(): ZRText; | 
|     setTextContent(textEl: ZRText): void; | 
|     setTextConfig(cfg: ElementTextConfig): void; | 
|     removeTextConfig(): void; | 
|     removeTextContent(): void; | 
|     getTextGuideLine(): Polyline; | 
|     setTextGuideLine(guideLine: Polyline): void; | 
|     removeTextGuideLine(): void; | 
|     markRedraw(): void; | 
|     dirty(): void; | 
|     private _toggleHoverLayerFlag; | 
|     addSelfToZr(zr: ZRenderType): void; | 
|     removeSelfFromZr(zr: ZRenderType): void; | 
|     animate(key?: string, loop?: boolean, allowDiscreteAnimation?: boolean): Animator<any>; | 
|     addAnimator(animator: Animator<any>, key: string): void; | 
|     updateDuringAnimation(key: string): void; | 
|     stopAnimation(scope?: string, forwardToLast?: boolean): this; | 
|     animateTo(target: Props, cfg?: ElementAnimateConfig, animationProps?: MapToType<Props, boolean>): void; | 
|     animateFrom(target: Props, cfg: ElementAnimateConfig, animationProps?: MapToType<Props, boolean>): void; | 
|     protected _transitionState(stateName: string, target: Props, cfg?: ElementAnimateConfig, animationProps?: MapToType<Props, boolean>): void; | 
|     getBoundingRect(): BoundingRect; | 
|     getPaintRect(): BoundingRect; | 
|     calculateTextPosition: ElementCalculateTextPosition; | 
|     protected static initDefaultProps: void; | 
| } | 
|   | 
| interface CommonStyleProps { | 
|     shadowBlur?: number; | 
|     shadowOffsetX?: number; | 
|     shadowOffsetY?: number; | 
|     shadowColor?: string; | 
|     opacity?: number; | 
|     blend?: string; | 
| } | 
| interface DisplayableProps extends ElementProps { | 
|     style?: Dictionary<any>; | 
|     zlevel?: number; | 
|     z?: number; | 
|     z2?: number; | 
|     culling?: boolean; | 
|     cursor?: string; | 
|     rectHover?: boolean; | 
|     progressive?: boolean; | 
|     incremental?: boolean; | 
|     ignoreCoarsePointer?: boolean; | 
|     batch?: boolean; | 
|     invisible?: boolean; | 
| } | 
| declare type DisplayableKey = keyof DisplayableProps; | 
| declare type DisplayablePropertyType = PropType<DisplayableProps, DisplayableKey>; | 
| declare type DisplayableStatePropNames = ElementStatePropNames | 'style' | 'z' | 'z2' | 'invisible'; | 
| declare type DisplayableState = Pick<DisplayableProps, DisplayableStatePropNames> & ElementCommonState; | 
| interface Displayable<Props extends DisplayableProps = DisplayableProps> { | 
|     animate(key?: '', loop?: boolean): Animator<this>; | 
|     animate(key: 'style', loop?: boolean): Animator<this['style']>; | 
|     getState(stateName: string): DisplayableState; | 
|     ensureState(stateName: string): DisplayableState; | 
|     states: Dictionary<DisplayableState>; | 
|     stateProxy: (stateName: string) => DisplayableState; | 
| } | 
| declare class Displayable<Props extends DisplayableProps = DisplayableProps> extends Element<Props> { | 
|     invisible: boolean; | 
|     z: number; | 
|     z2: number; | 
|     zlevel: number; | 
|     culling: boolean; | 
|     cursor: string; | 
|     rectHover: boolean; | 
|     incremental: boolean; | 
|     ignoreCoarsePointer?: boolean; | 
|     style: Dictionary<any>; | 
|     protected _normalState: DisplayableState; | 
|     protected _rect: BoundingRect; | 
|     protected _paintRect: BoundingRect; | 
|     protected _prevPaintRect: BoundingRect; | 
|     dirtyRectTolerance: number; | 
|     useHoverLayer?: boolean; | 
|     __hoverStyle?: CommonStyleProps; | 
|     __clipPaths?: Path[]; | 
|     __canvasFillGradient: CanvasGradient; | 
|     __canvasStrokeGradient: CanvasGradient; | 
|     __canvasFillPattern: CanvasPattern; | 
|     __canvasStrokePattern: CanvasPattern; | 
|     __svgEl: SVGElement; | 
|     constructor(props?: Props); | 
|     protected _init(props?: Props): void; | 
|     beforeBrush(): void; | 
|     afterBrush(): void; | 
|     innerBeforeBrush(): void; | 
|     innerAfterBrush(): void; | 
|     shouldBePainted(viewWidth: number, viewHeight: number, considerClipPath: boolean, considerAncestors: boolean): boolean; | 
|     contain(x: number, y: number): boolean; | 
|     traverse<Context>(cb: (this: Context, el: this) => void, context?: Context): void; | 
|     rectContain(x: number, y: number): boolean; | 
|     getPaintRect(): BoundingRect; | 
|     setPrevPaintRect(paintRect: BoundingRect): void; | 
|     getPrevPaintRect(): BoundingRect; | 
|     animateStyle(loop: boolean): Animator<this["style"]>; | 
|     updateDuringAnimation(targetKey: string): void; | 
|     attrKV(key: DisplayableKey, value: DisplayablePropertyType): void; | 
|     setStyle(obj: Props['style']): this; | 
|     setStyle<T extends keyof Props['style']>(obj: T, value: Props['style'][T]): this; | 
|     dirtyStyle(notRedraw?: boolean): void; | 
|     dirty(): void; | 
|     styleChanged(): boolean; | 
|     styleUpdated(): void; | 
|     createStyle(obj?: Props['style']): Props["style"]; | 
|     useStyle(obj: Props['style']): void; | 
|     isStyleObject(obj: Props['style']): any; | 
|     protected _innerSaveToNormal(toState: DisplayableState): void; | 
|     protected _applyStateObj(stateName: string, state: DisplayableState, normalState: DisplayableState, keepCurrentStates: boolean, transition: boolean, animationCfg: ElementAnimateConfig): void; | 
|     protected _mergeStates(states: DisplayableState[]): DisplayableState; | 
|     protected _mergeStyle(targetStyle: CommonStyleProps, sourceStyle: CommonStyleProps): CommonStyleProps; | 
|     getAnimationStyleProps(): MapToType<DisplayableProps, boolean>; | 
|     protected static initDefaultProps: void; | 
| } | 
|   | 
| interface PainterBase { | 
|     type: string; | 
|     root?: HTMLElement; | 
|     ssrOnly?: boolean; | 
|     resize(width?: number | string, height?: number | string): void; | 
|     refresh(): void; | 
|     clear(): void; | 
|     renderToString?(): string; | 
|     getType: () => string; | 
|     getWidth(): number; | 
|     getHeight(): number; | 
|     dispose(): void; | 
|     getViewportRoot: () => HTMLElement; | 
|     getViewportRootOffset: () => { | 
|         offsetLeft: number; | 
|         offsetTop: number; | 
|     }; | 
|     refreshHover(): void; | 
|     configLayer(zlevel: number, config: Dictionary<any>): void; | 
|     setBackgroundColor(backgroundColor: string | GradientObject | PatternObject): void; | 
| } | 
|   | 
| interface HandlerProxyInterface extends Eventful { | 
|     handler: Handler; | 
|     dispose: () => void; | 
|     setCursor: (cursorStyle?: string) => void; | 
| } | 
|   | 
| declare function shapeCompareFunc(a: Displayable, b: Displayable): number; | 
| declare class Storage { | 
|     private _roots; | 
|     private _displayList; | 
|     private _displayListLen; | 
|     traverse<T>(cb: (this: T, el: Element) => void, context?: T): void; | 
|     getDisplayList(update?: boolean, includeIgnore?: boolean): Displayable[]; | 
|     updateDisplayList(includeIgnore?: boolean): void; | 
|     private _updateAndAddDisplayable; | 
|     addRoot(el: Element): void; | 
|     delRoot(el: Element | Element[]): void; | 
|     delAllRoots(): void; | 
|     getRoots(): Element<ElementProps>[]; | 
|     dispose(): void; | 
|     displayableSortFunc: typeof shapeCompareFunc; | 
| } | 
|   | 
| declare class HoveredResult { | 
|     x: number; | 
|     y: number; | 
|     target: Displayable; | 
|     topTarget: Displayable; | 
|     constructor(x?: number, y?: number); | 
| } | 
| declare type HandlerName = 'click' | 'dblclick' | 'mousewheel' | 'mouseout' | 'mouseup' | 'mousedown' | 'mousemove' | 'contextmenu'; | 
| declare class Handler extends Eventful { | 
|     storage: Storage; | 
|     painter: PainterBase; | 
|     painterRoot: HTMLElement; | 
|     proxy: HandlerProxyInterface; | 
|     private _hovered; | 
|     private _gestureMgr; | 
|     private _draggingMgr; | 
|     private _pointerSize; | 
|     _downEl: Element; | 
|     _upEl: Element; | 
|     _downPoint: [number, number]; | 
|     constructor(storage: Storage, painter: PainterBase, proxy: HandlerProxyInterface, painterRoot: HTMLElement, pointerSize: number); | 
|     setHandlerProxy(proxy: HandlerProxyInterface): void; | 
|     mousemove(event: ZRRawEvent): void; | 
|     mouseout(event: ZRRawEvent): void; | 
|     resize(): void; | 
|     dispatch(eventName: HandlerName, eventArgs?: any): void; | 
|     dispose(): void; | 
|     setCursorStyle(cursorStyle: string): void; | 
|     dispatchToElement(targetInfo: { | 
|         target?: Element; | 
|         topTarget?: Element; | 
|     }, eventName: ElementEventName, event: ZRRawEvent): void; | 
|     findHover(x: number, y: number, exclude?: Displayable): HoveredResult; | 
|     processGesture(event: ZRRawEvent, stage?: 'start' | 'end' | 'change'): void; | 
|     click: (event: ZRRawEvent) => void; | 
|     mousedown: (event: ZRRawEvent) => void; | 
|     mouseup: (event: ZRRawEvent) => void; | 
|     mousewheel: (event: ZRRawEvent) => void; | 
|     dblclick: (event: ZRRawEvent) => void; | 
|     contextmenu: (event: ZRRawEvent) => void; | 
| } | 
|   | 
| interface LayerConfig { | 
|     clearColor?: string | GradientObject | ImagePatternObject; | 
|     motionBlur?: boolean; | 
|     lastFrameAlpha?: number; | 
| } | 
|   | 
| /*! | 
| * ZRender, a high performance 2d drawing library. | 
| * | 
| * Copyright (c) 2013, Baidu Inc. | 
| * All rights reserved. | 
| * | 
| * LICENSE | 
| * https://github.com/ecomfe/zrender/blob/master/LICENSE.txt | 
| */ | 
|   | 
| declare type PainterBaseCtor = { | 
|     new (dom: HTMLElement, storage: Storage, ...args: any[]): PainterBase; | 
| }; | 
| declare class ZRender { | 
|     dom?: HTMLElement; | 
|     id: number; | 
|     storage: Storage; | 
|     painter: PainterBase; | 
|     handler: Handler; | 
|     animation: Animation; | 
|     private _sleepAfterStill; | 
|     private _stillFrameAccum; | 
|     private _needsRefresh; | 
|     private _needsRefreshHover; | 
|     private _disposed; | 
|     private _darkMode; | 
|     private _backgroundColor; | 
|     constructor(id: number, dom?: HTMLElement, opts?: ZRenderInitOpt); | 
|     add(el: Element): void; | 
|     remove(el: Element): void; | 
|     configLayer(zLevel: number, config: LayerConfig): void; | 
|     setBackgroundColor(backgroundColor: string | GradientObject | PatternObject): void; | 
|     getBackgroundColor(): string | GradientObject | PatternObject; | 
|     setDarkMode(darkMode: boolean): void; | 
|     isDarkMode(): boolean; | 
|     refreshImmediately(fromInside?: boolean): void; | 
|     refresh(): void; | 
|     flush(): void; | 
|     private _flush; | 
|     setSleepAfterStill(stillFramesCount: number): void; | 
|     wakeUp(): void; | 
|     refreshHover(): void; | 
|     refreshHoverImmediately(): void; | 
|     resize(opts?: { | 
|         width?: number | string; | 
|         height?: number | string; | 
|     }): void; | 
|     clearAnimation(): void; | 
|     getWidth(): number | undefined; | 
|     getHeight(): number | undefined; | 
|     setCursorStyle(cursorStyle: string): void; | 
|     findHover(x: number, y: number): { | 
|         target: Displayable; | 
|         topTarget: Displayable; | 
|     } | undefined; | 
|     on<Ctx>(eventName: ElementEventName, eventHandler: ElementEventCallback<Ctx, ZRenderType>, context?: Ctx): this; | 
|     on<Ctx>(eventName: string, eventHandler: WithThisType<EventCallback<any[]>, unknown extends Ctx ? ZRenderType : Ctx>, context?: Ctx): this; | 
|     off(eventName?: string, eventHandler?: EventCallback): void; | 
|     trigger(eventName: string, event?: unknown): void; | 
|     clear(): void; | 
|     dispose(): void; | 
| } | 
| interface ZRenderInitOpt { | 
|     renderer?: string; | 
|     devicePixelRatio?: number; | 
|     width?: number | string; | 
|     height?: number | string; | 
|     useDirtyRect?: boolean; | 
|     useCoarsePointer?: 'auto' | boolean; | 
|     pointerSize?: number; | 
|     ssr?: boolean; | 
| } | 
| declare function init(dom?: HTMLElement | null, opts?: ZRenderInitOpt): ZRender; | 
| declare function dispose(zr: ZRender): void; | 
| declare function disposeAll(): void; | 
| declare function getInstance(id: number): ZRender; | 
| declare function registerPainter(name: string, Ctor: PainterBaseCtor): void; | 
| declare type ElementSSRData = HashMap<unknown>; | 
| declare type ElementSSRDataGetter<T> = (el: Element) => HashMap<T>; | 
| declare function getElementSSRData(el: Element): ElementSSRData; | 
| declare function registerSSRDataGetter<T>(getter: ElementSSRDataGetter<T>): void; | 
| declare const version = "5.6.1"; | 
| interface ZRenderType extends ZRender { | 
| } | 
|   | 
| type zrender_d_ZRenderInitOpt = ZRenderInitOpt; | 
| declare const zrender_d_init: typeof init; | 
| declare const zrender_d_dispose: typeof dispose; | 
| declare const zrender_d_disposeAll: typeof disposeAll; | 
| declare const zrender_d_getInstance: typeof getInstance; | 
| declare const zrender_d_registerPainter: typeof registerPainter; | 
| type zrender_d_ElementSSRData = ElementSSRData; | 
| type zrender_d_ElementSSRDataGetter<T> = ElementSSRDataGetter<T>; | 
| declare const zrender_d_getElementSSRData: typeof getElementSSRData; | 
| declare const zrender_d_registerSSRDataGetter: typeof registerSSRDataGetter; | 
| declare const zrender_d_version: typeof version; | 
| type zrender_d_ZRenderType = ZRenderType; | 
| declare namespace zrender_d { | 
|   export { | 
|     zrender_d_ZRenderInitOpt as ZRenderInitOpt, | 
|     zrender_d_init as init, | 
|     zrender_d_dispose as dispose, | 
|     zrender_d_disposeAll as disposeAll, | 
|     zrender_d_getInstance as getInstance, | 
|     zrender_d_registerPainter as registerPainter, | 
|     zrender_d_ElementSSRData as ElementSSRData, | 
|     zrender_d_ElementSSRDataGetter as ElementSSRDataGetter, | 
|     zrender_d_getElementSSRData as getElementSSRData, | 
|     zrender_d_registerSSRDataGetter as registerSSRDataGetter, | 
|     zrender_d_version as version, | 
|     zrender_d_ZRenderType as ZRenderType, | 
|   }; | 
| } | 
|   | 
| declare function encodeHTML(source: string): string; | 
|   | 
| interface InnerTruncateOption { | 
|     maxIteration?: number; | 
|     minChar?: number; | 
|     placeholder?: string; | 
|     maxIterations?: number; | 
| } | 
| declare function truncateText(text: string, containerWidth: number, font: string, ellipsis?: string, options?: InnerTruncateOption): string; | 
|   | 
| declare type SVGPathOption = Omit<PathProps, 'shape' | 'buildPath'>; | 
| declare class SVGPath extends Path { | 
|     applyTransform(m: MatrixArray): void; | 
| } | 
| declare function extendFromString(str: string, defaultOpts?: SVGPathOption): typeof SVGPath; | 
| declare function mergePath(pathEls: Path[], opts: PathProps): Path<PathProps>; | 
|   | 
| declare class CircleShape { | 
|     cx: number; | 
|     cy: number; | 
|     r: number; | 
| } | 
| interface CircleProps extends PathProps { | 
|     shape?: Partial<CircleShape>; | 
| } | 
| declare class Circle extends Path<CircleProps> { | 
|     shape: CircleShape; | 
|     constructor(opts?: CircleProps); | 
|     getDefaultShape(): CircleShape; | 
|     buildPath(ctx: CanvasRenderingContext2D, shape: CircleShape): void; | 
| } | 
|   | 
| declare class EllipseShape { | 
|     cx: number; | 
|     cy: number; | 
|     rx: number; | 
|     ry: number; | 
| } | 
| interface EllipseProps extends PathProps { | 
|     shape?: Partial<EllipseShape>; | 
| } | 
| declare class Ellipse extends Path<EllipseProps> { | 
|     shape: EllipseShape; | 
|     constructor(opts?: EllipseProps); | 
|     getDefaultShape(): EllipseShape; | 
|     buildPath(ctx: CanvasRenderingContext2D, shape: EllipseShape): void; | 
| } | 
|   | 
| declare class SectorShape { | 
|     cx: number; | 
|     cy: number; | 
|     r0: number; | 
|     r: number; | 
|     startAngle: number; | 
|     endAngle: number; | 
|     clockwise: boolean; | 
|     cornerRadius: number | number[]; | 
| } | 
| interface SectorProps extends PathProps { | 
|     shape?: Partial<SectorShape>; | 
| } | 
| declare class Sector extends Path<SectorProps> { | 
|     shape: SectorShape; | 
|     constructor(opts?: SectorProps); | 
|     getDefaultShape(): SectorShape; | 
|     buildPath(ctx: CanvasRenderingContext2D, shape: SectorShape): void; | 
|     isZeroArea(): boolean; | 
| } | 
|   | 
| declare class RingShape { | 
|     cx: number; | 
|     cy: number; | 
|     r: number; | 
|     r0: number; | 
| } | 
| interface RingProps extends PathProps { | 
|     shape?: Partial<RingShape>; | 
| } | 
| declare class Ring extends Path<RingProps> { | 
|     shape: RingShape; | 
|     constructor(opts?: RingProps); | 
|     getDefaultShape(): RingShape; | 
|     buildPath(ctx: CanvasRenderingContext2D, shape: RingShape): void; | 
| } | 
|   | 
| declare class PolygonShape { | 
|     points: VectorArray[]; | 
|     smooth?: number; | 
|     smoothConstraint?: VectorArray[]; | 
| } | 
| interface PolygonProps extends PathProps { | 
|     shape?: Partial<PolygonShape>; | 
| } | 
| declare class Polygon extends Path<PolygonProps> { | 
|     shape: PolygonShape; | 
|     constructor(opts?: PolygonProps); | 
|     getDefaultShape(): PolygonShape; | 
|     buildPath(ctx: CanvasRenderingContext2D, shape: PolygonShape): void; | 
| } | 
|   | 
| declare class LineShape { | 
|     x1: number; | 
|     y1: number; | 
|     x2: number; | 
|     y2: number; | 
|     percent: number; | 
| } | 
| interface LineProps extends PathProps { | 
|     shape?: Partial<LineShape>; | 
| } | 
| declare class Line extends Path<LineProps> { | 
|     shape: LineShape; | 
|     constructor(opts?: LineProps); | 
|     getDefaultStyle(): { | 
|         stroke: string; | 
|         fill: string; | 
|     }; | 
|     getDefaultShape(): LineShape; | 
|     buildPath(ctx: CanvasRenderingContext2D, shape: LineShape): void; | 
|     pointAt(p: number): VectorArray; | 
| } | 
|   | 
| declare class BezierCurveShape { | 
|     x1: number; | 
|     y1: number; | 
|     x2: number; | 
|     y2: number; | 
|     cpx1: number; | 
|     cpy1: number; | 
|     cpx2?: number; | 
|     cpy2?: number; | 
|     percent: number; | 
| } | 
| interface BezierCurveProps extends PathProps { | 
|     shape?: Partial<BezierCurveShape>; | 
| } | 
| declare class BezierCurve extends Path<BezierCurveProps> { | 
|     shape: BezierCurveShape; | 
|     constructor(opts?: BezierCurveProps); | 
|     getDefaultStyle(): { | 
|         stroke: string; | 
|         fill: string; | 
|     }; | 
|     getDefaultShape(): BezierCurveShape; | 
|     buildPath(ctx: CanvasRenderingContext2D, shape: BezierCurveShape): void; | 
|     pointAt(t: number): number[]; | 
|     tangentAt(t: number): number[]; | 
| } | 
|   | 
| declare class ArcShape { | 
|     cx: number; | 
|     cy: number; | 
|     r: number; | 
|     startAngle: number; | 
|     endAngle: number; | 
|     clockwise?: boolean; | 
| } | 
| interface ArcProps extends PathProps { | 
|     shape?: Partial<ArcShape>; | 
| } | 
| declare class Arc extends Path<ArcProps> { | 
|     shape: ArcShape; | 
|     constructor(opts?: ArcProps); | 
|     getDefaultStyle(): { | 
|         stroke: string; | 
|         fill: string; | 
|     }; | 
|     getDefaultShape(): ArcShape; | 
|     buildPath(ctx: CanvasRenderingContext2D, shape: ArcShape): void; | 
| } | 
|   | 
| interface CompoundPathShape { | 
|     paths: Path[]; | 
| } | 
| declare class CompoundPath extends Path { | 
|     type: string; | 
|     shape: CompoundPathShape; | 
|     private _updatePathDirty; | 
|     beforeBrush(): void; | 
|     buildPath(ctx: PathProxy | CanvasRenderingContext2D, shape: CompoundPathShape): void; | 
|     afterBrush(): void; | 
|     getBoundingRect(): BoundingRect; | 
| } | 
|   | 
| declare class IncrementalDisplayable extends Displayable { | 
|     notClear: boolean; | 
|     incremental: boolean; | 
|     private _displayables; | 
|     private _temporaryDisplayables; | 
|     private _cursor; | 
|     traverse<T>(cb: (this: T, el: this) => void, context: T): void; | 
|     useStyle(): void; | 
|     getCursor(): number; | 
|     innerAfterBrush(): void; | 
|     clearDisplaybles(): void; | 
|     clearTemporalDisplayables(): void; | 
|     addDisplayable(displayable: Displayable, notPersistent?: boolean): void; | 
|     addDisplayables(displayables: Displayable[], notPersistent?: boolean): void; | 
|     getDisplayables(): Displayable[]; | 
|     getTemporalDisplayables(): Displayable[]; | 
|     eachPendingDisplayable(cb: (displayable: Displayable) => void): void; | 
|     update(): void; | 
|     getBoundingRect(): BoundingRect; | 
|     contain(x: number, y: number): boolean; | 
| } | 
|   | 
| declare type Constructor = new (...args: any) => any; | 
| interface ClassManager { | 
|     registerClass: (clz: Constructor) => Constructor; | 
|     getClass: (componentMainType: ComponentMainType, subType?: ComponentSubType, throwWhenNotFound?: boolean) => Constructor; | 
|     getClassesByMainType: (componentType: ComponentMainType) => Constructor[]; | 
|     hasClass: (componentType: ComponentFullType) => boolean; | 
|     getAllClassMainTypes: () => ComponentMainType[]; | 
|     hasSubTypes: (componentType: ComponentFullType) => boolean; | 
| } | 
|   | 
| interface SubTypeDefaulter { | 
|     (option: ComponentOption): ComponentSubType; | 
| } | 
| interface SubTypeDefaulterManager { | 
|     registerSubTypeDefaulter: (componentType: string, defaulter: SubTypeDefaulter) => void; | 
|     determineSubType: (componentType: string, option: ComponentOption) => string; | 
| } | 
|   | 
| declare type DiffKeyGetter<CTX = unknown> = (this: DataDiffer<CTX>, value: unknown, index: number) => string; | 
| declare type DiffCallbackAdd = (newIndex: number) => void; | 
| declare type DiffCallbackUpdate = (newIndex: number, oldIndex: number) => void; | 
| declare type DiffCallbackRemove = (oldIndex: number) => void; | 
| declare type DiffCallbackUpdateManyToOne = (newIndex: number, oldIndex: number[]) => void; | 
| declare type DiffCallbackUpdateOneToMany = (newIndex: number[], oldIndex: number) => void; | 
| declare type DiffCallbackUpdateManyToMany = (newIndex: number[], oldIndex: number[]) => void; | 
| declare type DataDiffMode = 'oneToOne' | 'multiple'; | 
| declare class DataDiffer<CTX = unknown> { | 
|     private _old; | 
|     private _new; | 
|     private _oldKeyGetter; | 
|     private _newKeyGetter; | 
|     private _add; | 
|     private _update; | 
|     private _updateManyToOne; | 
|     private _updateOneToMany; | 
|     private _updateManyToMany; | 
|     private _remove; | 
|     private _diffModeMultiple; | 
|     readonly context: CTX; | 
|     /** | 
|      * @param context Can be visited by this.context in callback. | 
|      */ | 
|     constructor(oldArr: ArrayLike$1<unknown>, newArr: ArrayLike$1<unknown>, oldKeyGetter?: DiffKeyGetter<CTX>, newKeyGetter?: DiffKeyGetter<CTX>, context?: CTX, diffMode?: DataDiffMode); | 
|     /** | 
|      * Callback function when add a data | 
|      */ | 
|     add(func: DiffCallbackAdd): this; | 
|     /** | 
|      * Callback function when update a data | 
|      */ | 
|     update(func: DiffCallbackUpdate): this; | 
|     /** | 
|      * Callback function when update a data and only work in `cbMode: 'byKey'`. | 
|      */ | 
|     updateManyToOne(func: DiffCallbackUpdateManyToOne): this; | 
|     /** | 
|      * Callback function when update a data and only work in `cbMode: 'byKey'`. | 
|      */ | 
|     updateOneToMany(func: DiffCallbackUpdateOneToMany): this; | 
|     /** | 
|      * Callback function when update a data and only work in `cbMode: 'byKey'`. | 
|      */ | 
|     updateManyToMany(func: DiffCallbackUpdateManyToMany): this; | 
|     /** | 
|      * Callback function when remove a data | 
|      */ | 
|     remove(func: DiffCallbackRemove): this; | 
|     execute(): void; | 
|     private _executeOneToOne; | 
|     /** | 
|      * For example, consider the case: | 
|      * oldData: [o0, o1, o2, o3, o4, o5, o6, o7], | 
|      * newData: [n0, n1, n2, n3, n4, n5, n6, n7, n8], | 
|      * Where: | 
|      *     o0, o1, n0 has key 'a' (many to one) | 
|      *     o5, n4, n5, n6 has key 'b' (one to many) | 
|      *     o2, n1 has key 'c' (one to one) | 
|      *     n2, n3 has key 'd' (add) | 
|      *     o3, o4 has key 'e' (remove) | 
|      *     o6, o7, n7, n8 has key 'f' (many to many, treated as add and remove) | 
|      * Then: | 
|      *     (The order of the following directives are not ensured.) | 
|      *     this._updateManyToOne(n0, [o0, o1]); | 
|      *     this._updateOneToMany([n4, n5, n6], o5); | 
|      *     this._update(n1, o2); | 
|      *     this._remove(o3); | 
|      *     this._remove(o4); | 
|      *     this._remove(o6); | 
|      *     this._remove(o7); | 
|      *     this._add(n2); | 
|      *     this._add(n3); | 
|      *     this._add(n7); | 
|      *     this._add(n8); | 
|      */ | 
|     private _executeMultiple; | 
|     private _performRestAdd; | 
|     private _initIndexMap; | 
| } | 
|   | 
| declare type PipedDataTransformOption = DataTransformOption[]; | 
| declare type DataTransformType = string; | 
| declare type DataTransformConfig = unknown; | 
| interface DataTransformOption { | 
|     type: DataTransformType; | 
|     config?: DataTransformConfig; | 
|     print?: boolean; | 
| } | 
| interface ExternalDataTransform<TO extends DataTransformOption = DataTransformOption> { | 
|     type: string; | 
|     __isBuiltIn?: boolean; | 
|     transform: (param: ExternalDataTransformParam<TO>) => ExternalDataTransformResultItem | ExternalDataTransformResultItem[]; | 
| } | 
| interface ExternalDataTransformParam<TO extends DataTransformOption = DataTransformOption> { | 
|     upstream: ExternalSource; | 
|     upstreamList: ExternalSource[]; | 
|     config: TO['config']; | 
| } | 
| interface ExternalDataTransformResultItem { | 
|     /** | 
|      * If `data` is null/undefined, inherit upstream data. | 
|      */ | 
|     data: OptionSourceDataArrayRows | OptionSourceDataObjectRows; | 
|     /** | 
|      * A `transform` can optionally return a dimensions definition. | 
|      * The rule: | 
|      * If this `transform result` have different dimensions from the upstream, it should return | 
|      * a new dimension definition. For example, this transform inherit the upstream data totally | 
|      * but add a extra dimension. | 
|      * Otherwise, do not need to return that dimension definition. echarts will inherit dimension | 
|      * definition from the upstream. | 
|      */ | 
|     dimensions?: DimensionDefinitionLoose[]; | 
| } | 
| declare type DataTransformDataItem = ExternalDataTransformResultItem['data'][number]; | 
| interface ExternalDimensionDefinition extends Partial<DimensionDefinition> { | 
|     index: DimensionIndex; | 
| } | 
| /** | 
|  * TODO: disable writable. | 
|  * This structure will be exposed to users. | 
|  */ | 
| declare class ExternalSource { | 
|     /** | 
|      * [Caveat] | 
|      * This instance is to be exposed to users. | 
|      * (1) DO NOT mount private members on this instance directly. | 
|      * If we have to use private members, we can make them in closure or use `makeInner`. | 
|      * (2) "source header count" is not provided to transform, because it's complicated to manage | 
|      * header and dimensions definition in each transform. Source headers are all normalized to | 
|      * dimensions definitions in transforms and their downstreams. | 
|      */ | 
|     sourceFormat: SourceFormat; | 
|     getRawData(): Source['data']; | 
|     getRawDataItem(dataIndex: number): DataTransformDataItem; | 
|     cloneRawData(): Source['data']; | 
|     /** | 
|      * @return If dimension not found, return null/undefined. | 
|      */ | 
|     getDimensionInfo(dim: DimensionLoose): ExternalDimensionDefinition; | 
|     /** | 
|      * dimensions defined if and only if either: | 
|      * (a) dataset.dimensions are declared. | 
|      * (b) dataset data include dimensions definitions in data (detected or via specified `sourceHeader`). | 
|      * If dimensions are defined, `dimensionInfoAll` is corresponding to | 
|      * the defined dimensions. | 
|      * Otherwise, `dimensionInfoAll` is determined by data columns. | 
|      * @return Always return an array (even empty array). | 
|      */ | 
|     cloneAllDimensionInfo(): ExternalDimensionDefinition[]; | 
|     count(): number; | 
|     /** | 
|      * Only support by dimension index. | 
|      * No need to support by dimension name in transform function, | 
|      * because transform function is not case-specific, no need to use name literally. | 
|      */ | 
|     retrieveValue(dataIndex: number, dimIndex: DimensionIndex): OptionDataValue; | 
|     retrieveValueFromItem(dataItem: DataTransformDataItem, dimIndex: DimensionIndex): OptionDataValue; | 
|     convertValue(rawVal: unknown, dimInfo: ExternalDimensionDefinition): ParsedValue; | 
| } | 
| declare function registerExternalTransform(externalTransform: ExternalDataTransform): void; | 
|   | 
| interface PaletteMixin<T extends PaletteOptionMixin = PaletteOptionMixin> extends Pick<Model<T>, 'get'> { | 
| } | 
| declare class PaletteMixin<T extends PaletteOptionMixin = PaletteOptionMixin> { | 
|     getColorFromPalette(this: PaletteMixin<T>, name: string, scope?: any, requestNum?: number): ZRColor; | 
|     clearColorPalette(this: PaletteMixin<T>): void; | 
| } | 
|   | 
| interface ComponentView { | 
|     /** | 
|      * Implement it if needed. | 
|      */ | 
|     updateTransform?(model: ComponentModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void | { | 
|         update: true; | 
|     }; | 
|     /** | 
|      * Pass only when return `true`. | 
|      * Implement it if needed. | 
|      */ | 
|     filterForExposedEvent(eventType: string, query: EventQueryItem, targetEl: Element, packedEvent: ECActionEvent | ECElementEvent): boolean; | 
|     /** | 
|      * Find dispatchers for highlight/downplay by name. | 
|      * If this methods provided, hover link (within the same name) is enabled in component. | 
|      * That is, in component, a name can correspond to multiple dispatchers. | 
|      * Those dispatchers can have no common ancestor. | 
|      * The highlight/downplay state change will be applied on the | 
|      * dispatchers and their descendents. | 
|      * | 
|      * @return Must return an array but not null/undefined. | 
|      */ | 
|     findHighDownDispatchers?(name: string): Element[]; | 
|     focusBlurEnabled?: boolean; | 
| } | 
| declare class ComponentView { | 
|     readonly group: ViewRootGroup; | 
|     readonly uid: string; | 
|     __model: ComponentModel; | 
|     __alive: boolean; | 
|     __id: string; | 
|     constructor(); | 
|     init(ecModel: GlobalModel, api: ExtensionAPI): void; | 
|     render(model: ComponentModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void; | 
|     dispose(ecModel: GlobalModel, api: ExtensionAPI): void; | 
|     updateView(model: ComponentModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void; | 
|     updateLayout(model: ComponentModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void; | 
|     updateVisual(model: ComponentModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void; | 
|     /** | 
|      * Hook for toggle blur target series. | 
|      * Can be used in marker for blur or leave blur the markers | 
|      */ | 
|     toggleBlurSeries(seriesModels: SeriesModel[], isBlur: boolean, ecModel: GlobalModel): void; | 
|     /** | 
|      * Traverse the new rendered elements. | 
|      * | 
|      * It will traverse the new added element in progressive rendering. | 
|      * And traverse all in normal rendering. | 
|      */ | 
|     eachRendered(cb: (el: Element) => boolean | void): void; | 
|     static registerClass: ClassManager['registerClass']; | 
| } | 
|   | 
| interface TaskContext { | 
|     outputData?: SeriesData; | 
|     data?: SeriesData; | 
|     payload?: Payload; | 
|     model?: SeriesModel; | 
| } | 
| declare type TaskResetCallback<Ctx extends TaskContext> = (this: Task<Ctx>, context: Ctx) => TaskResetCallbackReturn<Ctx>; | 
| declare type TaskResetCallbackReturn<Ctx extends TaskContext> = void | (TaskProgressCallback<Ctx> | TaskProgressCallback<Ctx>[]) | { | 
|     forceFirstProgress?: boolean; | 
|     progress: TaskProgressCallback<Ctx> | TaskProgressCallback<Ctx>[]; | 
| }; | 
| declare type TaskProgressCallback<Ctx extends TaskContext> = (this: Task<Ctx>, params: TaskProgressParams, context: Ctx) => void; | 
| declare type TaskProgressParams = { | 
|     start: number; | 
|     end: number; | 
|     count: number; | 
|     next?: TaskDataIteratorNext; | 
| }; | 
| declare type TaskPlanCallback<Ctx extends TaskContext> = (this: Task<Ctx>, context: Ctx) => TaskPlanCallbackReturn; | 
| declare type TaskPlanCallbackReturn = 'reset' | false | null | undefined; | 
| declare type TaskCountCallback<Ctx extends TaskContext> = (this: Task<Ctx>, context: Ctx) => number; | 
| declare type TaskOnDirtyCallback<Ctx extends TaskContext> = (this: Task<Ctx>, context: Ctx) => void; | 
| declare type TaskDataIteratorNext = () => number; | 
| declare type TaskDefineParam<Ctx extends TaskContext> = { | 
|     reset?: TaskResetCallback<Ctx>; | 
|     plan?: TaskPlanCallback<Ctx>; | 
|     count?: TaskCountCallback<Ctx>; | 
|     onDirty?: TaskOnDirtyCallback<Ctx>; | 
| }; | 
| declare type PerformArgs = { | 
|     step?: number; | 
|     skip?: boolean; | 
|     modBy?: number; | 
|     modDataCount?: number; | 
| }; | 
| declare class Task<Ctx extends TaskContext> { | 
|     private _reset; | 
|     private _plan; | 
|     private _count; | 
|     private _onDirty; | 
|     private _progress; | 
|     private _callingProgress; | 
|     private _dirty; | 
|     private _modBy; | 
|     private _modDataCount; | 
|     private _upstream; | 
|     private _downstream; | 
|     private _dueEnd; | 
|     private _outputDueEnd; | 
|     private _settedOutputEnd; | 
|     private _dueIndex; | 
|     private _disposed; | 
|     __pipeline: Pipeline; | 
|     __idxInPipeline: number; | 
|     __block: boolean; | 
|     context: Ctx; | 
|     constructor(define: TaskDefineParam<Ctx>); | 
|     /** | 
|      * @param step Specified step. | 
|      * @param skip Skip customer perform call. | 
|      * @param modBy Sampling window size. | 
|      * @param modDataCount Sampling count. | 
|      * @return whether unfinished. | 
|      */ | 
|     perform(performArgs?: PerformArgs): boolean; | 
|     dirty(): void; | 
|     private _doProgress; | 
|     private _doReset; | 
|     unfinished(): boolean; | 
|     /** | 
|      * @param downTask The downstream task. | 
|      * @return The downstream task. | 
|      */ | 
|     pipe(downTask: Task<Ctx>): void; | 
|     dispose(): void; | 
|     getUpstream(): Task<Ctx>; | 
|     getDownstream(): Task<Ctx>; | 
|     setOutputEnd(end: number): void; | 
| } | 
|   | 
| declare type GeneralTask = Task<TaskContext>; | 
| declare type SeriesTask = Task<SeriesTaskContext>; | 
| declare type Pipeline = { | 
|     id: string; | 
|     head: GeneralTask; | 
|     tail: GeneralTask; | 
|     threshold: number; | 
|     progressiveEnabled: boolean; | 
|     blockIndex: number; | 
|     step: number; | 
|     count: number; | 
|     currentTask?: GeneralTask; | 
|     context?: PipelineContext; | 
| }; | 
| declare type PipelineContext = { | 
|     progressiveRender: boolean; | 
|     modDataCount: number; | 
|     large: boolean; | 
| }; | 
| declare type PerformStageTaskOpt = { | 
|     block?: boolean; | 
|     setDirty?: boolean; | 
|     visualType?: StageHandlerInternal['visualType']; | 
|     dirtyMap?: HashMap<any>; | 
| }; | 
| interface SeriesTaskContext extends TaskContext { | 
|     model?: SeriesModel; | 
|     data?: SeriesData; | 
|     view?: ChartView; | 
|     ecModel?: GlobalModel; | 
|     api?: ExtensionAPI; | 
|     useClearVisual?: boolean; | 
|     plan?: StageHandlerPlan; | 
|     reset?: StageHandlerReset; | 
|     scheduler?: Scheduler; | 
|     payload?: Payload; | 
|     resetDefines?: StageHandlerProgressExecutor[]; | 
| } | 
| interface OverallTaskContext extends TaskContext { | 
|     ecModel: GlobalModel; | 
|     api: ExtensionAPI; | 
|     overallReset: StageHandlerOverallReset; | 
|     scheduler: Scheduler; | 
|     payload?: Payload; | 
| } | 
| declare class Scheduler { | 
|     readonly ecInstance: EChartsType; | 
|     readonly api: ExtensionAPI; | 
|     unfinished: boolean; | 
|     private _dataProcessorHandlers; | 
|     private _visualHandlers; | 
|     private _allHandlers; | 
|     private _stageTaskMap; | 
|     private _pipelineMap; | 
|     constructor(ecInstance: EChartsType, api: ExtensionAPI, dataProcessorHandlers: StageHandlerInternal[], visualHandlers: StageHandlerInternal[]); | 
|     restoreData(ecModel: GlobalModel, payload: Payload): void; | 
|     getPerformArgs(task: GeneralTask, isBlock?: boolean): { | 
|         step: number; | 
|         modBy: number; | 
|         modDataCount: number; | 
|     }; | 
|     getPipeline(pipelineId: string): Pipeline; | 
|     /** | 
|      * Current, progressive rendering starts from visual and layout. | 
|      * Always detect render mode in the same stage, avoiding that incorrect | 
|      * detection caused by data filtering. | 
|      * Caution: | 
|      * `updateStreamModes` use `seriesModel.getData()`. | 
|      */ | 
|     updateStreamModes(seriesModel: SeriesModel<SeriesOption & SeriesLargeOptionMixin>, view: ChartView): void; | 
|     restorePipelines(ecModel: GlobalModel): void; | 
|     prepareStageTasks(): void; | 
|     prepareView(view: ChartView, model: SeriesModel, ecModel: GlobalModel, api: ExtensionAPI): void; | 
|     performDataProcessorTasks(ecModel: GlobalModel, payload?: Payload): void; | 
|     performVisualTasks(ecModel: GlobalModel, payload?: Payload, opt?: PerformStageTaskOpt): void; | 
|     private _performStageTasks; | 
|     performSeriesTasks(ecModel: GlobalModel): void; | 
|     plan(): void; | 
|     updatePayload(task: Task<SeriesTaskContext | OverallTaskContext>, payload: Payload | 'remain'): void; | 
|     private _createSeriesStageTask; | 
|     private _createOverallStageTask; | 
|     private _pipe; | 
|     static wrapStageHandler(stageHandler: StageHandler | StageHandlerOverallReset, visualType: StageHandlerInternal['visualType']): StageHandlerInternal; | 
| } | 
|   | 
| interface ChartView { | 
|     /** | 
|      * Rendering preparation in progressive mode. | 
|      * Implement it if needed. | 
|      */ | 
|     incrementalPrepareRender(seriesModel: SeriesModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void; | 
|     /** | 
|      * Render in progressive mode. | 
|      * Implement it if needed. | 
|      * @param params See taskParams in `stream/task.js` | 
|      */ | 
|     incrementalRender(params: StageHandlerProgressParams, seriesModel: SeriesModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void; | 
|     /** | 
|      * Update transform directly. | 
|      * Implement it if needed. | 
|      */ | 
|     updateTransform(seriesModel: SeriesModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void | { | 
|         update: true; | 
|     }; | 
|     /** | 
|      * The view contains the given point. | 
|      * Implement it if needed. | 
|      */ | 
|     containPoint(point: number[], seriesModel: SeriesModel): boolean; | 
|     /** | 
|      * Pass only when return `true`. | 
|      * Implement it if needed. | 
|      */ | 
|     filterForExposedEvent(eventType: string, query: EventQueryItem, targetEl: Element, packedEvent: ECActionEvent | ECElementEvent): boolean; | 
| } | 
| declare class ChartView { | 
|     type: string; | 
|     readonly group: ViewRootGroup; | 
|     readonly uid: string; | 
|     readonly renderTask: SeriesTask; | 
|     /** | 
|      * Ignore label line update in global stage. Will handle it in chart itself. | 
|      * Used in pie / funnel | 
|      */ | 
|     ignoreLabelLineUpdate: boolean; | 
|     __alive: boolean; | 
|     __model: SeriesModel; | 
|     __id: string; | 
|     static protoInitialize: void; | 
|     constructor(); | 
|     init(ecModel: GlobalModel, api: ExtensionAPI): void; | 
|     render(seriesModel: SeriesModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void; | 
|     /** | 
|      * Highlight series or specified data item. | 
|      */ | 
|     highlight(seriesModel: SeriesModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void; | 
|     /** | 
|      * Downplay series or specified data item. | 
|      */ | 
|     downplay(seriesModel: SeriesModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void; | 
|     /** | 
|      * Remove self. | 
|      */ | 
|     remove(ecModel: GlobalModel, api: ExtensionAPI): void; | 
|     /** | 
|      * Dispose self. | 
|      */ | 
|     dispose(ecModel: GlobalModel, api: ExtensionAPI): void; | 
|     updateView(seriesModel: SeriesModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void; | 
|     updateLayout(seriesModel: SeriesModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void; | 
|     updateVisual(seriesModel: SeriesModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void; | 
|     /** | 
|      * Traverse the new rendered elements. | 
|      * | 
|      * It will traverse the new added element in progressive rendering. | 
|      * And traverse all in normal rendering. | 
|      */ | 
|     eachRendered(cb: (el: Element) => boolean | void): void; | 
|     static markUpdateMethod(payload: Payload, methodName: keyof ChartView): void; | 
|     static registerClass: ClassManager['registerClass']; | 
| } | 
|   | 
| declare const availableMethods: (keyof EChartsType)[]; | 
| interface ExtensionAPI extends Pick<EChartsType, (typeof availableMethods)[number]> { | 
| } | 
| declare abstract class ExtensionAPI { | 
|     constructor(ecInstance: EChartsType); | 
|     abstract getCoordinateSystems(): CoordinateSystemMaster[]; | 
|     abstract getComponentByElement(el: Element): ComponentModel; | 
|     abstract enterEmphasis(el: Element, highlightDigit?: number): void; | 
|     abstract leaveEmphasis(el: Element, highlightDigit?: number): void; | 
|     abstract enterSelect(el: Element): void; | 
|     abstract leaveSelect(el: Element): void; | 
|     abstract enterBlur(el: Element): void; | 
|     abstract leaveBlur(el: Element): void; | 
|     abstract getViewOfComponentModel(componentModel: ComponentModel): ComponentView; | 
|     abstract getViewOfSeriesModel(seriesModel: SeriesModel): ChartView; | 
|     abstract getModel(): GlobalModel; | 
| } | 
|   | 
| declare const AXIS_TYPES: { | 
|     readonly value: 1; | 
|     readonly category: 1; | 
|     readonly time: 1; | 
|     readonly log: 1; | 
| }; | 
| declare type OptionAxisType = keyof typeof AXIS_TYPES; | 
| interface AxisBaseOptionCommon extends ComponentOption, AnimationOptionMixin { | 
|     type?: OptionAxisType; | 
|     show?: boolean; | 
|     inverse?: boolean; | 
|     name?: string; | 
|     nameLocation?: 'start' | 'middle' | 'end'; | 
|     nameRotate?: number; | 
|     nameTruncate?: { | 
|         maxWidth?: number; | 
|         ellipsis?: string; | 
|         placeholder?: string; | 
|     }; | 
|     nameTextStyle?: AxisNameTextStyleOption; | 
|     nameGap?: number; | 
|     silent?: boolean; | 
|     triggerEvent?: boolean; | 
|     tooltip?: { | 
|         show?: boolean; | 
|     }; | 
|     axisLabel?: AxisLabelBaseOption; | 
|     axisPointer?: CommonAxisPointerOption; | 
|     axisLine?: AxisLineOption; | 
|     axisTick?: AxisTickOption; | 
|     minorTick?: MinorTickOption; | 
|     splitLine?: SplitLineOption; | 
|     minorSplitLine?: MinorSplitLineOption; | 
|     splitArea?: SplitAreaOption; | 
|     /** | 
|      * Min value of the axis. can be: | 
|      * + ScaleDataValue | 
|      * + 'dataMin': use the min value in data. | 
|      * + null/undefined: auto decide min value (consider pretty look and boundaryGap). | 
|      */ | 
|     min?: ScaleDataValue | 'dataMin' | ((extent: { | 
|         min: number; | 
|         max: number; | 
|     }) => ScaleDataValue); | 
|     /** | 
|      * Max value of the axis. can be: | 
|      * + ScaleDataValue | 
|      * + 'dataMax': use the max value in data. | 
|      * + null/undefined: auto decide max value (consider pretty look and boundaryGap). | 
|      */ | 
|     max?: ScaleDataValue | 'dataMax' | ((extent: { | 
|         min: number; | 
|         max: number; | 
|     }) => ScaleDataValue); | 
|     startValue?: number; | 
| } | 
| interface NumericAxisBaseOptionCommon extends AxisBaseOptionCommon { | 
|     boundaryGap?: [number | string, number | string]; | 
|     /** | 
|      * AxisTick and axisLabel and splitLine are calculated based on splitNumber. | 
|      */ | 
|     splitNumber?: number; | 
|     /** | 
|      * Interval specifies the span of the ticks is mandatorily. | 
|      */ | 
|     interval?: number; | 
|     /** | 
|      * Specify min interval when auto calculate tick interval. | 
|      */ | 
|     minInterval?: number; | 
|     /** | 
|      * Specify max interval when auto calculate tick interval. | 
|      */ | 
|     maxInterval?: number; | 
|     /** | 
|      * If align ticks to the first axis that is not use alignTicks | 
|      * If all axes has alignTicks: true. The first one will be applied. | 
|      * | 
|      * Will be ignored if interval is set. | 
|      */ | 
|     alignTicks?: boolean; | 
| } | 
| interface CategoryAxisBaseOption extends AxisBaseOptionCommon { | 
|     type?: 'category'; | 
|     boundaryGap?: boolean; | 
|     axisLabel?: AxisLabelOption<'category'> & { | 
|         interval?: 'auto' | number | ((index: number, value: string) => boolean); | 
|     }; | 
|     data?: (OrdinalRawValue | { | 
|         value: OrdinalRawValue; | 
|         textStyle?: TextCommonOption; | 
|     })[]; | 
|     deduplication?: boolean; | 
|     axisTick?: AxisBaseOptionCommon['axisTick'] & { | 
|         alignWithLabel?: boolean; | 
|         interval?: 'auto' | number | ((index: number, value: string) => boolean); | 
|     }; | 
| } | 
| interface ValueAxisBaseOption extends NumericAxisBaseOptionCommon { | 
|     type?: 'value'; | 
|     axisLabel?: AxisLabelOption<'value'>; | 
|     /** | 
|      * Optional value can be: | 
|      * + `false`: always include value 0. | 
|      * + `true`: the axis may not contain zero position. | 
|      */ | 
|     scale?: boolean; | 
| } | 
| interface LogAxisBaseOption extends NumericAxisBaseOptionCommon { | 
|     type?: 'log'; | 
|     axisLabel?: AxisLabelOption<'log'>; | 
|     logBase?: number; | 
| } | 
| interface TimeAxisBaseOption extends NumericAxisBaseOptionCommon { | 
|     type?: 'time'; | 
|     axisLabel?: AxisLabelOption<'time'>; | 
| } | 
| interface AxisNameTextStyleOption extends TextCommonOption { | 
|     rich?: Dictionary<TextCommonOption>; | 
| } | 
| interface AxisLineOption { | 
|     show?: boolean | 'auto'; | 
|     onZero?: boolean; | 
|     onZeroAxisIndex?: number; | 
|     symbol?: string | [string, string]; | 
|     symbolSize?: number[]; | 
|     symbolOffset?: string | number | (string | number)[]; | 
|     lineStyle?: LineStyleOption; | 
| } | 
| interface AxisTickOption { | 
|     show?: boolean | 'auto'; | 
|     inside?: boolean; | 
|     length?: number; | 
|     lineStyle?: LineStyleOption; | 
|     customValues?: (number | string | Date)[]; | 
| } | 
| declare type AxisLabelValueFormatter = (value: number, index: number) => string; | 
| declare type AxisLabelCategoryFormatter = (value: string, index: number) => string; | 
| declare type TimeAxisLabelUnitFormatter = AxisLabelValueFormatter | string[] | string; | 
| declare type TimeAxisLabelFormatterOption = string | ((value: number, index: number, extra: { | 
|     level: number; | 
| }) => string) | { | 
|     year?: TimeAxisLabelUnitFormatter; | 
|     month?: TimeAxisLabelUnitFormatter; | 
|     week?: TimeAxisLabelUnitFormatter; | 
|     day?: TimeAxisLabelUnitFormatter; | 
|     hour?: TimeAxisLabelUnitFormatter; | 
|     minute?: TimeAxisLabelUnitFormatter; | 
|     second?: TimeAxisLabelUnitFormatter; | 
|     millisecond?: TimeAxisLabelUnitFormatter; | 
|     inherit?: boolean; | 
| }; | 
| declare type LabelFormatters = { | 
|     value: AxisLabelValueFormatter | string; | 
|     log: AxisLabelValueFormatter | string; | 
|     category: AxisLabelCategoryFormatter | string; | 
|     time: TimeAxisLabelFormatterOption; | 
| }; | 
| interface AxisLabelBaseOption extends Omit<TextCommonOption, 'color'> { | 
|     show?: boolean; | 
|     inside?: boolean; | 
|     rotate?: number; | 
|     showMinLabel?: boolean; | 
|     showMaxLabel?: boolean; | 
|     alignMinLabel?: TextAlign; | 
|     alignMaxLabel?: TextAlign; | 
|     verticalAlignMinLabel?: TextVerticalAlign; | 
|     verticalAlignMaxLabel?: TextVerticalAlign; | 
|     margin?: number; | 
|     rich?: Dictionary<TextCommonOption>; | 
|     /** | 
|      * If hide overlapping labels. | 
|      */ | 
|     hideOverlap?: boolean; | 
|     customValues?: (number | string | Date)[]; | 
|     color?: ColorString | ((value?: string | number, index?: number) => ColorString); | 
|     overflow?: TextStyleProps['overflow']; | 
| } | 
| interface AxisLabelOption<TType extends OptionAxisType> extends AxisLabelBaseOption { | 
|     formatter?: LabelFormatters[TType]; | 
| } | 
| interface MinorTickOption { | 
|     show?: boolean; | 
|     splitNumber?: number; | 
|     length?: number; | 
|     lineStyle?: LineStyleOption; | 
| } | 
| interface SplitLineOption { | 
|     show?: boolean; | 
|     interval?: 'auto' | number | ((index: number, value: string) => boolean); | 
|     showMinLine?: boolean; | 
|     showMaxLine?: boolean; | 
|     lineStyle?: LineStyleOption<ZRColor | ZRColor[]>; | 
| } | 
| interface MinorSplitLineOption { | 
|     show?: boolean; | 
|     lineStyle?: LineStyleOption; | 
| } | 
| interface SplitAreaOption { | 
|     show?: boolean; | 
|     interval?: 'auto' | number | ((index: number, value: string) => boolean); | 
|     areaStyle?: AreaStyleOption<ZRColor[]>; | 
| } | 
| declare type AxisBaseOption = ValueAxisBaseOption | LogAxisBaseOption | CategoryAxisBaseOption | TimeAxisBaseOption | AxisBaseOptionCommon; | 
|   | 
| interface AxisModelCommonMixin<Opt extends AxisBaseOption> extends Pick<Model<Opt>, 'option'> { | 
|     axis: Axis; | 
| } | 
| declare class AxisModelCommonMixin<Opt extends AxisBaseOption> { | 
|     getNeedCrossZero(): boolean; | 
|     /** | 
|      * Should be implemented by each axis model if necessary. | 
|      * @return coordinate system model | 
|      */ | 
|     getCoordSysModel(): CoordinateSystemHostModel; | 
| } | 
|   | 
| declare class OrdinalMeta { | 
|     readonly categories: OrdinalRawValue[]; | 
|     private _needCollect; | 
|     private _deduplication; | 
|     private _map; | 
|     readonly uid: number; | 
|     constructor(opt: { | 
|         categories?: OrdinalRawValue[]; | 
|         needCollect?: boolean; | 
|         deduplication?: boolean; | 
|     }); | 
|     static createByAxisModel(axisModel: Model): OrdinalMeta; | 
|     getOrdinal(category: OrdinalRawValue): OrdinalNumber; | 
|     /** | 
|      * @return The ordinal. If not found, return NaN. | 
|      */ | 
|     parseAndCollect(category: OrdinalRawValue | OrdinalNumber): OrdinalNumber; | 
|     private _getOrCreateMap; | 
| } | 
|   | 
| declare function registerImpl(name: string, impl: any): void; | 
|   | 
| declare const extensionRegisters: { | 
|     registerPreprocessor: typeof registerPreprocessor; | 
|     registerProcessor: typeof registerProcessor; | 
|     registerPostInit: typeof registerPostInit; | 
|     registerPostUpdate: typeof registerPostUpdate; | 
|     registerUpdateLifecycle: typeof registerUpdateLifecycle; | 
|     registerAction: typeof registerAction; | 
|     registerCoordinateSystem: typeof registerCoordinateSystem; | 
|     registerLayout: typeof registerLayout; | 
|     registerVisual: typeof registerVisual; | 
|     registerTransform: typeof registerExternalTransform; | 
|     registerLoading: typeof registerLoading; | 
|     registerMap: typeof registerMap; | 
|     registerImpl: typeof registerImpl; | 
|     PRIORITY: { | 
|         PROCESSOR: { | 
|             FILTER: number; | 
|             SERIES_FILTER: number; | 
|             STATISTIC: number; | 
|         }; | 
|         VISUAL: { | 
|             LAYOUT: number; | 
|             PROGRESSIVE_LAYOUT: number; | 
|             GLOBAL: number; | 
|             CHART: number; | 
|             POST_CHART_LAYOUT: number; | 
|             COMPONENT: number; | 
|             BRUSH: number; | 
|             CHART_ITEM: number; | 
|             ARIA: number; | 
|             DECAL: number; | 
|         }; | 
|     }; | 
|     ComponentModel: typeof ComponentModel; | 
|     ComponentView: typeof ComponentView; | 
|     SeriesModel: typeof SeriesModel; | 
|     ChartView: typeof ChartView; | 
|     registerComponentModel(ComponentModelClass: Constructor): void; | 
|     registerComponentView(ComponentViewClass: typeof ComponentView): void; | 
|     registerSeriesModel(SeriesModelClass: Constructor): void; | 
|     registerChartView(ChartViewClass: typeof ChartView): void; | 
|     registerSubTypeDefaulter(componentType: string, defaulter: SubTypeDefaulter): void; | 
|     registerPainter(painterType: string, PainterCtor: Parameters<typeof registerPainter>[1]): void; | 
| }; | 
| declare type EChartsExtensionInstallRegisters = typeof extensionRegisters; | 
| declare type EChartsExtensionInstaller = (ec: EChartsExtensionInstallRegisters) => void; | 
| interface EChartsExtension { | 
|     install: EChartsExtensionInstaller; | 
| } | 
| declare function use(ext: EChartsExtensionInstaller | EChartsExtension | (EChartsExtensionInstaller | EChartsExtension)[]): void; | 
|   | 
| interface AxisModelExtendedInCreator { | 
|     getCategories(rawData?: boolean): OrdinalRawValue[] | CategoryAxisBaseOption['data']; | 
|     getOrdinalMeta(): OrdinalMeta; | 
| } | 
|   | 
| /** | 
|  * Base Axis Model for xAxis, yAxis, angleAxis, radiusAxis. singleAxis | 
|  */ | 
|   | 
| interface AxisBaseModel<T extends AxisBaseOptionCommon = AxisBaseOptionCommon> extends ComponentModel<T>, AxisModelCommonMixin<T>, AxisModelExtendedInCreator { | 
|     axis: Axis; | 
| } | 
|   | 
| declare function createAxisLabels(axis: Axis): { | 
|     labels: { | 
|         level?: number; | 
|         formattedLabel: string; | 
|         rawLabel: string; | 
|         tickValue: number; | 
|     }[]; | 
|     labelCategoryInterval?: number; | 
| }; | 
| /** | 
|  * Calculate interval for category axis ticks and labels. | 
|  * To get precise result, at least one of `getRotate` and `isHorizontal` | 
|  * should be implemented in axis. | 
|  */ | 
| declare function calculateCategoryInterval(axis: Axis): number; | 
|   | 
| interface ScaleRawExtentResult { | 
|     readonly min: number; | 
|     readonly max: number; | 
|     readonly minFixed: boolean; | 
|     readonly maxFixed: boolean; | 
|     readonly isBlank: boolean; | 
| } | 
| declare class ScaleRawExtentInfo { | 
|     private _needCrossZero; | 
|     private _isOrdinal; | 
|     private _axisDataLen; | 
|     private _boundaryGapInner; | 
|     private _modelMinRaw; | 
|     private _modelMaxRaw; | 
|     private _modelMinNum; | 
|     private _modelMaxNum; | 
|     private _dataMin; | 
|     private _dataMax; | 
|     private _determinedMin; | 
|     private _determinedMax; | 
|     readonly frozen: boolean; | 
|     constructor(scale: Scale, model: AxisBaseModel, originalExtent: number[]); | 
|     /** | 
|      * Parameters depending on outside (like model, user callback) | 
|      * are prepared and fixed here. | 
|      */ | 
|     private _prepareParams; | 
|     /** | 
|      * Calculate extent by prepared parameters. | 
|      * This method has no external dependency and can be called duplicatedly, | 
|      * getting the same result. | 
|      * If parameters changed, should call this method to recalcuate. | 
|      */ | 
|     calculate(): ScaleRawExtentResult; | 
|     modifyDataMinMax(minMaxName: 'min' | 'max', val: number): void; | 
|     setDeterminedMinMax(minMaxName: 'min' | 'max', val: number): void; | 
|     freeze(): void; | 
| } | 
|   | 
| declare abstract class Scale<SETTING extends Dictionary<unknown> = Dictionary<unknown>> { | 
|     type: string; | 
|     private _setting; | 
|     protected _extent: [number, number]; | 
|     private _isBlank; | 
|     readonly rawExtentInfo: ScaleRawExtentInfo; | 
|     constructor(setting?: SETTING); | 
|     getSetting<KEY extends keyof SETTING>(name: KEY): SETTING[KEY]; | 
|     /** | 
|      * Parse input val to valid inner number. | 
|      * Notice: This would be a trap here, If the implementation | 
|      * of this method depends on extent, and this method is used | 
|      * before extent set (like in dataZoom), it would be wrong. | 
|      * Nevertheless, parse does not depend on extent generally. | 
|      */ | 
|     abstract parse(val: OptionDataValue): number; | 
|     /** | 
|      * Whether contain the given value. | 
|      */ | 
|     abstract contain(val: ScaleDataValue): boolean; | 
|     /** | 
|      * Normalize value to linear [0, 1], return 0.5 if extent span is 0. | 
|      */ | 
|     abstract normalize(val: ScaleDataValue): number; | 
|     /** | 
|      * Scale normalized value to extent. | 
|      */ | 
|     abstract scale(val: number): number; | 
|     /** | 
|      * Set extent from data | 
|      */ | 
|     unionExtent(other: [number, number]): void; | 
|     /** | 
|      * Set extent from data | 
|      */ | 
|     unionExtentFromData(data: SeriesData, dim: DimensionName | DimensionLoose): void; | 
|     /** | 
|      * Get extent | 
|      * | 
|      * Extent is always in increase order. | 
|      */ | 
|     getExtent(): [number, number]; | 
|     /** | 
|      * Set extent | 
|      */ | 
|     setExtent(start: number, end: number): void; | 
|     /** | 
|      * If value is in extent range | 
|      */ | 
|     isInExtentRange(value: number): boolean; | 
|     /** | 
|      * When axis extent depends on data and no data exists, | 
|      * axis ticks should not be drawn, which is named 'blank'. | 
|      */ | 
|     isBlank(): boolean; | 
|     /** | 
|      * When axis extent depends on data and no data exists, | 
|      * axis ticks should not be drawn, which is named 'blank'. | 
|      */ | 
|     setBlank(isBlank: boolean): void; | 
|     /** | 
|      * Update interval and extent of intervals for nice ticks | 
|      * | 
|      * @param splitNumber Approximated tick numbers. Optional. | 
|      *        The implementation of `niceTicks` should decide tick numbers | 
|      *        whether `splitNumber` is given. | 
|      * @param minInterval Optional. | 
|      * @param maxInterval Optional. | 
|      */ | 
|     abstract calcNiceTicks(splitNumber?: number, minInterval?: number, maxInterval?: number): void; | 
|     abstract calcNiceExtent(opt?: { | 
|         splitNumber?: number; | 
|         fixMin?: boolean; | 
|         fixMax?: boolean; | 
|         minInterval?: number; | 
|         maxInterval?: number; | 
|     }): void; | 
|     /** | 
|      * @return label of the tick. | 
|      */ | 
|     abstract getLabel(tick: ScaleTick): string; | 
|     abstract getTicks(): ScaleTick[]; | 
|     abstract getMinorTicks(splitNumber: number): number[][]; | 
|     static registerClass: ClassManager['registerClass']; | 
|     static getClass: ClassManager['getClass']; | 
| } | 
|   | 
| interface TickCoord { | 
|     coord: number; | 
|     tickValue?: ScaleTick['value']; | 
| } | 
| /** | 
|  * Base class of Axis. | 
|  */ | 
| declare class Axis { | 
|     /** | 
|      * Axis type | 
|      *  - 'category' | 
|      *  - 'value' | 
|      *  - 'time' | 
|      *  - 'log' | 
|      */ | 
|     type: OptionAxisType; | 
|     readonly dim: DimensionName; | 
|     scale: Scale; | 
|     private _extent; | 
|     model: AxisBaseModel; | 
|     onBand: CategoryAxisBaseOption['boundaryGap']; | 
|     inverse: AxisBaseOption['inverse']; | 
|     constructor(dim: DimensionName, scale: Scale, extent: [number, number]); | 
|     /** | 
|      * If axis extent contain given coord | 
|      */ | 
|     contain(coord: number): boolean; | 
|     /** | 
|      * If axis extent contain given data | 
|      */ | 
|     containData(data: ScaleDataValue): boolean; | 
|     /** | 
|      * Get coord extent. | 
|      */ | 
|     getExtent(): [number, number]; | 
|     /** | 
|      * Get precision used for formatting | 
|      */ | 
|     getPixelPrecision(dataExtent?: [number, number]): number; | 
|     /** | 
|      * Set coord extent | 
|      */ | 
|     setExtent(start: number, end: number): void; | 
|     /** | 
|      * Convert data to coord. Data is the rank if it has an ordinal scale | 
|      */ | 
|     dataToCoord(data: ScaleDataValue, clamp?: boolean): number; | 
|     /** | 
|      * Convert coord to data. Data is the rank if it has an ordinal scale | 
|      */ | 
|     coordToData(coord: number, clamp?: boolean): number; | 
|     /** | 
|      * Convert pixel point to data in axis | 
|      */ | 
|     pointToData(point: number[], clamp?: boolean): number; | 
|     /** | 
|      * Different from `zrUtil.map(axis.getTicks(), axis.dataToCoord, axis)`, | 
|      * `axis.getTicksCoords` considers `onBand`, which is used by | 
|      * `boundaryGap:true` of category axis and splitLine and splitArea. | 
|      * @param opt.tickModel default: axis.model.getModel('axisTick') | 
|      * @param opt.clamp If `true`, the first and the last | 
|      *        tick must be at the axis end points. Otherwise, clip ticks | 
|      *        that outside the axis extent. | 
|      */ | 
|     getTicksCoords(opt?: { | 
|         tickModel?: Model; | 
|         clamp?: boolean; | 
|     }): TickCoord[]; | 
|     getMinorTicksCoords(): TickCoord[][]; | 
|     getViewLabels(): ReturnType<typeof createAxisLabels>['labels']; | 
|     getLabelModel(): Model<AxisBaseOption['axisLabel']>; | 
|     /** | 
|      * Notice here we only get the default tick model. For splitLine | 
|      * or splitArea, we should pass the splitLineModel or splitAreaModel | 
|      * manually when calling `getTicksCoords`. | 
|      * In GL, this method may be overridden to: | 
|      * `axisModel.getModel('axisTick', grid3DModel.getModel('axisTick'));` | 
|      */ | 
|     getTickModel(): Model; | 
|     /** | 
|      * Get width of band | 
|      */ | 
|     getBandWidth(): number; | 
|     /** | 
|      * Get axis rotate, by degree. | 
|      */ | 
|     getRotate: () => number; | 
|     /** | 
|      * Only be called in category axis. | 
|      * Can be overridden, consider other axes like in 3D. | 
|      * @return Auto interval for cateogry axis tick and label | 
|      */ | 
|     calculateCategoryInterval(): ReturnType<typeof calculateCategoryInterval>; | 
| } | 
|   | 
| declare type MarkerStatisticType = 'average' | 'min' | 'max' | 'median'; | 
| /** | 
|  * Option to specify where to put the marker. | 
|  */ | 
| interface MarkerPositionOption { | 
|     x?: number | string; | 
|     y?: number | string; | 
|     /** | 
|      * Coord on any coordinate system | 
|      */ | 
|     coord?: (ScaleDataValue | MarkerStatisticType)[]; | 
|     xAxis?: ScaleDataValue; | 
|     yAxis?: ScaleDataValue; | 
|     radiusAxis?: ScaleDataValue; | 
|     angleAxis?: ScaleDataValue; | 
|     type?: MarkerStatisticType; | 
|     /** | 
|      * When using statistic method with type. | 
|      * valueIndex and valueDim can be specify which dim the statistic is used on. | 
|      */ | 
|     valueIndex?: number; | 
|     valueDim?: string; | 
|     /** | 
|      * Value to be displayed as label. Totally optional | 
|      */ | 
|     value?: string | number; | 
| } | 
| interface MarkerOption extends ComponentOption, AnimationOptionMixin { | 
|     silent?: boolean; | 
|     data?: unknown[]; | 
|     tooltip?: CommonTooltipOption<unknown> & { | 
|         trigger?: 'item' | 'axis' | boolean | 'none'; | 
|     }; | 
| } | 
|   | 
| interface MarkAreaStateOption { | 
|     itemStyle?: ItemStyleOption; | 
|     label?: SeriesLabelOption; | 
| } | 
| interface MarkAreaDataItemOptionBase extends MarkAreaStateOption, StatesOptionMixin<MarkAreaStateOption, StatesMixinBase> { | 
|     name?: string; | 
| } | 
| interface MarkArea1DDataItemOption extends MarkAreaDataItemOptionBase { | 
|     xAxis?: number; | 
|     yAxis?: number; | 
|     type?: MarkerStatisticType; | 
|     valueIndex?: number; | 
|     valueDim?: string; | 
| } | 
| interface MarkArea2DDataItemDimOption extends MarkAreaDataItemOptionBase, MarkerPositionOption { | 
| } | 
| declare type MarkArea2DDataItemOption = [ | 
|     MarkArea2DDataItemDimOption, | 
|     MarkArea2DDataItemDimOption | 
| ]; | 
| interface MarkAreaOption extends MarkerOption, MarkAreaStateOption, StatesOptionMixin<MarkAreaStateOption, StatesMixinBase> { | 
|     mainType?: 'markArea'; | 
|     precision?: number; | 
|     data?: (MarkArea1DDataItemOption | MarkArea2DDataItemOption)[]; | 
| } | 
|   | 
| declare const dimPermutations: readonly [readonly ["x0", "y0"], readonly ["x1", "y0"], readonly ["x1", "y1"], readonly ["x0", "y1"]]; | 
|   | 
| interface BaseBarSeriesOption<StateOption, ExtraStateOption extends StatesMixinBase = DefaultStatesMixin> extends SeriesOption<StateOption, ExtraStateOption>, SeriesOnCartesianOptionMixin, SeriesOnPolarOptionMixin { | 
|     /** | 
|      * Min height of bar | 
|      */ | 
|     barMinHeight?: number; | 
|     /** | 
|      * Min angle of bar. Available on polar coordinate system. | 
|      */ | 
|     barMinAngle?: number; | 
|     /** | 
|      * Max width of bar. Defaults to 1 on cartesian coordinate system. Otherwise it's null. | 
|      */ | 
|     barMaxWidth?: number | string; | 
|     barMinWidth?: number | string; | 
|     /** | 
|      * Bar width. Will be calculated automatically. | 
|      * Can be pixel width or percent string. | 
|      */ | 
|     barWidth?: number | string; | 
|     /** | 
|      * Gap between each bar inside category. Default to be 30%. Can be an aboslute pixel value | 
|      */ | 
|     barGap?: string | number; | 
|     /** | 
|      * Gap between each category. Default to be 20%. can be an absolute pixel value. | 
|      */ | 
|     barCategoryGap?: string | number; | 
|     large?: boolean; | 
|     largeThreshold?: number; | 
| } | 
|   | 
| interface LayoutRect extends BoundingRect { | 
|     margin: number[]; | 
| } | 
| /** | 
|  * Parse position info. | 
|  */ | 
| declare function getLayoutRect(positionInfo: BoxLayoutOptionMixin & { | 
|     aspect?: number; | 
| }, containerRect: { | 
|     width: number; | 
|     height: number; | 
| }, margin?: number | number[]): LayoutRect; | 
|   | 
| interface GridOption extends ComponentOption, BoxLayoutOptionMixin, ShadowOptionMixin { | 
|     mainType?: 'grid'; | 
|     show?: boolean; | 
|     containLabel?: boolean; | 
|     backgroundColor?: ZRColor; | 
|     borderWidth?: number; | 
|     borderColor?: ZRColor; | 
|     tooltip?: any; | 
| } | 
|   | 
| declare type CartesianAxisPosition = 'top' | 'bottom' | 'left' | 'right'; | 
| declare type CartesianAxisOption = AxisBaseOption & { | 
|     gridIndex?: number; | 
|     gridId?: string; | 
|     position?: CartesianAxisPosition; | 
|     offset?: number; | 
|     categorySortInfo?: OrdinalSortInfo; | 
| }; | 
| declare type XAXisOption = CartesianAxisOption & { | 
|     mainType?: 'xAxis'; | 
| }; | 
| declare type YAXisOption = CartesianAxisOption & { | 
|     mainType?: 'yAxis'; | 
| }; | 
|   | 
| declare type AngleAxisOption = AxisBaseOption & { | 
|     mainType?: 'angleAxis'; | 
|     /** | 
|      * Index of host polar component | 
|      */ | 
|     polarIndex?: number; | 
|     /** | 
|      * Id of host polar component | 
|      */ | 
|     polarId?: string; | 
|     startAngle?: number; | 
|     endAngle?: number; | 
|     clockwise?: boolean; | 
|     axisLabel?: AxisBaseOption['axisLabel']; | 
| }; | 
| declare type RadiusAxisOption = AxisBaseOption & { | 
|     mainType?: 'radiusAxis'; | 
|     /** | 
|      * Index of host polar component | 
|      */ | 
|     polarIndex?: number; | 
|     /** | 
|      * Id of host polar component | 
|      */ | 
|     polarId?: string; | 
| }; | 
|   | 
| interface PolarOption extends ComponentOption, CircleLayoutOptionMixin { | 
|     mainType?: 'polar'; | 
| } | 
|   | 
| /** | 
|  * BrushController is not only used in "brush component", | 
|  * but is also used in "tooltip DataZoom", and other possible | 
|  * further brush behavior related scenarios. | 
|  * So `BrushController` should not depend on "brush component model". | 
|  */ | 
| declare type BrushType = 'polygon' | 'rect' | 'lineX' | 'lineY'; | 
| /** | 
|  * Only for drawing (after enabledBrush). | 
|  * 'line', 'rect', 'polygon' or false | 
|  * If passing false/null/undefined, disable brush. | 
|  * If passing 'auto', determined by panel.defaultBrushType | 
|  */ | 
| declare type BrushTypeUncertain = BrushType | false | 'auto'; | 
| declare type BrushMode = 'single' | 'multiple'; | 
| declare type BrushDimensionMinMax = number[]; | 
| declare type BrushAreaRange = BrushDimensionMinMax | BrushDimensionMinMax[]; | 
| interface BrushCoverConfig { | 
|     brushType: BrushType; | 
|     id?: string; | 
|     range?: BrushAreaRange; | 
|     panelId?: string; | 
|     brushMode?: BrushMode; | 
|     brushStyle?: Pick<PathStyleProps, BrushStyleKey>; | 
|     transformable?: boolean; | 
|     removeOnClick?: boolean; | 
|     z?: number; | 
| } | 
| declare type BrushStyleKey = 'fill' | 'stroke' | 'lineWidth' | 'opacity' | 'shadowBlur' | 'shadowOffsetX' | 'shadowOffsetY' | 'shadowColor'; | 
|   | 
| declare type GeoSVGSourceInput = string | Document | SVGElement; | 
| declare type GeoJSONSourceInput = string | GeoJSON | GeoJSONCompressed; | 
| interface NameMap { | 
|     [regionName: string]: string; | 
| } | 
| interface GeoSpecialAreas { | 
|     [areaName: string]: { | 
|         left: number; | 
|         top: number; | 
|         width?: number; | 
|         height?: number; | 
|     }; | 
| } | 
| interface GeoJSON extends GeoJSONFeatureCollection<GeoJSONGeometry> { | 
| } | 
| interface GeoJSONCompressed extends GeoJSONFeatureCollection<GeoJSONGeometryCompressed> { | 
|     UTF8Encoding?: boolean; | 
|     UTF8Scale?: number; | 
| } | 
| interface GeoJSONFeatureCollection<G> { | 
|     type: 'FeatureCollection'; | 
|     features: GeoJSONFeature<G>[]; | 
| } | 
| interface GeoJSONFeature<G = GeoJSONGeometry> { | 
|     type: 'Feature'; | 
|     id?: string | number; | 
|     properties: { | 
|         name?: string; | 
|         cp?: number[]; | 
|         [key: string]: any; | 
|     }; | 
|     geometry: G; | 
| } | 
| declare type GeoJSONGeometry = GeoJSONGeometryPoint | GeoJSONGeometryMultiPoint | GeoJSONGeometryLineString | GeoJSONGeometryMultiLineString | GeoJSONGeometryPolygon | GeoJSONGeometryMultiPolygon; | 
| declare type GeoJSONGeometryCompressed = GeoJSONGeometryPolygonCompressed | GeoJSONGeometryMultiPolygonCompressed | GeoJSONGeometryLineStringCompressed | GeoJSONGeometryMultiLineStringCompressed; | 
| interface GeoJSONGeometryPoint { | 
|     type: 'Point'; | 
|     coordinates: number[]; | 
| } | 
| interface GeoJSONGeometryMultiPoint { | 
|     type: 'MultiPoint'; | 
|     coordinates: number[][]; | 
| } | 
| interface GeoJSONGeometryLineString { | 
|     type: 'LineString'; | 
|     coordinates: number[][]; | 
| } | 
| interface GeoJSONGeometryLineStringCompressed { | 
|     type: 'LineString'; | 
|     coordinates: string; | 
|     encodeOffsets: number[]; | 
| } | 
| interface GeoJSONGeometryMultiLineString { | 
|     type: 'MultiLineString'; | 
|     coordinates: number[][][]; | 
| } | 
| interface GeoJSONGeometryMultiLineStringCompressed { | 
|     type: 'MultiLineString'; | 
|     coordinates: string[]; | 
|     encodeOffsets: number[][]; | 
| } | 
| interface GeoJSONGeometryPolygon { | 
|     type: 'Polygon'; | 
|     coordinates: number[][][]; | 
| } | 
| interface GeoJSONGeometryPolygonCompressed { | 
|     type: 'Polygon'; | 
|     coordinates: string[]; | 
|     encodeOffsets: number[][]; | 
| } | 
| interface GeoJSONGeometryMultiPolygon { | 
|     type: 'MultiPolygon'; | 
|     coordinates: number[][][][]; | 
| } | 
| interface GeoJSONGeometryMultiPolygonCompressed { | 
|     type: 'MultiPolygon'; | 
|     coordinates: string[][]; | 
|     encodeOffsets: number[][][]; | 
| } | 
| interface GeoResource { | 
|     readonly type: 'geoJSON' | 'geoSVG'; | 
|     load(nameMap: NameMap, nameProperty: string): { | 
|         boundingRect: BoundingRect; | 
|         regions: Region[]; | 
|         regionsMap: HashMap<Region>; | 
|     }; | 
| } | 
| /** | 
|  * Geo stream interface compatitable with d3-geo | 
|  * See the API detail in https://github.com/d3/d3-geo#streams | 
|  */ | 
| interface ProjectionStream { | 
|     point(x: number, y: number): void; | 
|     lineStart(): void; | 
|     lineEnd(): void; | 
|     polygonStart(): void; | 
|     polygonEnd(): void; | 
|     /** | 
|      * Not supported yet. | 
|      */ | 
|     sphere(): void; | 
| } | 
| interface GeoProjection { | 
|     project(point: number[]): number[]; | 
|     unproject(point: number[]): number[]; | 
|     /** | 
|      * Projection stream compatitable to d3-geo projection stream. | 
|      * | 
|      * When rotate projection is used. It may have antimeridian artifacts. | 
|      * So we need to introduce the fule projection stream to do antimeridian clipping. | 
|      * | 
|      * project will be ignored if projectStream is given. | 
|      */ | 
|     stream?(outStream: ProjectionStream): ProjectionStream; | 
| } | 
|   | 
| declare abstract class Region { | 
|     readonly name: string; | 
|     readonly type: 'geoJSON' | 'geoSVG'; | 
|     protected _center: number[]; | 
|     protected _rect: BoundingRect; | 
|     constructor(name: string); | 
|     setCenter(center: number[]): void; | 
|     /** | 
|      * Get center point in data unit. That is, | 
|      * for GeoJSONRegion, the unit is lat/lng, | 
|      * for GeoSVGRegion, the unit is SVG local coord. | 
|      */ | 
|     getCenter(): number[]; | 
|     abstract calcCenter(): number[]; | 
| } | 
| declare class GeoJSONPolygonGeometry { | 
|     readonly type = "polygon"; | 
|     exterior: number[][]; | 
|     interiors?: number[][][]; | 
|     constructor(exterior: number[][], interiors: number[][][]); | 
| } | 
| declare class GeoJSONLineStringGeometry { | 
|     readonly type = "linestring"; | 
|     points: number[][][]; | 
|     constructor(points: number[][][]); | 
| } | 
| declare class GeoJSONRegion extends Region { | 
|     readonly type = "geoJSON"; | 
|     readonly geometries: (GeoJSONPolygonGeometry | GeoJSONLineStringGeometry)[]; | 
|     properties: GeoJSON['features'][0]['properties'] & { | 
|         echartsStyle?: Omit<RegionOption, 'name'>; | 
|     }; | 
|     constructor(name: string, geometries: GeoJSONRegion['geometries'], cp: GeoJSON['features'][0]['properties']['cp']); | 
|     calcCenter(): number[]; | 
|     getBoundingRect(projection?: GeoProjection): BoundingRect; | 
|     contain(coord: number[]): boolean; | 
|     /** | 
|      * Transform the raw coords to target bounding. | 
|      * @param x | 
|      * @param y | 
|      * @param width | 
|      * @param height | 
|      */ | 
|     transformTo(x: number, y: number, width: number, height: number): void; | 
|     cloneShallow(name: string): GeoJSONRegion; | 
| } | 
|   | 
| declare type ECSymbol = Path & { | 
|     __isEmptyBrush?: boolean; | 
|     setColor: (color: ZRColor, innerColor?: ZRColor) => void; | 
|     getColor: () => ZRColor; | 
| }; | 
| /** | 
|  * Create a symbol element with given symbol configuration: shape, x, y, width, height, color | 
|  */ | 
| declare function createSymbol(symbolType: string, x: number, y: number, w: number, h: number, color?: ZRColor, keepAspect?: boolean): ECSymbol; | 
|   | 
| declare type ItemStyleKeys = 'fill' | 'stroke' | 'decal' | 'lineWidth' | 'opacity' | 'shadowBlur' | 'shadowOffsetX' | 'shadowOffsetY' | 'shadowColor' | 'lineDash' | 'lineDashOffset' | 'lineCap' | 'lineJoin' | 'miterLimit'; | 
| declare type ItemStyleProps = Pick<PathStyleProps, ItemStyleKeys>; | 
| declare class ItemStyleMixin { | 
|     getItemStyle(this: Model, excludes?: readonly (keyof ItemStyleOption)[], includes?: readonly (keyof ItemStyleOption)[]): ItemStyleProps; | 
| } | 
|   | 
| declare type LineStyleKeys = 'lineWidth' | 'stroke' | 'opacity' | 'shadowBlur' | 'shadowOffsetX' | 'shadowOffsetY' | 'shadowColor' | 'lineDash' | 'lineDashOffset' | 'lineCap' | 'lineJoin' | 'miterLimit'; | 
| declare type LineStyleProps = Pick<PathStyleProps, LineStyleKeys>; | 
| declare class LineStyleMixin { | 
|     getLineStyle(this: Model, excludes?: readonly (keyof LineStyleOption)[]): LineStyleProps; | 
| } | 
|   | 
| declare type SelectorType = 'all' | 'inverse'; | 
| interface LegendSelectorButtonOption { | 
|     type?: SelectorType; | 
|     title?: string; | 
| } | 
| /** | 
|  * T: the type to be extended | 
|  * ET: extended type for keys of T | 
|  * ST: special type for T to be extended | 
|  */ | 
| declare type ExtendPropertyType<T, ET, ST extends { | 
|     [key in keyof T]: any; | 
| }> = { | 
|     [key in keyof T]: key extends keyof ST ? T[key] | ET | ST[key] : T[key] | ET; | 
| }; | 
| interface LegendItemStyleOption extends ExtendPropertyType<ItemStyleOption, 'inherit', { | 
|     borderWidth: 'auto'; | 
| }> { | 
| } | 
| interface LegendLineStyleOption extends ExtendPropertyType<LineStyleOption, 'inherit', { | 
|     width: 'auto'; | 
| }> { | 
|     inactiveColor?: ColorString; | 
|     inactiveWidth?: number; | 
| } | 
| interface LegendStyleOption { | 
|     /** | 
|      * Icon of the legend items. | 
|      * @default 'roundRect' | 
|      */ | 
|     icon?: string; | 
|     /** | 
|      * Color when legend item is not selected | 
|      */ | 
|     inactiveColor?: ColorString; | 
|     /** | 
|      * Border color when legend item is not selected | 
|      */ | 
|     inactiveBorderColor?: ColorString; | 
|     /** | 
|      * Border color when legend item is not selected | 
|      */ | 
|     inactiveBorderWidth?: number | 'auto'; | 
|     /** | 
|      * Legend label formatter | 
|      */ | 
|     formatter?: string | ((name: string) => string); | 
|     itemStyle?: LegendItemStyleOption; | 
|     lineStyle?: LegendLineStyleOption; | 
|     textStyle?: LabelOption; | 
|     symbolRotate?: number | 'inherit'; | 
|     /** | 
|      * @deprecated | 
|      */ | 
|     symbolKeepAspect?: boolean; | 
| } | 
| interface DataItem extends LegendStyleOption { | 
|     name?: string; | 
|     icon?: string; | 
|     textStyle?: LabelOption; | 
|     tooltip?: unknown; | 
| } | 
| interface LegendTooltipFormatterParams { | 
|     componentType: 'legend'; | 
|     legendIndex: number; | 
|     name: string; | 
|     $vars: ['name']; | 
| } | 
| interface LegendIconParams { | 
|     itemWidth: number; | 
|     itemHeight: number; | 
|     /** | 
|      * symbolType is from legend.icon, legend.data.icon, or series visual | 
|      */ | 
|     icon: string; | 
|     iconRotate: number | 'inherit'; | 
|     symbolKeepAspect: boolean; | 
|     itemStyle: PathStyleProps; | 
|     lineStyle: LineStyleProps; | 
| } | 
| interface LegendOption extends ComponentOption, LegendStyleOption, BoxLayoutOptionMixin, BorderOptionMixin { | 
|     mainType?: 'legend'; | 
|     show?: boolean; | 
|     orient?: LayoutOrient; | 
|     align?: 'auto' | 'left' | 'right'; | 
|     backgroundColor?: ColorString; | 
|     /** | 
|      * Border radius of background rect | 
|      * @default 0 | 
|      */ | 
|     borderRadius?: number | number[]; | 
|     /** | 
|      * Padding between legend item and border. | 
|      * Support to be a single number or an array. | 
|      * @default 5 | 
|      */ | 
|     padding?: number | number[]; | 
|     /** | 
|      * Gap between each legend item. | 
|      * @default 10 | 
|      */ | 
|     itemGap?: number; | 
|     /** | 
|      * Width of legend symbol | 
|      */ | 
|     itemWidth?: number; | 
|     /** | 
|      * Height of legend symbol | 
|      */ | 
|     itemHeight?: number; | 
|     selectedMode?: boolean | 'single' | 'multiple'; | 
|     /** | 
|      * selected map of each item. Default to be selected if item is not in the map | 
|      */ | 
|     selected?: Dictionary<boolean>; | 
|     /** | 
|      * Buttons for all select or inverse select. | 
|      * @example | 
|      *  selector: [{type: 'all or inverse', title: xxx}] | 
|      *  selector: true | 
|      *  selector: ['all', 'inverse'] | 
|      */ | 
|     selector?: (LegendSelectorButtonOption | SelectorType)[] | boolean; | 
|     selectorLabel?: LabelOption; | 
|     emphasis?: { | 
|         selectorLabel?: LabelOption; | 
|     }; | 
|     /** | 
|      * Position of selector buttons. | 
|      */ | 
|     selectorPosition?: 'auto' | 'start' | 'end'; | 
|     /** | 
|      * Gap between each selector button | 
|      */ | 
|     selectorItemGap?: number; | 
|     /** | 
|      * Gap between selector buttons group and legend main items. | 
|      */ | 
|     selectorButtonGap?: number; | 
|     data?: (string | DataItem)[]; | 
|     /** | 
|      * Tooltip option | 
|      */ | 
|     tooltip?: CommonTooltipOption<LegendTooltipFormatterParams>; | 
| } | 
|   | 
| interface MapStateOption<TCbParams = never> { | 
|     itemStyle?: GeoItemStyleOption<TCbParams>; | 
|     label?: SeriesLabelOption; | 
| } | 
| interface MapDataItemOption extends MapStateOption, StatesOptionMixin<MapStateOption, StatesMixinBase>, OptionDataItemObject<OptionDataValueNumeric> { | 
|     cursor?: string; | 
|     silent?: boolean; | 
| } | 
| declare type MapValueCalculationType = 'sum' | 'average' | 'min' | 'max'; | 
| interface MapSeriesOption extends SeriesOption<MapStateOption<CallbackDataParams>, StatesMixinBase>, MapStateOption<CallbackDataParams>, GeoCommonOptionMixin, SeriesOnGeoOptionMixin, BoxLayoutOptionMixin, SeriesEncodeOptionMixin { | 
|     type?: 'map'; | 
|     coordinateSystem?: string; | 
|     silent?: boolean; | 
|     markLine?: any; | 
|     markPoint?: any; | 
|     markArea?: any; | 
|     mapValueCalculation?: MapValueCalculationType; | 
|     showLegendSymbol?: boolean; | 
|     geoCoord?: Dictionary<number[]>; | 
|     data?: (OptionDataValueNumeric | OptionDataValueNumeric[] | MapDataItemOption)[]; | 
|     nameProperty?: string; | 
| } | 
|   | 
| interface GeoItemStyleOption<TCbParams = never> extends ItemStyleOption<TCbParams> { | 
|     areaColor?: ZRColor; | 
| } | 
| interface GeoLabelOption extends LabelOption { | 
|     formatter?: string | ((params: GeoLabelFormatterDataParams) => string); | 
| } | 
| interface GeoStateOption { | 
|     itemStyle?: GeoItemStyleOption; | 
|     label?: GeoLabelOption; | 
| } | 
| interface GeoLabelFormatterDataParams { | 
|     name: string; | 
|     status: DisplayState; | 
| } | 
| interface RegionOption extends GeoStateOption, StatesOptionMixin<GeoStateOption, StatesMixinBase> { | 
|     name?: string; | 
|     selected?: boolean; | 
|     tooltip?: CommonTooltipOption<GeoTooltipFormatterParams>; | 
|     silent?: boolean; | 
| } | 
| interface GeoTooltipFormatterParams { | 
|     componentType: 'geo'; | 
|     geoIndex: number; | 
|     name: string; | 
|     $vars: ['name']; | 
| } | 
| interface GeoCommonOptionMixin extends RoamOptionMixin { | 
|     map: string; | 
|     aspectScale?: number; | 
|     layoutCenter?: (number | string)[]; | 
|     layoutSize?: number | string; | 
|     boundingCoords?: number[][]; | 
|     nameMap?: NameMap; | 
|     nameProperty?: string; | 
|     /** | 
|      * Use raw projection by default | 
|      * Only available for GeoJSON source. | 
|      * | 
|      * NOTE: `center` needs to be the projected coord if projection is used. | 
|      */ | 
|     projection?: GeoProjection; | 
| } | 
| interface GeoOption extends ComponentOption, BoxLayoutOptionMixin, AnimationOptionMixin, GeoCommonOptionMixin, StatesOptionMixin<GeoStateOption, StatesMixinBase>, GeoStateOption { | 
|     mainType?: 'geo'; | 
|     show?: boolean; | 
|     silent?: boolean; | 
|     regions?: RegionOption[]; | 
|     stateAnimation?: AnimationOptionMixin; | 
|     selectedMode?: 'single' | 'multiple' | boolean; | 
|     selectedMap?: Dictionary<boolean>; | 
|     tooltip?: CommonTooltipOption<GeoTooltipFormatterParams>; | 
| } | 
|   | 
| /** | 
|  * The input to define brush areas. | 
|  * (1) Can be created by user when calling dispatchAction. | 
|  * (2) Can be created by `BrushController` | 
|  * for brush behavior. area params are picked from `cover.__brushOptoin`. | 
|  * In `BrushController`, "covers" are create or updated for each "area". | 
|  */ | 
| interface BrushAreaParam extends ModelFinderObject { | 
|     brushType: BrushCoverConfig['brushType']; | 
|     id?: BrushCoverConfig['id']; | 
|     range?: BrushCoverConfig['range']; | 
|     panelId?: BrushCoverConfig['panelId']; | 
|     coordRange?: BrushAreaRange; | 
|     coordRanges?: BrushAreaRange[]; | 
|     __rangeOffset?: { | 
|         offset: BrushDimensionMinMax[] | BrushDimensionMinMax; | 
|         xyMinMax: BrushDimensionMinMax[]; | 
|     }; | 
| } | 
| /** | 
|  * Generated by `brushModel.setAreas`, which merges | 
|  * `area: BrushAreaParam` and `brushModel.option: BrushOption`. | 
|  * See `generateBrushOption`. | 
|  */ | 
| interface BrushAreaParamInternal extends BrushAreaParam { | 
|     brushMode: BrushMode; | 
|     brushStyle: BrushCoverConfig['brushStyle']; | 
|     transformable: BrushCoverConfig['transformable']; | 
|     removeOnClick: BrushCoverConfig['removeOnClick']; | 
|     z: BrushCoverConfig['z']; | 
|     __rangeOffset?: { | 
|         offset: BrushDimensionMinMax | BrushDimensionMinMax[]; | 
|         xyMinMax: BrushDimensionMinMax[]; | 
|     }; | 
| } | 
| declare type BrushToolboxIconType = BrushType | 'keep' | 'clear'; | 
| interface BrushOption extends ComponentOption, ModelFinderObject { | 
|     mainType?: 'brush'; | 
|     toolbox?: BrushToolboxIconType[]; | 
|     brushLink?: number[] | 'all' | 'none'; | 
|     throttleType?: 'fixRate' | 'debounce'; | 
|     throttleDelay?: number; | 
|     inBrush?: VisualOptionFixed; | 
|     outOfBrush?: VisualOptionFixed; | 
|     brushType?: BrushTypeUncertain; | 
|     brushStyle?: { | 
|         borderWidth?: number; | 
|         color?: ZRColor; | 
|         borderColor?: ZRColor; | 
|     }; | 
|     transformable?: boolean; | 
|     brushMode?: BrushMode; | 
|     removeOnClick?: boolean; | 
| } | 
|   | 
| interface BrushSelectableArea extends BrushAreaParamInternal { | 
|     boundingRect: BoundingRect; | 
|     selectors: BrushCommonSelectorsForSeries; | 
| } | 
| /** | 
|  * This methods are corresponding to `BrushSelectorOnBrushType`, | 
|  * but `area: BrushSelectableArea` is binded to each method. | 
|  */ | 
| interface BrushCommonSelectorsForSeries { | 
|     point(itemLayout: number[]): boolean; | 
|     rect(itemLayout: RectLike): boolean; | 
| } | 
|   | 
| declare type PolarBarLabelPosition = SeriesLabelOption['position'] | 'start' | 'insideStart' | 'middle' | 'end' | 'insideEnd'; | 
| declare type BarSeriesLabelOption = Omit<SeriesLabelOption, 'position'> & { | 
|     position?: PolarBarLabelPosition | 'outside'; | 
| }; | 
| interface BarStateOption<TCbParams = never> { | 
|     itemStyle?: BarItemStyleOption<TCbParams>; | 
|     label?: BarSeriesLabelOption; | 
| } | 
| interface BarStatesMixin { | 
|     emphasis?: DefaultStatesMixinEmphasis; | 
| } | 
| interface BarItemStyleOption<TCbParams = never> extends ItemStyleOption<TCbParams> { | 
|     borderRadius?: (number | string)[] | number | string; | 
| } | 
| interface BarDataItemOption extends BarStateOption, StatesOptionMixin<BarStateOption, BarStatesMixin>, OptionDataItemObject<OptionDataValue> { | 
|     cursor?: string; | 
| } | 
| interface BarSeriesOption extends BaseBarSeriesOption<BarStateOption<CallbackDataParams>, BarStatesMixin>, BarStateOption<CallbackDataParams>, SeriesStackOptionMixin, SeriesSamplingOptionMixin, SeriesEncodeOptionMixin { | 
|     type?: 'bar'; | 
|     coordinateSystem?: 'cartesian2d' | 'polar'; | 
|     clip?: boolean; | 
|     /** | 
|      * If use caps on two sides of bars | 
|      * Only available on tangential polar bar | 
|      */ | 
|     roundCap?: boolean; | 
|     showBackground?: boolean; | 
|     startValue?: number; | 
|     backgroundStyle?: ItemStyleOption & { | 
|         borderRadius?: number | number[]; | 
|     }; | 
|     data?: (BarDataItemOption | OptionDataValue | OptionDataValue[])[]; | 
|     realtimeSort?: boolean; | 
| } | 
|   | 
| /** | 
|  * { | 
|  *  [coordSysId]: { | 
|  *      [stackId]: {bandWidth, offset, width} | 
|  *  } | 
|  * } | 
|  */ | 
| declare type BarWidthAndOffset = Dictionary<Dictionary<{ | 
|     bandWidth: number; | 
|     offset: number; | 
|     offsetCenter: number; | 
|     width: number; | 
| }>>; | 
| interface BarGridLayoutOptionForCustomSeries { | 
|     count: number; | 
|     barWidth?: number | string; | 
|     barMaxWidth?: number | string; | 
|     barMinWidth?: number | string; | 
|     barGap?: number | string; | 
|     barCategoryGap?: number | string; | 
| } | 
| declare type BarGridLayoutResult = BarWidthAndOffset[string][string][]; | 
|   | 
| interface TransitionOptionMixin<T = Record<string, any>> { | 
|     transition?: (keyof T & string) | ((keyof T & string)[]) | 'all'; | 
|     enterFrom?: T; | 
|     leaveTo?: T; | 
|     enterAnimation?: AnimationOption$1; | 
|     updateAnimation?: AnimationOption$1; | 
|     leaveAnimation?: AnimationOption$1; | 
| } | 
| interface TransitionBaseDuringAPI { | 
|     setTransform(key: TransformProp, val: number): this; | 
|     getTransform(key: TransformProp): number; | 
|     setExtra(key: string, val: unknown): this; | 
|     getExtra(key: string): unknown; | 
| } | 
| interface TransitionDuringAPI<StyleOpt extends any = any, ShapeOpt extends any = any> extends TransitionBaseDuringAPI { | 
|     setShape<T extends keyof ShapeOpt>(key: T, val: ShapeOpt[T]): this; | 
|     getShape<T extends keyof ShapeOpt>(key: T): ShapeOpt[T]; | 
|     setStyle<T extends keyof StyleOpt>(key: T, val: StyleOpt[T]): this; | 
|     getStyle<T extends keyof StyleOpt>(key: T): StyleOpt[T]; | 
| } | 
|   | 
| declare type AnimationKeyframe<T extends Record<string, any>> = T & { | 
|     easing?: AnimationEasing; | 
|     percent?: number; | 
| }; | 
| interface ElementKeyframeAnimationOption<Props extends Record<string, any>> extends AnimationOption$1 { | 
|     loop?: boolean; | 
|     keyframes?: AnimationKeyframe<Props>[]; | 
| } | 
|   | 
| declare type CustomExtraElementInfo = Dictionary<unknown>; | 
| declare const STYLE_VISUAL_TYPE: { | 
|     readonly color: "fill"; | 
|     readonly borderColor: "stroke"; | 
| }; | 
| declare type StyleVisualProps = keyof typeof STYLE_VISUAL_TYPE; | 
| declare const NON_STYLE_VISUAL_PROPS: { | 
|     readonly symbol: 1; | 
|     readonly symbolSize: 1; | 
|     readonly symbolKeepAspect: 1; | 
|     readonly legendIcon: 1; | 
|     readonly visualMeta: 1; | 
|     readonly liftZ: 1; | 
|     readonly decal: 1; | 
| }; | 
| declare type NonStyleVisualProps = keyof typeof NON_STYLE_VISUAL_PROPS; | 
| declare type ShapeMorphingOption = { | 
|     /** | 
|      * If do shape morphing animation when type is changed. | 
|      * Only available on path. | 
|      */ | 
|     morph?: boolean; | 
| }; | 
| interface CustomBaseElementOption extends Partial<Pick<Element, TransformProp | 'silent' | 'ignore' | 'textConfig'>> { | 
|     type: string; | 
|     id?: string; | 
|     name?: string; | 
|     info?: CustomExtraElementInfo; | 
|     textContent?: CustomTextOption | false; | 
|     clipPath?: CustomBaseZRPathOption | false; | 
|     extra?: Dictionary<unknown> & TransitionOptionMixin; | 
|     during?(params: TransitionBaseDuringAPI): void; | 
|     enterAnimation?: AnimationOption$1; | 
|     updateAnimation?: AnimationOption$1; | 
|     leaveAnimation?: AnimationOption$1; | 
| } | 
| interface CustomDisplayableOption extends CustomBaseElementOption, Partial<Pick<Displayable, 'zlevel' | 'z' | 'z2' | 'invisible'>> { | 
|     style?: ZRStyleProps; | 
|     during?(params: TransitionDuringAPI): void; | 
|     /** | 
|      * @deprecated | 
|      */ | 
|     styleEmphasis?: ZRStyleProps | false; | 
|     emphasis?: CustomDisplayableOptionOnState; | 
|     blur?: CustomDisplayableOptionOnState; | 
|     select?: CustomDisplayableOptionOnState; | 
| } | 
| interface CustomDisplayableOptionOnState extends Partial<Pick<Displayable, TransformProp | 'textConfig' | 'z2'>> { | 
|     style?: ZRStyleProps | false; | 
| } | 
| interface CustomGroupOption extends CustomBaseElementOption, TransitionOptionMixin<GroupProps> { | 
|     type: 'group'; | 
|     width?: number; | 
|     height?: number; | 
|     diffChildrenByName?: boolean; | 
|     children: CustomElementOption[]; | 
|     $mergeChildren?: false | 'byName' | 'byIndex'; | 
|     keyframeAnimation?: ElementKeyframeAnimationOption<GroupProps> | ElementKeyframeAnimationOption<GroupProps>[]; | 
| } | 
| interface CustomBaseZRPathOption<T extends PathProps['shape'] = PathProps['shape']> extends CustomDisplayableOption, ShapeMorphingOption, TransitionOptionMixin<PathProps & { | 
|     shape: T; | 
| }> { | 
|     autoBatch?: boolean; | 
|     shape?: T & TransitionOptionMixin<T>; | 
|     style?: PathProps['style'] & TransitionOptionMixin<PathStyleProps>; | 
|     during?(params: TransitionDuringAPI<PathStyleProps, T>): void; | 
|     keyframeAnimation?: ElementKeyframeAnimationOption<PathProps & { | 
|         shape: T; | 
|     }> | ElementKeyframeAnimationOption<PathProps & { | 
|         shape: T; | 
|     }>[]; | 
| } | 
| interface BuiltinShapes { | 
|     circle: Partial<Circle['shape']>; | 
|     rect: Partial<Rect['shape']>; | 
|     sector: Partial<Sector['shape']>; | 
|     polygon: Partial<Polygon['shape']>; | 
|     polyline: Partial<Polyline['shape']>; | 
|     line: Partial<Line['shape']>; | 
|     arc: Partial<Arc['shape']>; | 
|     bezierCurve: Partial<BezierCurve['shape']>; | 
|     ring: Partial<Ring['shape']>; | 
|     ellipse: Partial<Ellipse['shape']>; | 
|     compoundPath: Partial<CompoundPath['shape']>; | 
| } | 
| interface CustomSVGPathShapeOption { | 
|     pathData?: string; | 
|     d?: string; | 
|     layout?: 'center' | 'cover'; | 
|     x?: number; | 
|     y?: number; | 
|     width?: number; | 
|     height?: number; | 
| } | 
| interface CustomSVGPathOption extends CustomBaseZRPathOption<CustomSVGPathShapeOption> { | 
|     type: 'path'; | 
| } | 
| interface CustomBuitinPathOption<T extends keyof BuiltinShapes> extends CustomBaseZRPathOption<BuiltinShapes[T]> { | 
|     type: T; | 
| } | 
| declare type CreateCustomBuitinPathOption<T extends keyof BuiltinShapes> = T extends any ? CustomBuitinPathOption<T> : never; | 
| declare type CustomPathOption = CreateCustomBuitinPathOption<keyof BuiltinShapes> | CustomSVGPathOption; | 
| interface CustomImageOptionOnState extends CustomDisplayableOptionOnState { | 
|     style?: ImageStyleProps; | 
| } | 
| interface CustomImageOption extends CustomDisplayableOption, TransitionOptionMixin<ImageProps> { | 
|     type: 'image'; | 
|     style?: ImageStyleProps & TransitionOptionMixin<ImageStyleProps>; | 
|     emphasis?: CustomImageOptionOnState; | 
|     blur?: CustomImageOptionOnState; | 
|     select?: CustomImageOptionOnState; | 
|     keyframeAnimation?: ElementKeyframeAnimationOption<ImageProps> | ElementKeyframeAnimationOption<ImageProps>[]; | 
| } | 
| interface CustomTextOptionOnState extends CustomDisplayableOptionOnState { | 
|     style?: TextStyleProps; | 
| } | 
| interface CustomTextOption extends CustomDisplayableOption, TransitionOptionMixin<TextProps> { | 
|     type: 'text'; | 
|     style?: TextStyleProps & TransitionOptionMixin<TextStyleProps>; | 
|     emphasis?: CustomTextOptionOnState; | 
|     blur?: CustomTextOptionOnState; | 
|     select?: CustomTextOptionOnState; | 
|     keyframeAnimation?: ElementKeyframeAnimationOption<TextProps> | ElementKeyframeAnimationOption<TextProps>[]; | 
| } | 
| declare type CustomElementOption = CustomPathOption | CustomImageOption | CustomTextOption | CustomGroupOption; | 
| declare type CustomRootElementOption = CustomElementOption & { | 
|     focus?: 'none' | 'self' | 'series' | ArrayLike<number>; | 
|     blurScope?: BlurScope; | 
|     emphasisDisabled?: boolean; | 
| }; | 
| interface CustomSeriesRenderItemAPI extends CustomSeriesRenderItemCoordinateSystemAPI { | 
|     getWidth(): number; | 
|     getHeight(): number; | 
|     getZr(): ZRenderType; | 
|     getDevicePixelRatio(): number; | 
|     value(dim: DimensionLoose, dataIndexInside?: number): ParsedValue; | 
|     ordinalRawValue(dim: DimensionLoose, dataIndexInside?: number): ParsedValue | OrdinalRawValue; | 
|     /** | 
|      * @deprecated | 
|      */ | 
|     style(userProps?: ZRStyleProps, dataIndexInside?: number): ZRStyleProps; | 
|     /** | 
|      * @deprecated | 
|      */ | 
|     styleEmphasis(userProps?: ZRStyleProps, dataIndexInside?: number): ZRStyleProps; | 
|     visual<VT extends NonStyleVisualProps | StyleVisualProps>(visualType: VT, dataIndexInside?: number): VT extends NonStyleVisualProps ? DefaultDataVisual[VT] : VT extends StyleVisualProps ? PathStyleProps[typeof STYLE_VISUAL_TYPE[VT]] : void; | 
|     barLayout(opt: BarGridLayoutOptionForCustomSeries): BarGridLayoutResult; | 
|     currentSeriesIndices(): number[]; | 
|     font(opt: Pick<TextCommonOption, 'fontStyle' | 'fontWeight' | 'fontSize' | 'fontFamily'>): string; | 
| } | 
| interface CustomSeriesRenderItemParamsCoordSys { | 
|     type: string; | 
| } | 
| interface CustomSeriesRenderItemCoordinateSystemAPI { | 
|     coord(data: OptionDataValue | OptionDataValue[], clamp?: boolean): number[]; | 
|     size?(dataSize: OptionDataValue | OptionDataValue[], dataItem?: OptionDataValue | OptionDataValue[]): number | number[]; | 
| } | 
| declare type WrapEncodeDefRet = Dictionary<number[]>; | 
| interface CustomSeriesRenderItemParams { | 
|     context: Dictionary<unknown>; | 
|     dataIndex: number; | 
|     seriesId: string; | 
|     seriesName: string; | 
|     seriesIndex: number; | 
|     coordSys: CustomSeriesRenderItemParamsCoordSys; | 
|     encode: WrapEncodeDefRet; | 
|     dataIndexInside: number; | 
|     dataInsideLength: number; | 
|     actionType?: string; | 
| } | 
| declare type CustomSeriesRenderItemReturn = CustomRootElementOption | undefined | null; | 
| declare type CustomSeriesRenderItem = (params: CustomSeriesRenderItemParams, api: CustomSeriesRenderItemAPI) => CustomSeriesRenderItemReturn; | 
| interface CustomSeriesOption extends SeriesOption<unknown>, // don't support StateOption in custom series. | 
| SeriesEncodeOptionMixin, SeriesOnCartesianOptionMixin, SeriesOnPolarOptionMixin, SeriesOnSingleOptionMixin, SeriesOnGeoOptionMixin, SeriesOnCalendarOptionMixin { | 
|     type?: 'custom'; | 
|     coordinateSystem?: string | 'none'; | 
|     renderItem?: CustomSeriesRenderItem; | 
|     /** | 
|      * @deprecated | 
|      */ | 
|     itemStyle?: ItemStyleOption; | 
|     /** | 
|      * @deprecated | 
|      */ | 
|     label?: LabelOption; | 
|     /** | 
|      * @deprecated | 
|      */ | 
|     emphasis?: { | 
|         /** | 
|          * @deprecated | 
|          */ | 
|         itemStyle?: ItemStyleOption; | 
|         /** | 
|          * @deprecated | 
|          */ | 
|         label?: LabelOption; | 
|     }; | 
|     clip?: boolean; | 
| } | 
| declare type PrepareCustomInfo = (coordSys: CoordinateSystem) => { | 
|     coordSys: CustomSeriesRenderItemParamsCoordSys; | 
|     api: CustomSeriesRenderItemCoordinateSystemAPI; | 
| }; | 
|   | 
| interface CoordinateSystemCreator { | 
|     create: (ecModel: GlobalModel, api: ExtensionAPI) => CoordinateSystemMaster[]; | 
|     dimensions?: DimensionName[]; | 
|     getDimensionsInfo?: () => DimensionDefinitionLoose[]; | 
| } | 
| /** | 
|  * The instance get from `CoordinateSystemManger` is `CoordinateSystemMaster`. | 
|  */ | 
| interface CoordinateSystemMaster { | 
|     dimensions: DimensionName[]; | 
|     model?: ComponentModel; | 
|     update?: (ecModel: GlobalModel, api: ExtensionAPI) => void; | 
|     convertToPixel?(ecModel: GlobalModel, finder: ParsedModelFinder, value: ScaleDataValue | ScaleDataValue[]): number | number[]; | 
|     convertFromPixel?(ecModel: GlobalModel, finder: ParsedModelFinder, pixelValue: number | number[]): number | number[]; | 
|     containPoint(point: number[]): boolean; | 
|     getAxes?: () => Axis[]; | 
|     axisPointerEnabled?: boolean; | 
|     getTooltipAxes?: (dim: DimensionName | 'auto') => { | 
|         baseAxes: Axis[]; | 
|         otherAxes: Axis[]; | 
|     }; | 
|     /** | 
|      * Get layout rect or coordinate system | 
|      */ | 
|     getRect?: () => RectLike; | 
| } | 
| /** | 
|  * For example: cartesian is CoordinateSystem. | 
|  * series.coordinateSystem is CoordinateSystem. | 
|  */ | 
| interface CoordinateSystem { | 
|     type: string; | 
|     /** | 
|      * Master of coordinate system. For example: | 
|      * Grid is master of cartesian. | 
|      */ | 
|     master?: CoordinateSystemMaster; | 
|     dimensions: DimensionName[]; | 
|     model?: ComponentModel; | 
|     /** | 
|      * @param data | 
|      * @param reserved Defined by the coordinate system itself | 
|      * @param out | 
|      * @return {Array.<number>} point Point in global pixel coordinate system. | 
|      */ | 
|     dataToPoint(data: ScaleDataValue | ScaleDataValue[], reserved?: any, out?: number[]): number[]; | 
|     /** | 
|      * Some coord sys (like Parallel) might do not have `pointToData`, | 
|      * or the meaning of this kind of features is not clear yet. | 
|      * @param point point Point in global pixel coordinate system. | 
|      * @param clamp Clamp range | 
|      * @return data | 
|      */ | 
|     pointToData?(point: number[], clamp?: boolean): number | number[]; | 
|     containPoint(point: number[]): boolean; | 
|     getAxes?: () => Axis[]; | 
|     getAxis?: (dim?: DimensionName) => Axis; | 
|     getBaseAxis?: () => Axis; | 
|     getOtherAxis?: (baseAxis: Axis) => Axis; | 
|     clampData?: (data: ScaleDataValue[], out?: number[]) => number[]; | 
|     getRoamTransform?: () => MatrixArray; | 
|     getArea?: (tolerance?: number) => CoordinateSystemClipArea; | 
|     getBoundingRect?: () => BoundingRect; | 
|     getAxesByScale?: (scaleType: string) => Axis[]; | 
|     prepareCustoms?: PrepareCustomInfo; | 
| } | 
| /** | 
|  * Like GridModel, PolarModel, ... | 
|  */ | 
| interface CoordinateSystemHostModel extends ComponentModel { | 
|     coordinateSystem?: CoordinateSystemMaster; | 
| } | 
| /** | 
|  * Clip area will be returned by getArea of CoordinateSystem. | 
|  * It is used to clip the graphic elements with the contain methods. | 
|  */ | 
| interface CoordinateSystemClipArea { | 
|     contain(x: number, y: number): boolean; | 
| } | 
|   | 
| /** | 
|  * LegendVisualProvider is an bridge that pick encoded color from data and | 
|  * provide to the legend component. | 
|  */ | 
| declare class LegendVisualProvider { | 
|     private _getDataWithEncodedVisual; | 
|     private _getRawData; | 
|     constructor(getDataWithEncodedVisual: () => SeriesData, getRawData: () => SeriesData); | 
|     getAllNames(): string[]; | 
|     containName(name: string): boolean; | 
|     indexOfName(name: string): number; | 
|     getItemVisual(dataIndex: number, key: string): any; | 
| } | 
|   | 
| declare function makeStyleMapper(properties: readonly string[][], ignoreParent?: boolean): (model: Model, excludes?: readonly string[], includes?: readonly string[]) => PathStyleProps; | 
|   | 
| declare const SERIES_UNIVERSAL_TRANSITION_PROP = "__universalTransitionEnabled"; | 
| interface SeriesModel { | 
|     /** | 
|      * Convenient for override in extended class. | 
|      * Implement it if needed. | 
|      */ | 
|     preventIncremental(): boolean; | 
|     /** | 
|      * See tooltip. | 
|      * Implement it if needed. | 
|      * @return Point of tooltip. null/undefined can be returned. | 
|      */ | 
|     getTooltipPosition(dataIndex: number): number[]; | 
|     /** | 
|      * Get data indices for show tooltip content. See tooltip. | 
|      * Implement it if needed. | 
|      */ | 
|     getAxisTooltipData(dim: DimensionName[], value: ScaleDataValue, baseAxis: Axis): { | 
|         dataIndices: number[]; | 
|         nestestValue: any; | 
|     }; | 
|     /** | 
|      * Get position for marker | 
|      */ | 
|     getMarkerPosition(value: ScaleDataValue[], dims?: typeof dimPermutations[number], startingAtTick?: boolean): number[]; | 
|     /** | 
|      * Get legend icon symbol according to each series type | 
|      */ | 
|     getLegendIcon(opt: LegendIconParams): ECSymbol | Group; | 
|     /** | 
|      * See `component/brush/selector.js` | 
|      * Defined the brush selector for this series. | 
|      */ | 
|     brushSelector(dataIndex: number, data: SeriesData, selectors: BrushCommonSelectorsForSeries, area: BrushSelectableArea): boolean; | 
|     enableAriaDecal(): void; | 
| } | 
| declare class SeriesModel<Opt extends SeriesOption = SeriesOption> extends ComponentModel<Opt> { | 
|     type: string; | 
|     defaultOption: SeriesOption; | 
|     seriesIndex: number; | 
|     coordinateSystem: CoordinateSystem; | 
|     dataTask: SeriesTask; | 
|     pipelineContext: PipelineContext; | 
|     legendVisualProvider: LegendVisualProvider; | 
|     visualStyleAccessPath: string; | 
|     visualDrawType: 'fill' | 'stroke'; | 
|     visualStyleMapper: ReturnType<typeof makeStyleMapper>; | 
|     ignoreStyleOnData: boolean; | 
|     hasSymbolVisual: boolean; | 
|     defaultSymbol: string; | 
|     legendIcon: string; | 
|     [SERIES_UNIVERSAL_TRANSITION_PROP]: boolean; | 
|     private _selectedDataIndicesMap; | 
|     readonly preventUsingHoverLayer: boolean; | 
|     static protoInitialize: void; | 
|     init(option: Opt, parentModel: Model, ecModel: GlobalModel): void; | 
|     /** | 
|      * Util for merge default and theme to option | 
|      */ | 
|     mergeDefaultAndTheme(option: Opt, ecModel: GlobalModel): void; | 
|     mergeOption(newSeriesOption: Opt, ecModel: GlobalModel): void; | 
|     fillDataTextStyle(data: ArrayLike<any>): void; | 
|     /** | 
|      * Init a data structure from data related option in series | 
|      * Must be overridden. | 
|      */ | 
|     getInitialData(option: Opt, ecModel: GlobalModel): SeriesData; | 
|     /** | 
|      * Append data to list | 
|      */ | 
|     appendData(params: { | 
|         data: ArrayLike<any>; | 
|     }): void; | 
|     /** | 
|      * Consider some method like `filter`, `map` need make new data, | 
|      * We should make sure that `seriesModel.getData()` get correct | 
|      * data in the stream procedure. So we fetch data from upstream | 
|      * each time `task.perform` called. | 
|      */ | 
|     getData(dataType?: SeriesDataType): SeriesData<this>; | 
|     getAllData(): ({ | 
|         data: SeriesData; | 
|         type?: SeriesDataType; | 
|     })[]; | 
|     setData(data: SeriesData): void; | 
|     getEncode(): HashMap<OptionEncodeValue, string>; | 
|     getSourceManager(): SourceManager; | 
|     getSource(): Source; | 
|     /** | 
|      * Get data before processed | 
|      */ | 
|     getRawData(): SeriesData; | 
|     getColorBy(): ColorBy; | 
|     isColorBySeries(): boolean; | 
|     /** | 
|      * Get base axis if has coordinate system and has axis. | 
|      * By default use coordSys.getBaseAxis(); | 
|      * Can be overridden for some chart. | 
|      * @return {type} description | 
|      */ | 
|     getBaseAxis(): Axis; | 
|     /** | 
|      * Default tooltip formatter | 
|      * | 
|      * @param dataIndex | 
|      * @param multipleSeries | 
|      * @param dataType | 
|      * @param renderMode valid values: 'html'(by default) and 'richText'. | 
|      *        'html' is used for rendering tooltip in extra DOM form, and the result | 
|      *        string is used as DOM HTML content. | 
|      *        'richText' is used for rendering tooltip in rich text form, for those where | 
|      *        DOM operation is not supported. | 
|      * @return formatted tooltip with `html` and `markers` | 
|      *        Notice: The override method can also return string | 
|      */ | 
|     formatTooltip(dataIndex: number, multipleSeries?: boolean, dataType?: SeriesDataType): ReturnType<DataFormatMixin['formatTooltip']>; | 
|     isAnimationEnabled(): boolean; | 
|     restoreData(): void; | 
|     getColorFromPalette(name: string, scope: any, requestColorNum?: number): ZRColor; | 
|     /** | 
|      * Use `data.mapDimensionsAll(coordDim)` instead. | 
|      * @deprecated | 
|      */ | 
|     coordDimToDataDim(coordDim: DimensionName): DimensionName[]; | 
|     /** | 
|      * Get progressive rendering count each step | 
|      */ | 
|     getProgressive(): number | false; | 
|     /** | 
|      * Get progressive rendering count each step | 
|      */ | 
|     getProgressiveThreshold(): number; | 
|     select(innerDataIndices: number[], dataType?: SeriesDataType): void; | 
|     unselect(innerDataIndices: number[], dataType?: SeriesDataType): void; | 
|     toggleSelect(innerDataIndices: number[], dataType?: SeriesDataType): void; | 
|     getSelectedDataIndices(): number[]; | 
|     isSelected(dataIndex: number, dataType?: SeriesDataType): boolean; | 
|     isUniversalTransitionEnabled(): boolean; | 
|     private _innerSelect; | 
|     private _initSelectedMapFromData; | 
|     static registerClass(clz: Constructor): Constructor; | 
| } | 
| interface SeriesModel<Opt extends SeriesOption = SeriesOption> extends DataFormatMixin, PaletteMixin<Opt>, DataHost { | 
|     /** | 
|      * Get dimension to render shadow in dataZoom component | 
|      */ | 
|     getShadowDim?(): string; | 
| } | 
|   | 
| /** | 
|  * Multi dimensional data store | 
|  */ | 
| declare const dataCtors: { | 
|     readonly float: ArrayConstructor | Float64ArrayConstructor; | 
|     readonly int: ArrayConstructor | Int32ArrayConstructor; | 
|     readonly ordinal: ArrayConstructor; | 
|     readonly number: ArrayConstructor; | 
|     readonly time: ArrayConstructor | Float64ArrayConstructor; | 
| }; | 
| declare type DataStoreDimensionType = keyof typeof dataCtors; | 
| declare type EachCb = (...args: any) => void; | 
| declare type FilterCb = (...args: any) => boolean; | 
| declare type MapCb = (...args: any) => ParsedValue | ParsedValue[]; | 
| declare type DimValueGetter = (this: DataStore, dataItem: any, property: string, dataIndex: number, dimIndex: DimensionIndex) => ParsedValue; | 
| interface DataStoreDimensionDefine { | 
|     /** | 
|      * Default to be float. | 
|      */ | 
|     type?: DataStoreDimensionType; | 
|     /** | 
|      * Only used in SOURCE_FORMAT_OBJECT_ROWS and SOURCE_FORMAT_KEYED_COLUMNS to retrieve value | 
|      * by "object property". | 
|      * For example, in `[{bb: 124, aa: 543}, ...]`, "aa" and "bb" is "object property". | 
|      * | 
|      * Deliberately name it as "property" rather than "name" to prevent it from been used in | 
|      * SOURCE_FORMAT_ARRAY_ROWS, because if it comes from series, it probably | 
|      * can not be shared by different series. | 
|      */ | 
|     property?: string; | 
|     /** | 
|      * When using category axis. | 
|      * Category strings will be collected and stored in ordinalMeta.categories. | 
|      * And store will store the index of categories. | 
|      */ | 
|     ordinalMeta?: OrdinalMeta; | 
|     /** | 
|      * Offset for ordinal parsing and collect | 
|      */ | 
|     ordinalOffset?: number; | 
| } | 
| /** | 
|  * Basically, DataStore API keep immutable. | 
|  */ | 
| declare class DataStore { | 
|     private _chunks; | 
|     private _provider; | 
|     private _rawExtent; | 
|     private _extent; | 
|     private _indices; | 
|     private _count; | 
|     private _rawCount; | 
|     private _dimensions; | 
|     private _dimValueGetter; | 
|     private _calcDimNameToIdx; | 
|     defaultDimValueGetter: DimValueGetter; | 
|     /** | 
|      * Initialize from data | 
|      */ | 
|     initData(provider: DataProvider, inputDimensions: DataStoreDimensionDefine[], dimValueGetter?: DimValueGetter): void; | 
|     getProvider(): DataProvider; | 
|     /** | 
|      * Caution: even when a `source` instance owned by a series, the created data store | 
|      * may still be shared by different sereis (the source hash does not use all `source` | 
|      * props, see `sourceManager`). In this case, the `source` props that are not used in | 
|      * hash (like `source.dimensionDefine`) probably only belongs to a certain series and | 
|      * thus should not be fetch here. | 
|      */ | 
|     getSource(): Source; | 
|     /** | 
|      * @caution Only used in dataStack. | 
|      */ | 
|     ensureCalculationDimension(dimName: DimensionName, type: DataStoreDimensionType): DimensionIndex; | 
|     collectOrdinalMeta(dimIdx: number, ordinalMeta: OrdinalMeta): void; | 
|     getOrdinalMeta(dimIdx: number): OrdinalMeta; | 
|     getDimensionProperty(dimIndex: DimensionIndex): DataStoreDimensionDefine['property']; | 
|     /** | 
|      * Caution: Can be only called on raw data (before `this._indices` created). | 
|      */ | 
|     appendData(data: ArrayLike<any>): number[]; | 
|     appendValues(values: any[][], minFillLen?: number): { | 
|         start: number; | 
|         end: number; | 
|     }; | 
|     private _initDataFromProvider; | 
|     count(): number; | 
|     /** | 
|      * Get value. Return NaN if idx is out of range. | 
|      */ | 
|     get(dim: DimensionIndex, idx: number): ParsedValue; | 
|     getValues(idx: number): ParsedValue[]; | 
|     getValues(dimensions: readonly DimensionIndex[], idx?: number): ParsedValue[]; | 
|     /** | 
|      * @param dim concrete dim | 
|      */ | 
|     getByRawIndex(dim: DimensionIndex, rawIdx: number): ParsedValue; | 
|     /** | 
|      * Get sum of data in one dimension | 
|      */ | 
|     getSum(dim: DimensionIndex): number; | 
|     /** | 
|      * Get median of data in one dimension | 
|      */ | 
|     getMedian(dim: DimensionIndex): number; | 
|     /** | 
|      * Retrieve the index with given raw data index. | 
|      */ | 
|     indexOfRawIndex(rawIndex: number): number; | 
|     /** | 
|      * Retrieve the index of nearest value. | 
|      * @param dim | 
|      * @param value | 
|      * @param [maxDistance=Infinity] | 
|      * @return If and only if multiple indices have | 
|      *         the same value, they are put to the result. | 
|      */ | 
|     indicesOfNearest(dim: DimensionIndex, value: number, maxDistance?: number): number[]; | 
|     getIndices(): ArrayLike<number>; | 
|     /** | 
|      * Data filter. | 
|      */ | 
|     filter(dims: DimensionIndex[], cb: FilterCb): DataStore; | 
|     /** | 
|      * Select data in range. (For optimization of filter) | 
|      * (Manually inline code, support 5 million data filtering in data zoom.) | 
|      */ | 
|     selectRange(range: { | 
|         [dimIdx: number]: [number, number]; | 
|     }): DataStore; | 
|     /** | 
|      * Data mapping to a new List with given dimensions | 
|      */ | 
|     map(dims: DimensionIndex[], cb: MapCb): DataStore; | 
|     /** | 
|      * @caution Danger!! Only used in dataStack. | 
|      */ | 
|     modify(dims: DimensionIndex[], cb: MapCb): void; | 
|     private _updateDims; | 
|     /** | 
|      * Large data down sampling using largest-triangle-three-buckets | 
|      * @param {string} valueDimension | 
|      * @param {number} targetCount | 
|      */ | 
|     lttbDownSample(valueDimension: DimensionIndex, rate: number): DataStore; | 
|     /** | 
|      * Large data down sampling using min-max | 
|      * @param {string} valueDimension | 
|      * @param {number} rate | 
|      */ | 
|     minmaxDownSample(valueDimension: DimensionIndex, rate: number): DataStore; | 
|     /** | 
|      * Large data down sampling on given dimension | 
|      * @param sampleIndex Sample index for name and id | 
|      */ | 
|     downSample(dimension: DimensionIndex, rate: number, sampleValue: (frameValues: ArrayLike<ParsedValue>) => ParsedValueNumeric, sampleIndex: (frameValues: ArrayLike<ParsedValue>, value: ParsedValueNumeric) => number): DataStore; | 
|     /** | 
|      * Data iteration | 
|      * @param ctx default this | 
|      * @example | 
|      *  list.each('x', function (x, idx) {}); | 
|      *  list.each(['x', 'y'], function (x, y, idx) {}); | 
|      *  list.each(function (idx) {}) | 
|      */ | 
|     each(dims: DimensionIndex[], cb: EachCb): void; | 
|     /** | 
|      * Get extent of data in one dimension | 
|      */ | 
|     getDataExtent(dim: DimensionIndex): [number, number]; | 
|     /** | 
|      * Get raw data index. | 
|      * Do not initialize. | 
|      * Default `getRawIndex`. And it can be changed. | 
|      */ | 
|     getRawIndex: (idx: number) => number; | 
|     /** | 
|      * Get raw data item | 
|      */ | 
|     getRawDataItem(idx: number): OptionDataItem; | 
|     /** | 
|      * Clone shallow. | 
|      * | 
|      * @param clonedDims Determine which dims to clone. Will share the data if not specified. | 
|      */ | 
|     clone(clonedDims?: DimensionIndex[], ignoreIndices?: boolean): DataStore; | 
|     private _copyCommonProps; | 
|     private _cloneIndices; | 
|     private _getRawIdxIdentity; | 
|     private _getRawIdx; | 
|     private _updateGetRawIdx; | 
|     private static internalField; | 
| } | 
|   | 
| declare class SeriesDimensionDefine { | 
|     /** | 
|      * Dimension type. The enumerable values are the key of | 
|      * Optional. | 
|      */ | 
|     type?: DimensionType; | 
|     /** | 
|      * Dimension name. | 
|      * Mandatory. | 
|      */ | 
|     name: string; | 
|     /** | 
|      * The origin name in dimsDef, see source helper. | 
|      * If displayName given, the tooltip will displayed vertically. | 
|      * Optional. | 
|      */ | 
|     displayName?: string; | 
|     tooltip?: boolean; | 
|     /** | 
|      * This dimension maps to the the dimension in dataStore by `storeDimIndex`. | 
|      * Notice the facts: | 
|      * 1. When there are too many dimensions in data store, seriesData only save the | 
|      * used store dimensions. | 
|      * 2. We use dimensionIndex but not name to reference store dimension | 
|      * becuause the dataset dimension definition might has no name specified by users, | 
|      * or names in sereis dimension definition might be different from dataset. | 
|      */ | 
|     storeDimIndex?: number; | 
|     /** | 
|      * Which coordSys dimension this dimension mapped to. | 
|      * A `coordDim` can be a "coordSysDim" that the coordSys required | 
|      * (for example, an item in `coordSysDims` of `model/referHelper#CoordSysInfo`), | 
|      * or an generated "extra coord name" if does not mapped to any "coordSysDim" | 
|      * (That is determined by whether `isExtraCoord` is `true`). | 
|      * Mandatory. | 
|      */ | 
|     coordDim?: string; | 
|     /** | 
|      * The index of this dimension in `series.encode[coordDim]`. | 
|      * Mandatory. | 
|      */ | 
|     coordDimIndex?: number; | 
|     /** | 
|      * The format of `otherDims` is: | 
|      * ```js | 
|      * { | 
|      *     tooltip?: number | 
|      *     label?: number | 
|      *     itemName?: number | 
|      *     seriesName?: number | 
|      * } | 
|      * ``` | 
|      * | 
|      * A `series.encode` can specified these fields: | 
|      * ```js | 
|      * encode: { | 
|      *     // "3, 1, 5" is the index of data dimension. | 
|      *     tooltip: [3, 1, 5], | 
|      *     label: [0, 3], | 
|      *     ... | 
|      * } | 
|      * ``` | 
|      * `otherDims` is the parse result of the `series.encode` above, like: | 
|      * ```js | 
|      * // Suppose the index of this data dimension is `3`. | 
|      * this.otherDims = { | 
|      *     // `3` is at the index `0` of the `encode.tooltip` | 
|      *     tooltip: 0, | 
|      *     // `3` is at the index `1` of the `encode.label` | 
|      *     label: 1 | 
|      * }; | 
|      * ``` | 
|      * | 
|      * This prop should never be `null`/`undefined` after initialized. | 
|      */ | 
|     otherDims?: DataVisualDimensions; | 
|     /** | 
|      * Be `true` if this dimension is not mapped to any "coordSysDim" that the | 
|      * "coordSys" required. | 
|      * Mandatory. | 
|      */ | 
|     isExtraCoord?: boolean; | 
|     /** | 
|      * If this dimension if for calculated value like stacking | 
|      */ | 
|     isCalculationCoord?: boolean; | 
|     defaultTooltip?: boolean; | 
|     ordinalMeta?: OrdinalMeta; | 
|     /** | 
|      * Whether to create inverted indices. | 
|      */ | 
|     createInvertedIndices?: boolean; | 
|     /** | 
|      * @param opt All of the fields will be shallow copied. | 
|      */ | 
|     constructor(opt?: object | SeriesDimensionDefine); | 
| } | 
|   | 
| /** | 
|  * Represents the dimension requirement of a series. | 
|  * | 
|  * NOTICE: | 
|  * When there are too many dimensions in dataset and many series, only the used dimensions | 
|  * (i.e., used by coord sys and declared in `series.encode`) are add to `dimensionDefineList`. | 
|  * But users may query data by other unused dimension names. | 
|  * In this case, users can only query data if and only if they have defined dimension names | 
|  * via ec option, so we provide `getDimensionIndexFromSource`, which only query them from | 
|  * `source` dimensions. | 
|  */ | 
| declare class SeriesDataSchema { | 
|     /** | 
|      * When there are too many dimensions, `dimensionDefineList` might only contain | 
|      * used dimensions. | 
|      * | 
|      * CAUTION: | 
|      * Should have been sorted by `storeDimIndex` asc. | 
|      * | 
|      * PENDING: | 
|      * The item can still be modified outsite. | 
|      * But MUST NOT add/remove item of this array. | 
|      */ | 
|     readonly dimensions: SeriesDimensionDefine[]; | 
|     readonly source: Source; | 
|     private _fullDimCount; | 
|     private _dimNameMap; | 
|     private _dimOmitted; | 
|     constructor(opt: { | 
|         source: Source; | 
|         dimensions: SeriesDimensionDefine[]; | 
|         fullDimensionCount: number; | 
|         dimensionOmitted: boolean; | 
|     }); | 
|     isDimensionOmitted(): boolean; | 
|     private _updateDimOmitted; | 
|     /** | 
|      * @caution Can only be used when `dimensionOmitted: true`. | 
|      * | 
|      * Get index by user defined dimension name (i.e., not internal generate name). | 
|      * That is, get index from `dimensionsDefine`. | 
|      * If no `dimensionsDefine`, or no name get, return -1. | 
|      */ | 
|     getSourceDimensionIndex(dimName: DimensionName): DimensionIndex; | 
|     /** | 
|      * @caution Can only be used when `dimensionOmitted: true`. | 
|      * | 
|      * Notice: may return `null`/`undefined` if user not specify dimension names. | 
|      */ | 
|     getSourceDimension(dimIndex: DimensionIndex): DimensionDefinition; | 
|     makeStoreSchema(): { | 
|         dimensions: DataStoreDimensionDefine[]; | 
|         hash: string; | 
|     }; | 
|     makeOutputDimensionNames(): DimensionName[]; | 
|     appendCalculationDimension(dimDef: SeriesDimensionDefine): void; | 
| } | 
|   | 
| /** | 
|  * [REQUIREMENT_MEMO]: | 
|  * (0) `metaRawOption` means `dimensions`/`sourceHeader`/`seriesLayoutBy` in raw option. | 
|  * (1) Keep support the feature: `metaRawOption` can be specified both on `series` and | 
|  * `root-dataset`. Them on `series` has higher priority. | 
|  * (2) Do not support to set `metaRawOption` on a `non-root-dataset`, because it might | 
|  * confuse users: whether those props indicate how to visit the upstream source or visit | 
|  * the transform result source, and some transforms has nothing to do with these props, | 
|  * and some transforms might have multiple upstream. | 
|  * (3) Transforms should specify `metaRawOption` in each output, just like they can be | 
|  * declared in `root-dataset`. | 
|  * (4) At present only support visit source in `SERIES_LAYOUT_BY_COLUMN` in transforms. | 
|  * That is for reducing complexity in transforms. | 
|  * PENDING: Whether to provide transposition transform? | 
|  * | 
|  * [IMPLEMENTAION_MEMO]: | 
|  * "sourceVisitConfig" are calculated from `metaRawOption` and `data`. | 
|  * They will not be calculated until `source` is about to be visited (to prevent from | 
|  * duplicate calcuation). `source` is visited only in series and input to transforms. | 
|  * | 
|  * [DIMENSION_INHERIT_RULE]: | 
|  * By default the dimensions are inherited from ancestors, unless a transform return | 
|  * a new dimensions definition. | 
|  * Consider the case: | 
|  * ```js | 
|  * dataset: [{ | 
|  *     source: [ ['Product', 'Sales', 'Prise'], ['Cookies', 321, 44.21], ...] | 
|  * }, { | 
|  *     transform: { type: 'filter', ... } | 
|  * }] | 
|  * dataset: [{ | 
|  *     dimension: ['Product', 'Sales', 'Prise'], | 
|  *     source: [ ['Cookies', 321, 44.21], ...] | 
|  * }, { | 
|  *     transform: { type: 'filter', ... } | 
|  * }] | 
|  * ``` | 
|  * The two types of option should have the same behavior after transform. | 
|  * | 
|  * | 
|  * [SCENARIO]: | 
|  * (1) Provide source data directly: | 
|  * ```js | 
|  * series: { | 
|  *     encode: {...}, | 
|  *     dimensions: [...] | 
|  *     seriesLayoutBy: 'row', | 
|  *     data: [[...]] | 
|  * } | 
|  * ``` | 
|  * (2) Series refer to dataset. | 
|  * ```js | 
|  * series: [{ | 
|  *     encode: {...} | 
|  *     // Ignore datasetIndex means `datasetIndex: 0` | 
|  *     // and the dimensions defination in dataset is used | 
|  * }, { | 
|  *     encode: {...}, | 
|  *     seriesLayoutBy: 'column', | 
|  *     datasetIndex: 1 | 
|  * }] | 
|  * ``` | 
|  * (3) dataset transform | 
|  * ```js | 
|  * dataset: [{ | 
|  *     source: [...] | 
|  * }, { | 
|  *     source: [...] | 
|  * }, { | 
|  *     // By default from 0. | 
|  *     transform: { type: 'filter', config: {...} } | 
|  * }, { | 
|  *     // Piped. | 
|  *     transform: [ | 
|  *         { type: 'filter', config: {...} }, | 
|  *         { type: 'sort', config: {...} } | 
|  *     ] | 
|  * }, { | 
|  *     id: 'regressionData', | 
|  *     fromDatasetIndex: 1, | 
|  *     // Third-party transform | 
|  *     transform: { type: 'ecStat:regression', config: {...} } | 
|  * }, { | 
|  *     // retrieve the extra result. | 
|  *     id: 'regressionFormula', | 
|  *     fromDatasetId: 'regressionData', | 
|  *     fromTransformResult: 1 | 
|  * }] | 
|  * ``` | 
|  */ | 
| declare class SourceManager { | 
|     private _sourceHost; | 
|     private _sourceList; | 
|     private _storeList; | 
|     private _upstreamSignList; | 
|     private _versionSignBase; | 
|     private _dirty; | 
|     constructor(sourceHost: DatasetModel | SeriesModel); | 
|     /** | 
|      * Mark dirty. | 
|      */ | 
|     dirty(): void; | 
|     private _setLocalSource; | 
|     /** | 
|      * For detecting whether the upstream source is dirty, so that | 
|      * the local cached source (in `_sourceList`) should be discarded. | 
|      */ | 
|     private _getVersionSign; | 
|     /** | 
|      * Always return a source instance. Otherwise throw error. | 
|      */ | 
|     prepareSource(): void; | 
|     private _createSource; | 
|     private _applyTransform; | 
|     private _isDirty; | 
|     /** | 
|      * @param sourceIndex By default 0, means "main source". | 
|      *                    In most cases there is only one source. | 
|      */ | 
|     getSource(sourceIndex?: number): Source; | 
|     /** | 
|      * | 
|      * Get a data store which can be shared across series. | 
|      * Only available for series. | 
|      * | 
|      * @param seriesDimRequest Dimensions that are generated in series. | 
|      *        Should have been sorted by `storeDimIndex` asc. | 
|      */ | 
|     getSharedDataStore(seriesDimRequest: SeriesDataSchema): DataStore; | 
|     private _innerGetDataStore; | 
|     /** | 
|      * PENDING: Is it fast enough? | 
|      * If no upstream, return empty array. | 
|      */ | 
|     private _getUpstreamSourceManagers; | 
|     private _getSourceMetaRawOption; | 
| } | 
|   | 
| /** | 
|  * This module is imported by echarts directly. | 
|  * | 
|  * Notice: | 
|  * Always keep this file exists for backward compatibility. | 
|  * Because before 4.1.0, dataset is an optional component, | 
|  * some users may import this module manually. | 
|  */ | 
|   | 
| interface DatasetOption extends Pick<ComponentOption, 'type' | 'id' | 'name'>, Pick<SeriesEncodeOptionMixin, 'dimensions'> { | 
|     mainType?: 'dataset'; | 
|     seriesLayoutBy?: SeriesLayoutBy; | 
|     sourceHeader?: OptionSourceHeader; | 
|     source?: OptionSourceData; | 
|     fromDatasetIndex?: number; | 
|     fromDatasetId?: string; | 
|     transform?: DataTransformOption | PipedDataTransformOption; | 
|     fromTransformResult?: number; | 
| } | 
| declare class DatasetModel<Opts extends DatasetOption = DatasetOption> extends ComponentModel<Opts> { | 
|     type: string; | 
|     static type: string; | 
|     static defaultOption: DatasetOption; | 
|     private _sourceManager; | 
|     init(option: Opts, parentModel: Model, ecModel: GlobalModel): void; | 
|     mergeOption(newOption: Opts, ecModel: GlobalModel): void; | 
|     optionUpdated(): void; | 
|     getSourceManager(): SourceManager; | 
| } | 
|   | 
| /** | 
|  * [sourceFormat] | 
|  * | 
|  * + "original": | 
|  * This format is only used in series.data, where | 
|  * itemStyle can be specified in data item. | 
|  * | 
|  * + "arrayRows": | 
|  * [ | 
|  *     ['product', 'score', 'amount'], | 
|  *     ['Matcha Latte', 89.3, 95.8], | 
|  *     ['Milk Tea', 92.1, 89.4], | 
|  *     ['Cheese Cocoa', 94.4, 91.2], | 
|  *     ['Walnut Brownie', 85.4, 76.9] | 
|  * ] | 
|  * | 
|  * + "objectRows": | 
|  * [ | 
|  *     {product: 'Matcha Latte', score: 89.3, amount: 95.8}, | 
|  *     {product: 'Milk Tea', score: 92.1, amount: 89.4}, | 
|  *     {product: 'Cheese Cocoa', score: 94.4, amount: 91.2}, | 
|  *     {product: 'Walnut Brownie', score: 85.4, amount: 76.9} | 
|  * ] | 
|  * | 
|  * + "keyedColumns": | 
|  * { | 
|  *     'product': ['Matcha Latte', 'Milk Tea', 'Cheese Cocoa', 'Walnut Brownie'], | 
|  *     'count': [823, 235, 1042, 988], | 
|  *     'score': [95.8, 81.4, 91.2, 76.9] | 
|  * } | 
|  * | 
|  * + "typedArray" | 
|  * | 
|  * + "unknown" | 
|  */ | 
| interface SourceMetaRawOption { | 
|     seriesLayoutBy: SeriesLayoutBy; | 
|     sourceHeader: OptionSourceHeader; | 
|     dimensions: DimensionDefinitionLoose[]; | 
| } | 
| interface Source extends SourceImpl { | 
| } | 
| declare class SourceImpl { | 
|     /** | 
|      * Not null/undefined. | 
|      */ | 
|     readonly data: OptionSourceData; | 
|     /** | 
|      * See also "detectSourceFormat". | 
|      * Not null/undefined. | 
|      */ | 
|     readonly sourceFormat: SourceFormat; | 
|     /** | 
|      * 'row' or 'column' | 
|      * Not null/undefined. | 
|      */ | 
|     readonly seriesLayoutBy: SeriesLayoutBy; | 
|     /** | 
|      * dimensions definition from: | 
|      * (1) standalone defined in option prop `dimensions: [...]` | 
|      * (2) detected from option data. See `determineSourceDimensions`. | 
|      * If can not be detected (e.g., there is only pure data `[[11, 33], ...]` | 
|      * `dimensionsDefine` will be null/undefined. | 
|      */ | 
|     readonly dimensionsDefine: DimensionDefinition[]; | 
|     /** | 
|      * Only make sense in `SOURCE_FORMAT_ARRAY_ROWS`. | 
|      * That is the same as `sourceHeader: number`, | 
|      * which means from which line the real data start. | 
|      * Not null/undefined, uint. | 
|      */ | 
|     readonly startIndex: number; | 
|     /** | 
|      * Dimension count detected from data. Only works when `dimensionDefine` | 
|      * does not exists. | 
|      * Can be null/undefined (when unknown), uint. | 
|      */ | 
|     readonly dimensionsDetectedCount: number; | 
|     /** | 
|      * Raw props from user option. | 
|      */ | 
|     readonly metaRawOption: SourceMetaRawOption; | 
|     constructor(fields: { | 
|         data: OptionSourceData; | 
|         sourceFormat: SourceFormat; | 
|         seriesLayoutBy?: SeriesLayoutBy; | 
|         dimensionsDefine?: DimensionDefinition[]; | 
|         startIndex?: number; | 
|         dimensionsDetectedCount?: number; | 
|         metaRawOption?: SourceMetaRawOption; | 
|         encodeDefine?: HashMap<OptionEncodeValue, DimensionName>; | 
|     }); | 
| } | 
|   | 
| interface DataProvider { | 
|     /** | 
|      * true: all of the value are in primitive type (in type `OptionDataValue`). | 
|      * false: Not sure whether any of them is non primitive type (in type `OptionDataItemObject`). | 
|      *     Like `data: [ { value: xx, itemStyle: {...} }, ...]` | 
|      *     At present it only happen in `SOURCE_FORMAT_ORIGINAL`. | 
|      */ | 
|     pure?: boolean; | 
|     /** | 
|      * If data is persistent and will not be released after use. | 
|      */ | 
|     persistent?: boolean; | 
|     getSource(): Source; | 
|     count(): number; | 
|     getItem(idx: number, out?: OptionDataItem): OptionDataItem; | 
|     fillStorage?(start: number, end: number, out: ArrayLike$1<ParsedValue>[], extent: number[][]): void; | 
|     appendData?(newData: ArrayLike$1<OptionDataItem>): void; | 
|     clean?(): void; | 
| } | 
|   | 
| declare type DimensionSummaryEncode = { | 
|     defaultedLabel: DimensionName[]; | 
|     defaultedTooltip: DimensionName[]; | 
|     [coordOrVisualDimName: string]: DimensionName[]; | 
| }; | 
| declare type DimensionSummary = { | 
|     encode: DimensionSummaryEncode; | 
|     userOutput: DimensionUserOuput; | 
|     dataDimsOnCoord: DimensionName[]; | 
|     dataDimIndicesOnCoord: DimensionIndex[]; | 
|     encodeFirstDimNotExtra: { | 
|         [coordDim: string]: DimensionName; | 
|     }; | 
| }; | 
| declare type DimensionUserOuputEncode = { | 
|     [coordOrVisualDimName: string]: DimensionIndex[]; | 
| }; | 
| declare class DimensionUserOuput { | 
|     private _encode; | 
|     private _cachedDimNames; | 
|     private _schema?; | 
|     constructor(encode: DimensionUserOuputEncode, dimRequest?: SeriesDataSchema); | 
|     get(): { | 
|         fullDimensions: DimensionName[]; | 
|         encode: DimensionUserOuputEncode; | 
|     }; | 
|     /** | 
|      * Get all data store dimension names. | 
|      * Theoretically a series data store is defined both by series and used dataset (if any). | 
|      * If some dimensions are omitted for performance reason in `this.dimensions`, | 
|      * the dimension name may not be auto-generated if user does not specify a dimension name. | 
|      * In this case, the dimension name is `null`/`undefined`. | 
|      */ | 
|     private _getFullDimensionNames; | 
| } | 
|   | 
| declare class Graph { | 
|     type: 'graph'; | 
|     readonly nodes: GraphNode[]; | 
|     readonly edges: GraphEdge[]; | 
|     data: SeriesData; | 
|     edgeData: SeriesData; | 
|     /** | 
|      * Whether directed graph. | 
|      */ | 
|     private _directed; | 
|     private _nodesMap; | 
|     /** | 
|      * @type {Object.<string, module:echarts/data/Graph.Edge>} | 
|      * @private | 
|      */ | 
|     private _edgesMap; | 
|     constructor(directed?: boolean); | 
|     /** | 
|      * If is directed graph | 
|      */ | 
|     isDirected(): boolean; | 
|     /** | 
|      * Add a new node | 
|      */ | 
|     addNode(id: string | number, dataIndex?: number): GraphNode; | 
|     /** | 
|      * Get node by data index | 
|      */ | 
|     getNodeByIndex(dataIndex: number): GraphNode; | 
|     /** | 
|      * Get node by id | 
|      */ | 
|     getNodeById(id: string): GraphNode; | 
|     /** | 
|      * Add a new edge | 
|      */ | 
|     addEdge(n1: GraphNode | number | string, n2: GraphNode | number | string, dataIndex?: number): GraphEdge; | 
|     /** | 
|      * Get edge by data index | 
|      */ | 
|     getEdgeByIndex(dataIndex: number): GraphEdge; | 
|     /** | 
|      * Get edge by two linked nodes | 
|      */ | 
|     getEdge(n1: string | GraphNode, n2: string | GraphNode): GraphEdge; | 
|     /** | 
|      * Iterate all nodes | 
|      */ | 
|     eachNode<Ctx>(cb: (this: Ctx, node: GraphNode, idx: number) => void, context?: Ctx): void; | 
|     /** | 
|      * Iterate all edges | 
|      */ | 
|     eachEdge<Ctx>(cb: (this: Ctx, edge: GraphEdge, idx: number) => void, context?: Ctx): void; | 
|     /** | 
|      * Breadth first traverse | 
|      * Return true to stop traversing | 
|      */ | 
|     breadthFirstTraverse<Ctx>(cb: (this: Ctx, node: GraphNode, fromNode: GraphNode) => boolean | void, startNode: GraphNode | string, direction: 'none' | 'in' | 'out', context?: Ctx): void; | 
|     update(): void; | 
|     /** | 
|      * @return {module:echarts/data/Graph} | 
|      */ | 
|     clone(): Graph; | 
| } | 
| interface GraphDataProxyMixin { | 
|     getValue(dimension?: DimensionLoose): ParsedValue; | 
|     setVisual(key: string | Dictionary<any>, value?: any): void; | 
|     getVisual(key: string): any; | 
|     setLayout(layout: any, merge?: boolean): void; | 
|     getLayout(): any; | 
|     getGraphicEl(): Element; | 
|     getRawIndex(): number; | 
| } | 
| declare class GraphEdge { | 
|     /** | 
|      * The first node. If directed graph, it represents the source node. | 
|      */ | 
|     node1: GraphNode; | 
|     /** | 
|      * The second node. If directed graph, it represents the target node. | 
|      */ | 
|     node2: GraphNode; | 
|     dataIndex: number; | 
|     hostGraph: Graph; | 
|     constructor(n1: GraphNode, n2: GraphNode, dataIndex?: number); | 
|     getModel<T = unknown>(): Model<T>; | 
|     getModel<T = unknown, S extends keyof T = keyof T>(path: S): Model<T[S]>; | 
|     getAdjacentDataIndices(): { | 
|         node: number[]; | 
|         edge: number[]; | 
|     }; | 
|     getTrajectoryDataIndices(): { | 
|         node: number[]; | 
|         edge: number[]; | 
|     }; | 
| } | 
| interface GraphEdge extends GraphDataProxyMixin { | 
| } | 
| declare class GraphNode { | 
|     id: string; | 
|     inEdges: GraphEdge[]; | 
|     outEdges: GraphEdge[]; | 
|     edges: GraphEdge[]; | 
|     hostGraph: Graph; | 
|     dataIndex: number; | 
|     __visited: boolean; | 
|     constructor(id?: string, dataIndex?: number); | 
|     /** | 
|      * @return {number} | 
|      */ | 
|     degree(): number; | 
|     /** | 
|      * @return {number} | 
|      */ | 
|     inDegree(): number; | 
|     /** | 
|     * @return {number} | 
|     */ | 
|     outDegree(): number; | 
|     getModel<T = unknown>(): Model<T>; | 
|     getModel<T = unknown, S extends keyof T = keyof T>(path: S): Model<T[S]>; | 
|     getAdjacentDataIndices(): { | 
|         node: number[]; | 
|         edge: number[]; | 
|     }; | 
|     getTrajectoryDataIndices(): { | 
|         node: number[]; | 
|         edge: number[]; | 
|     }; | 
| } | 
| interface GraphNode extends GraphDataProxyMixin { | 
| } | 
|   | 
| declare type TreeTraverseOrder = 'preorder' | 'postorder'; | 
| declare type TreeTraverseCallback<Ctx> = (this: Ctx, node: TreeNode) => boolean | void; | 
| declare type TreeTraverseOption = { | 
|     order?: TreeTraverseOrder; | 
|     attr?: 'children' | 'viewChildren'; | 
| }; | 
| interface TreeNodeOption extends Pick<OptionDataItemObject<OptionDataValue>, 'name' | 'value'> { | 
|     children?: TreeNodeOption[]; | 
| } | 
| declare class TreeNode { | 
|     name: string; | 
|     depth: number; | 
|     height: number; | 
|     parentNode: TreeNode; | 
|     /** | 
|      * Reference to list item. | 
|      * Do not persistent dataIndex outside, | 
|      * besause it may be changed by list. | 
|      * If dataIndex -1, | 
|      * this node is logical deleted (filtered) in list. | 
|      */ | 
|     dataIndex: number; | 
|     children: TreeNode[]; | 
|     viewChildren: TreeNode[]; | 
|     isExpand: boolean; | 
|     readonly hostTree: Tree<Model>; | 
|     constructor(name: string, hostTree: Tree<Model>); | 
|     /** | 
|      * The node is removed. | 
|      */ | 
|     isRemoved(): boolean; | 
|     /** | 
|      * Travel this subtree (include this node). | 
|      * Usage: | 
|      *    node.eachNode(function () { ... }); // preorder | 
|      *    node.eachNode('preorder', function () { ... }); // preorder | 
|      *    node.eachNode('postorder', function () { ... }); // postorder | 
|      *    node.eachNode( | 
|      *        {order: 'postorder', attr: 'viewChildren'}, | 
|      *        function () { ... } | 
|      *    ); // postorder | 
|      * | 
|      * @param options If string, means order. | 
|      * @param options.order 'preorder' or 'postorder' | 
|      * @param options.attr 'children' or 'viewChildren' | 
|      * @param cb If in preorder and return false, | 
|      *                      its subtree will not be visited. | 
|      */ | 
|     eachNode<Ctx>(options: TreeTraverseOrder, cb: TreeTraverseCallback<Ctx>, context?: Ctx): void; | 
|     eachNode<Ctx>(options: TreeTraverseOption, cb: TreeTraverseCallback<Ctx>, context?: Ctx): void; | 
|     eachNode<Ctx>(cb: TreeTraverseCallback<Ctx>, context?: Ctx): void; | 
|     /** | 
|      * Update depth and height of this subtree. | 
|      */ | 
|     updateDepthAndHeight(depth: number): void; | 
|     getNodeById(id: string): TreeNode; | 
|     contains(node: TreeNode): boolean; | 
|     /** | 
|      * @param includeSelf Default false. | 
|      * @return order: [root, child, grandchild, ...] | 
|      */ | 
|     getAncestors(includeSelf?: boolean): TreeNode[]; | 
|     getAncestorsIndices(): number[]; | 
|     getDescendantIndices(): number[]; | 
|     getValue(dimension?: DimensionLoose): ParsedValue; | 
|     setLayout(layout: any, merge?: boolean): void; | 
|     /** | 
|      * @return {Object} layout | 
|      */ | 
|     getLayout(): any; | 
|     getModel<T = unknown>(): Model<T>; | 
|     getLevelModel(): Model; | 
|     /** | 
|      * @example | 
|      *  setItemVisual('color', color); | 
|      *  setItemVisual({ | 
|      *      'color': color | 
|      *  }); | 
|      */ | 
|     setVisual(key: string, value: any): void; | 
|     setVisual(obj: Dictionary<any>): void; | 
|     /** | 
|      * Get item visual | 
|      * FIXME: make return type better | 
|      */ | 
|     getVisual(key: string): unknown; | 
|     getRawIndex(): number; | 
|     getId(): string; | 
|     /** | 
|      * index in parent's children | 
|      */ | 
|     getChildIndex(): number; | 
|     /** | 
|      * if this is an ancestor of another node | 
|      * | 
|      * @param node another node | 
|      * @return if is ancestor | 
|      */ | 
|     isAncestorOf(node: TreeNode): boolean; | 
|     /** | 
|      * if this is an descendant of another node | 
|      * | 
|      * @param node another node | 
|      * @return if is descendant | 
|      */ | 
|     isDescendantOf(node: TreeNode): boolean; | 
| } | 
| declare class Tree<HostModel extends Model = Model, LevelOption = any> { | 
|     type: 'tree'; | 
|     root: TreeNode; | 
|     data: SeriesData; | 
|     hostModel: HostModel; | 
|     levelModels: Model<LevelOption>[]; | 
|     private _nodes; | 
|     constructor(hostModel: HostModel); | 
|     /** | 
|      * Travel this subtree (include this node). | 
|      * Usage: | 
|      *    node.eachNode(function () { ... }); // preorder | 
|      *    node.eachNode('preorder', function () { ... }); // preorder | 
|      *    node.eachNode('postorder', function () { ... }); // postorder | 
|      *    node.eachNode( | 
|      *        {order: 'postorder', attr: 'viewChildren'}, | 
|      *        function () { ... } | 
|      *    ); // postorder | 
|      * | 
|      * @param options If string, means order. | 
|      * @param options.order 'preorder' or 'postorder' | 
|      * @param options.attr 'children' or 'viewChildren' | 
|      * @param cb | 
|      * @param context | 
|      */ | 
|     eachNode<Ctx>(options: TreeTraverseOrder, cb: TreeTraverseCallback<Ctx>, context?: Ctx): void; | 
|     eachNode<Ctx>(options: TreeTraverseOption, cb: TreeTraverseCallback<Ctx>, context?: Ctx): void; | 
|     eachNode<Ctx>(cb: TreeTraverseCallback<Ctx>, context?: Ctx): void; | 
|     getNodeByDataIndex(dataIndex: number): TreeNode; | 
|     getNodeById(name: string): TreeNode; | 
|     /** | 
|      * Update item available by list, | 
|      * when list has been performed options like 'filterSelf' or 'map'. | 
|      */ | 
|     update(): void; | 
|     /** | 
|      * Clear all layouts | 
|      */ | 
|     clearLayouts(): void; | 
|     /** | 
|      * data node format: | 
|      * { | 
|      *     name: ... | 
|      *     value: ... | 
|      *     children: [ | 
|      *         { | 
|      *             name: ... | 
|      *             value: ... | 
|      *             children: ... | 
|      *         }, | 
|      *         ... | 
|      *     ] | 
|      * } | 
|      */ | 
|     static createTree<T extends TreeNodeOption, HostModel extends Model>(dataRoot: T, hostModel: HostModel, beforeLink?: (data: SeriesData) => void): Tree<HostModel, any>; | 
| } | 
|   | 
| declare type VisualOptionBase = { | 
|     [key in BuiltinVisualProperty]?: any; | 
| }; | 
| declare type LabelFormatter = (min: OptionDataValue, max?: OptionDataValue) => string; | 
| interface VisualMapOption<T extends VisualOptionBase = VisualOptionBase> extends ComponentOption, BoxLayoutOptionMixin, BorderOptionMixin { | 
|     mainType?: 'visualMap'; | 
|     show?: boolean; | 
|     align?: string; | 
|     realtime?: boolean; | 
|     /** | 
|      * 'all' or null/undefined: all series. | 
|      * A number or an array of number: the specified series. | 
|      * set min: 0, max: 200, only for campatible with ec2. | 
|      * In fact min max should not have default value. | 
|      */ | 
|     seriesIndex?: 'all' | number[] | number; | 
|     /** | 
|      * min value, must specified if pieces is not specified. | 
|      */ | 
|     min?: number; | 
|     /** | 
|      * max value, must specified if pieces is not specified. | 
|      */ | 
|     max?: number; | 
|     /** | 
|      * Dimension to be encoded | 
|      */ | 
|     dimension?: number; | 
|     /** | 
|      * Visual configuration for the data in selection | 
|      */ | 
|     inRange?: T; | 
|     /** | 
|      * Visual configuration for the out of selection | 
|      */ | 
|     outOfRange?: T; | 
|     controller?: { | 
|         inRange?: T; | 
|         outOfRange?: T; | 
|     }; | 
|     target?: { | 
|         inRange?: T; | 
|         outOfRange?: T; | 
|     }; | 
|     /** | 
|      * Width of the display item | 
|      */ | 
|     itemWidth?: number; | 
|     /** | 
|      * Height of the display item | 
|      */ | 
|     itemHeight?: number; | 
|     inverse?: boolean; | 
|     orient?: 'horizontal' | 'vertical'; | 
|     backgroundColor?: ZRColor; | 
|     contentColor?: ZRColor; | 
|     inactiveColor?: ZRColor; | 
|     /** | 
|      * Padding of the component. Can be an array similar to CSS | 
|      */ | 
|     padding?: number[] | number; | 
|     /** | 
|      * Gap between text and item | 
|      */ | 
|     textGap?: number; | 
|     precision?: number; | 
|     /** | 
|      * @deprecated | 
|      * Option from version 2 | 
|      */ | 
|     color?: ColorString[]; | 
|     formatter?: string | LabelFormatter; | 
|     /** | 
|      * Text on the both end. Such as ['High', 'Low'] | 
|      */ | 
|     text?: string[]; | 
|     textStyle?: LabelOption; | 
|     categories?: unknown; | 
| } | 
| interface VisualMeta { | 
|     stops: { | 
|         value: number; | 
|         color: ColorString; | 
|     }[]; | 
|     outerColors: ColorString[]; | 
|     dimension?: DimensionIndex; | 
| } | 
|   | 
| declare type ItrParamDims = DimensionLoose | Array<DimensionLoose>; | 
| declare type CtxOrList<Ctx> = unknown extends Ctx ? SeriesData : Ctx; | 
| declare type EachCb0<Ctx> = (this: CtxOrList<Ctx>, idx: number) => void; | 
| declare type EachCb1<Ctx> = (this: CtxOrList<Ctx>, x: ParsedValue, idx: number) => void; | 
| declare type EachCb2<Ctx> = (this: CtxOrList<Ctx>, x: ParsedValue, y: ParsedValue, idx: number) => void; | 
| declare type EachCb$1<Ctx> = (this: CtxOrList<Ctx>, ...args: any) => void; | 
| declare type FilterCb0<Ctx> = (this: CtxOrList<Ctx>, idx: number) => boolean; | 
| declare type FilterCb1<Ctx> = (this: CtxOrList<Ctx>, x: ParsedValue, idx: number) => boolean; | 
| declare type FilterCb2<Ctx> = (this: CtxOrList<Ctx>, x: ParsedValue, y: ParsedValue, idx: number) => boolean; | 
| declare type FilterCb$1<Ctx> = (this: CtxOrList<Ctx>, ...args: any) => boolean; | 
| declare type MapArrayCb0<Ctx> = (this: CtxOrList<Ctx>, idx: number) => any; | 
| declare type MapArrayCb1<Ctx> = (this: CtxOrList<Ctx>, x: ParsedValue, idx: number) => any; | 
| declare type MapArrayCb2<Ctx> = (this: CtxOrList<Ctx>, x: ParsedValue, y: ParsedValue, idx: number) => any; | 
| declare type MapArrayCb<Ctx> = (this: CtxOrList<Ctx>, ...args: any) => any; | 
| declare type MapCb1<Ctx> = (this: CtxOrList<Ctx>, x: ParsedValue, idx: number) => ParsedValue | ParsedValue[]; | 
| declare type MapCb2<Ctx> = (this: CtxOrList<Ctx>, x: ParsedValue, y: ParsedValue, idx: number) => ParsedValue | ParsedValue[]; | 
| declare type SeriesDimensionDefineLoose = string | object | SeriesDimensionDefine; | 
| declare type SeriesDimensionLoose = DimensionLoose; | 
| declare type SeriesDimensionName = DimensionName; | 
| interface DefaultDataVisual { | 
|     style: PathStyleProps; | 
|     drawType: 'fill' | 'stroke'; | 
|     symbol?: string; | 
|     symbolSize?: number | number[]; | 
|     symbolRotate?: number; | 
|     symbolKeepAspect?: boolean; | 
|     symbolOffset?: string | number | (string | number)[]; | 
|     liftZ?: number; | 
|     legendIcon?: string; | 
|     legendLineStyle?: LineStyleProps; | 
|     visualMeta?: VisualMeta[]; | 
|     colorFromPalette?: boolean; | 
|     decal?: DecalObject; | 
| } | 
| interface DataCalculationInfo<SERIES_MODEL> { | 
|     stackedDimension: DimensionName; | 
|     stackedByDimension: DimensionName; | 
|     isStackedByIndex: boolean; | 
|     stackedOverDimension: DimensionName; | 
|     stackResultDimension: DimensionName; | 
|     stackedOnSeries?: SERIES_MODEL; | 
| } | 
| declare class SeriesData<HostModel extends Model = Model, Visual extends DefaultDataVisual = DefaultDataVisual> { | 
|     readonly type = "list"; | 
|     /** | 
|      * Name of dimensions list of SeriesData. | 
|      * | 
|      * @caution Carefully use the index of this array. | 
|      * Because when DataStore is an extra high dimension(>30) dataset. We will only pick | 
|      * the used dimensions from DataStore to avoid performance issue. | 
|      */ | 
|     readonly dimensions: SeriesDimensionName[]; | 
|     private _dimInfos; | 
|     private _dimOmitted; | 
|     private _schema?; | 
|     /** | 
|      * @pending | 
|      * Actually we do not really need to convert dimensionIndex to dimensionName | 
|      * and do not need `_dimIdxToName` if we do everything internally based on dimension | 
|      * index rather than dimension name. | 
|      */ | 
|     private _dimIdxToName?; | 
|     readonly hostModel: HostModel; | 
|     /** | 
|      * @readonly | 
|      */ | 
|     dataType: SeriesDataType; | 
|     /** | 
|      * @readonly | 
|      * Host graph if List is used to store graph nodes / edges. | 
|      */ | 
|     graph?: Graph; | 
|     /** | 
|      * @readonly | 
|      * Host tree if List is used to store tree nodes. | 
|      */ | 
|     tree?: Tree; | 
|     private _store; | 
|     private _nameList; | 
|     private _idList; | 
|     private _visual; | 
|     private _layout; | 
|     private _itemVisuals; | 
|     private _itemLayouts; | 
|     private _graphicEls; | 
|     private _approximateExtent; | 
|     private _dimSummary; | 
|     private _invertedIndicesMap; | 
|     private _calculationInfo; | 
|     userOutput: DimensionSummary['userOutput']; | 
|     hasItemOption: boolean; | 
|     private _nameRepeatCount; | 
|     private _nameDimIdx; | 
|     private _idDimIdx; | 
|     private __wrappedMethods; | 
|     TRANSFERABLE_METHODS: readonly ["cloneShallow", "downSample", "minmaxDownSample", "lttbDownSample", "map"]; | 
|     CHANGABLE_METHODS: readonly ["filterSelf", "selectRange"]; | 
|     DOWNSAMPLE_METHODS: readonly ["downSample", "minmaxDownSample", "lttbDownSample"]; | 
|     /** | 
|      * @param dimensionsInput.dimensions | 
|      *        For example, ['someDimName', {name: 'someDimName', type: 'someDimType'}, ...]. | 
|      *        Dimensions should be concrete names like x, y, z, lng, lat, angle, radius | 
|      */ | 
|     constructor(dimensionsInput: SeriesDataSchema | SeriesDimensionDefineLoose[], hostModel: HostModel); | 
|     /** | 
|      * | 
|      * Get concrete dimension name by dimension name or dimension index. | 
|      * If input a dimension name, do not validate whether the dimension name exits. | 
|      * | 
|      * @caution | 
|      * @param dim Must make sure the dimension is `SeriesDimensionLoose`. | 
|      * Because only those dimensions will have auto-generated dimension names if not | 
|      * have a user-specified name, and other dimensions will get a return of null/undefined. | 
|      * | 
|      * @notice Because of this reason, should better use `getDimensionIndex` instead, for examples: | 
|      * ```js | 
|      * const val = data.getStore().get(data.getDimensionIndex(dim), dataIdx); | 
|      * ``` | 
|      * | 
|      * @return Concrete dim name. | 
|      */ | 
|     getDimension(dim: SeriesDimensionLoose): DimensionName; | 
|     /** | 
|      * Get dimension index in data store. Return -1 if not found. | 
|      * Can be used to index value from getRawValue. | 
|      */ | 
|     getDimensionIndex(dim: DimensionLoose): DimensionIndex; | 
|     /** | 
|      * The meanings of the input parameter `dim`: | 
|      * | 
|      * + If dim is a number (e.g., `1`), it means the index of the dimension. | 
|      *   For example, `getDimension(0)` will return 'x' or 'lng' or 'radius'. | 
|      * + If dim is a number-like string (e.g., `"1"`): | 
|      *     + If there is the same concrete dim name defined in `series.dimensions` or `dataset.dimensions`, | 
|      *        it means that concrete name. | 
|      *     + If not, it will be converted to a number, which means the index of the dimension. | 
|      *        (why? because of the backward compatibility. We have been tolerating number-like string in | 
|      *        dimension setting, although now it seems that it is not a good idea.) | 
|      *     For example, `visualMap[i].dimension: "1"` is the same meaning as `visualMap[i].dimension: 1`, | 
|      *     if no dimension name is defined as `"1"`. | 
|      * + If dim is a not-number-like string, it means the concrete dim name. | 
|      *   For example, it can be be default name `"x"`, `"y"`, `"z"`, `"lng"`, `"lat"`, `"angle"`, `"radius"`, | 
|      *   or customized in `dimensions` property of option like `"age"`. | 
|      * | 
|      * @return recognized `DimensionIndex`. Otherwise return null/undefined (means that dim is `DimensionName`). | 
|      */ | 
|     private _recognizeDimIndex; | 
|     private _getStoreDimIndex; | 
|     /** | 
|      * Get type and calculation info of particular dimension | 
|      * @param dim | 
|      *        Dimension can be concrete names like x, y, z, lng, lat, angle, radius | 
|      *        Or a ordinal number. For example getDimensionInfo(0) will return 'x' or 'lng' or 'radius' | 
|      */ | 
|     getDimensionInfo(dim: SeriesDimensionLoose): SeriesDimensionDefine; | 
|     /** | 
|      * If `dimName` if from outside of `SeriesData`, | 
|      * use this method other than visit `this._dimInfos` directly. | 
|      */ | 
|     private _getDimInfo; | 
|     private _initGetDimensionInfo; | 
|     /** | 
|      * concrete dimension name list on coord. | 
|      */ | 
|     getDimensionsOnCoord(): SeriesDimensionName[]; | 
|     /** | 
|      * @param coordDim | 
|      * @param idx A coordDim may map to more than one data dim. | 
|      *        If not specified, return the first dim not extra. | 
|      * @return concrete data dim. If not found, return null/undefined | 
|      */ | 
|     mapDimension(coordDim: SeriesDimensionName): SeriesDimensionName; | 
|     mapDimension(coordDim: SeriesDimensionName, idx: number): SeriesDimensionName; | 
|     mapDimensionsAll(coordDim: SeriesDimensionName): SeriesDimensionName[]; | 
|     getStore(): DataStore; | 
|     /** | 
|      * Initialize from data | 
|      * @param data source or data or data store. | 
|      * @param nameList The name of a datum is used on data diff and | 
|      *        default label/tooltip. | 
|      *        A name can be specified in encode.itemName, | 
|      *        or dataItem.name (only for series option data), | 
|      *        or provided in nameList from outside. | 
|      */ | 
|     initData(data: Source | OptionSourceData | DataStore | DataProvider, nameList?: string[], dimValueGetter?: DimValueGetter): void; | 
|     /** | 
|      * Caution: Can be only called on raw data (before `this._indices` created). | 
|      */ | 
|     appendData(data: ArrayLike$1<any>): void; | 
|     /** | 
|      * Caution: Can be only called on raw data (before `this._indices` created). | 
|      * This method does not modify `rawData` (`dataProvider`), but only | 
|      * add values to store. | 
|      * | 
|      * The final count will be increased by `Math.max(values.length, names.length)`. | 
|      * | 
|      * @param values That is the SourceType: 'arrayRows', like | 
|      *        [ | 
|      *            [12, 33, 44], | 
|      *            [NaN, 43, 1], | 
|      *            ['-', 'asdf', 0] | 
|      *        ] | 
|      *        Each item is exactly corresponding to a dimension. | 
|      */ | 
|     appendValues(values: any[][], names?: string[]): void; | 
|     private _updateOrdinalMeta; | 
|     private _shouldMakeIdFromName; | 
|     private _doInit; | 
|     /** | 
|      * PENDING: In fact currently this function is only used to short-circuit | 
|      * the calling of `scale.unionExtentFromData` when data have been filtered by modules | 
|      * like "dataZoom". `scale.unionExtentFromData` is used to calculate data extent for series on | 
|      * an axis, but if a "axis related data filter module" is used, the extent of the axis have | 
|      * been fixed and no need to calling `scale.unionExtentFromData` actually. | 
|      * But if we add "custom data filter" in future, which is not "axis related", this method may | 
|      * be still needed. | 
|      * | 
|      * Optimize for the scenario that data is filtered by a given extent. | 
|      * Consider that if data amount is more than hundreds of thousand, | 
|      * extent calculation will cost more than 10ms and the cache will | 
|      * be erased because of the filtering. | 
|      */ | 
|     getApproximateExtent(dim: SeriesDimensionLoose): [number, number]; | 
|     /** | 
|      * Calculate extent on a filtered data might be time consuming. | 
|      * Approximate extent is only used for: calculate extent of filtered data outside. | 
|      */ | 
|     setApproximateExtent(extent: [number, number], dim: SeriesDimensionLoose): void; | 
|     getCalculationInfo<CALC_INFO_KEY extends keyof DataCalculationInfo<HostModel>>(key: CALC_INFO_KEY): DataCalculationInfo<HostModel>[CALC_INFO_KEY]; | 
|     /** | 
|      * @param key or k-v object | 
|      */ | 
|     setCalculationInfo(key: DataCalculationInfo<HostModel>): void; | 
|     setCalculationInfo<CALC_INFO_KEY extends keyof DataCalculationInfo<HostModel>>(key: CALC_INFO_KEY, value: DataCalculationInfo<HostModel>[CALC_INFO_KEY]): void; | 
|     /** | 
|      * @return Never be null/undefined. `number` will be converted to string. Because: | 
|      * In most cases, name is used in display, where returning a string is more convenient. | 
|      * In other cases, name is used in query (see `indexOfName`), where we can keep the | 
|      * rule that name `2` equals to name `'2'`. | 
|      */ | 
|     getName(idx: number): string; | 
|     private _getCategory; | 
|     /** | 
|      * @return Never null/undefined. `number` will be converted to string. Because: | 
|      * In all cases having encountered at present, id is used in making diff comparison, which | 
|      * are usually based on hash map. We can keep the rule that the internal id are always string | 
|      * (treat `2` is the same as `'2'`) to make the related logic simple. | 
|      */ | 
|     getId(idx: number): string; | 
|     count(): number; | 
|     /** | 
|      * Get value. Return NaN if idx is out of range. | 
|      * | 
|      * @notice Should better to use `data.getStore().get(dimIndex, dataIdx)` instead. | 
|      */ | 
|     get(dim: SeriesDimensionName, idx: number): ParsedValue; | 
|     /** | 
|      * @notice Should better to use `data.getStore().getByRawIndex(dimIndex, dataIdx)` instead. | 
|      */ | 
|     getByRawIndex(dim: SeriesDimensionName, rawIdx: number): ParsedValue; | 
|     getIndices(): globalThis.ArrayLike<number>; | 
|     getDataExtent(dim: DimensionLoose): [number, number]; | 
|     getSum(dim: DimensionLoose): number; | 
|     getMedian(dim: DimensionLoose): number; | 
|     /** | 
|      * Get value for multi dimensions. | 
|      * @param dimensions If ignored, using all dimensions. | 
|      */ | 
|     getValues(idx: number): ParsedValue[]; | 
|     getValues(dimensions: readonly DimensionName[], idx: number): ParsedValue[]; | 
|     /** | 
|      * If value is NaN. Including '-' | 
|      * Only check the coord dimensions. | 
|      */ | 
|     hasValue(idx: number): boolean; | 
|     /** | 
|      * Retrieve the index with given name | 
|      */ | 
|     indexOfName(name: string): number; | 
|     getRawIndex(idx: number): number; | 
|     indexOfRawIndex(rawIndex: number): number; | 
|     /** | 
|      * Only support the dimension which inverted index created. | 
|      * Do not support other cases until required. | 
|      * @param dim concrete dim | 
|      * @param value ordinal index | 
|      * @return rawIndex | 
|      */ | 
|     rawIndexOf(dim: SeriesDimensionName, value: OrdinalNumber): number; | 
|     /** | 
|      * Retrieve the index of nearest value | 
|      * @param dim | 
|      * @param value | 
|      * @param [maxDistance=Infinity] | 
|      * @return If and only if multiple indices has | 
|      *         the same value, they are put to the result. | 
|      */ | 
|     indicesOfNearest(dim: DimensionLoose, value: number, maxDistance?: number): number[]; | 
|     /** | 
|      * Data iteration | 
|      * @param ctx default this | 
|      * @example | 
|      *  list.each('x', function (x, idx) {}); | 
|      *  list.each(['x', 'y'], function (x, y, idx) {}); | 
|      *  list.each(function (idx) {}) | 
|      */ | 
|     each<Ctx>(cb: EachCb0<Ctx>, ctx?: Ctx, ctxCompat?: Ctx): void; | 
|     each<Ctx>(dims: DimensionLoose, cb: EachCb1<Ctx>, ctx?: Ctx): void; | 
|     each<Ctx>(dims: [DimensionLoose], cb: EachCb1<Ctx>, ctx?: Ctx): void; | 
|     each<Ctx>(dims: [DimensionLoose, DimensionLoose], cb: EachCb2<Ctx>, ctx?: Ctx): void; | 
|     each<Ctx>(dims: ItrParamDims, cb: EachCb$1<Ctx>, ctx?: Ctx): void; | 
|     /** | 
|      * Data filter | 
|      */ | 
|     filterSelf<Ctx>(cb: FilterCb0<Ctx>, ctx?: Ctx, ctxCompat?: Ctx): this; | 
|     filterSelf<Ctx>(dims: DimensionLoose, cb: FilterCb1<Ctx>, ctx?: Ctx): this; | 
|     filterSelf<Ctx>(dims: [DimensionLoose], cb: FilterCb1<Ctx>, ctx?: Ctx): this; | 
|     filterSelf<Ctx>(dims: [DimensionLoose, DimensionLoose], cb: FilterCb2<Ctx>, ctx?: Ctx): this; | 
|     filterSelf<Ctx>(dims: ItrParamDims, cb: FilterCb$1<Ctx>, ctx?: Ctx): this; | 
|     /** | 
|      * Select data in range. (For optimization of filter) | 
|      * (Manually inline code, support 5 million data filtering in data zoom.) | 
|      */ | 
|     selectRange(range: Record<string, [number, number]>): SeriesData; | 
|     /** | 
|      * Data mapping to a plain array | 
|      */ | 
|     mapArray<Ctx, Cb extends MapArrayCb0<Ctx>>(cb: Cb, ctx?: Ctx, ctxCompat?: Ctx): ReturnType<Cb>[]; | 
|     mapArray<Ctx, Cb extends MapArrayCb1<Ctx>>(dims: DimensionLoose, cb: Cb, ctx?: Ctx, ctxCompat?: Ctx): ReturnType<Cb>[]; | 
|     mapArray<Ctx, Cb extends MapArrayCb1<Ctx>>(dims: [DimensionLoose], cb: Cb, ctx?: Ctx, ctxCompat?: Ctx): ReturnType<Cb>[]; | 
|     mapArray<Ctx, Cb extends MapArrayCb2<Ctx>>(dims: [DimensionLoose, DimensionLoose], cb: Cb, ctx?: Ctx, ctxCompat?: Ctx): ReturnType<Cb>[]; | 
|     mapArray<Ctx, Cb extends MapArrayCb<Ctx>>(dims: ItrParamDims, cb: Cb, ctx?: Ctx, ctxCompat?: Ctx): ReturnType<Cb>[]; | 
|     /** | 
|      * Data mapping to a new List with given dimensions | 
|      */ | 
|     map<Ctx>(dims: DimensionLoose, cb: MapCb1<Ctx>, ctx?: Ctx, ctxCompat?: Ctx): SeriesData<HostModel>; | 
|     map<Ctx>(dims: [DimensionLoose], cb: MapCb1<Ctx>, ctx?: Ctx, ctxCompat?: Ctx): SeriesData<HostModel>; | 
|     map<Ctx>(dims: [DimensionLoose, DimensionLoose], cb: MapCb2<Ctx>, ctx?: Ctx, ctxCompat?: Ctx): SeriesData<HostModel>; | 
|     /** | 
|      * !!Danger: used on stack dimension only. | 
|      */ | 
|     modify<Ctx>(dims: DimensionLoose, cb: MapCb1<Ctx>, ctx?: Ctx, ctxCompat?: Ctx): void; | 
|     modify<Ctx>(dims: [DimensionLoose], cb: MapCb1<Ctx>, ctx?: Ctx, ctxCompat?: Ctx): void; | 
|     modify<Ctx>(dims: [DimensionLoose, DimensionLoose], cb: MapCb2<Ctx>, ctx?: Ctx, ctxCompat?: Ctx): void; | 
|     /** | 
|      * Large data down sampling on given dimension | 
|      * @param sampleIndex Sample index for name and id | 
|      */ | 
|     downSample(dimension: DimensionLoose, rate: number, sampleValue: (frameValues: ArrayLike$1<ParsedValue>) => ParsedValueNumeric, sampleIndex: (frameValues: ArrayLike$1<ParsedValue>, value: ParsedValueNumeric) => number): SeriesData<HostModel>; | 
|     /** | 
|      * Large data down sampling using min-max | 
|      * @param {string} valueDimension | 
|      * @param {number} rate | 
|      */ | 
|     minmaxDownSample(valueDimension: DimensionLoose, rate: number): SeriesData<HostModel>; | 
|     /** | 
|      * Large data down sampling using largest-triangle-three-buckets | 
|      * @param {string} valueDimension | 
|      * @param {number} targetCount | 
|      */ | 
|     lttbDownSample(valueDimension: DimensionLoose, rate: number): SeriesData<HostModel>; | 
|     getRawDataItem(idx: number): OptionDataItem; | 
|     /** | 
|      * Get model of one data item. | 
|      */ | 
|     getItemModel<ItemOpts extends unknown = unknown>(idx: number): Model<ItemOpts>; | 
|     /** | 
|      * Create a data differ | 
|      */ | 
|     diff(otherList: SeriesData): DataDiffer; | 
|     /** | 
|      * Get visual property. | 
|      */ | 
|     getVisual<K extends keyof Visual>(key: K): Visual[K]; | 
|     /** | 
|      * Set visual property | 
|      * | 
|      * @example | 
|      *  setVisual('color', color); | 
|      *  setVisual({ | 
|      *      'color': color | 
|      *  }); | 
|      */ | 
|     setVisual<K extends keyof Visual>(key: K, val: Visual[K]): void; | 
|     setVisual(kvObj: Partial<Visual>): void; | 
|     /** | 
|      * Get visual property of single data item | 
|      */ | 
|     getItemVisual<K extends keyof Visual>(idx: number, key: K): Visual[K]; | 
|     /** | 
|      * If exists visual property of single data item | 
|      */ | 
|     hasItemVisual(): boolean; | 
|     /** | 
|      * Make sure itemVisual property is unique | 
|      */ | 
|     ensureUniqueItemVisual<K extends keyof Visual>(idx: number, key: K): Visual[K]; | 
|     /** | 
|      * Set visual property of single data item | 
|      * | 
|      * @param {number} idx | 
|      * @param {string|Object} key | 
|      * @param {*} [value] | 
|      * | 
|      * @example | 
|      *  setItemVisual(0, 'color', color); | 
|      *  setItemVisual(0, { | 
|      *      'color': color | 
|      *  }); | 
|      */ | 
|     setItemVisual<K extends keyof Visual>(idx: number, key: K, value: Visual[K]): void; | 
|     setItemVisual(idx: number, kvObject: Partial<Visual>): void; | 
|     /** | 
|      * Clear itemVisuals and list visual. | 
|      */ | 
|     clearAllVisual(): void; | 
|     /** | 
|      * Set layout property. | 
|      */ | 
|     setLayout(key: string, val: any): void; | 
|     setLayout(kvObj: Dictionary<any>): void; | 
|     /** | 
|      * Get layout property. | 
|      */ | 
|     getLayout(key: string): any; | 
|     /** | 
|      * Get layout of single data item | 
|      */ | 
|     getItemLayout(idx: number): any; | 
|     /** | 
|      * Set layout of single data item | 
|      */ | 
|     setItemLayout<M = false>(idx: number, layout: (M extends true ? Dictionary<any> : any), merge?: M): void; | 
|     /** | 
|      * Clear all layout of single data item | 
|      */ | 
|     clearItemLayouts(): void; | 
|     /** | 
|      * Set graphic element relative to data. It can be set as null | 
|      */ | 
|     setItemGraphicEl(idx: number, el: Element): void; | 
|     getItemGraphicEl(idx: number): Element; | 
|     eachItemGraphicEl<Ctx = unknown>(cb: (this: Ctx, el: Element, idx: number) => void, context?: Ctx): void; | 
|     /** | 
|      * Shallow clone a new list except visual and layout properties, and graph elements. | 
|      * New list only change the indices. | 
|      */ | 
|     cloneShallow(list?: SeriesData<HostModel>): SeriesData<HostModel>; | 
|     /** | 
|      * Wrap some method to add more feature | 
|      */ | 
|     wrapMethod(methodName: FunctionPropertyNames<SeriesData>, injectFunction: (...args: any) => any): void; | 
|     private static internalField; | 
| } | 
| interface SeriesData { | 
|     getLinkedData(dataType?: SeriesDataType): SeriesData; | 
|     getLinkedDataAll(): { | 
|         data: SeriesData; | 
|         type?: SeriesDataType; | 
|     }[]; | 
| } | 
|   | 
| /** | 
|  * If string, e.g., 'geo', means {geoIndex: 0}. | 
|  * If Object, could contain some of these properties below: | 
|  * { | 
|  *     seriesIndex, seriesId, seriesName, | 
|  *     geoIndex, geoId, geoName, | 
|  *     bmapIndex, bmapId, bmapName, | 
|  *     xAxisIndex, xAxisId, xAxisName, | 
|  *     yAxisIndex, yAxisId, yAxisName, | 
|  *     gridIndex, gridId, gridName, | 
|  *     ... (can be extended) | 
|  * } | 
|  * Each properties can be number|string|Array.<number>|Array.<string> | 
|  * For example, a finder could be | 
|  * { | 
|  *     seriesIndex: 3, | 
|  *     geoId: ['aa', 'cc'], | 
|  *     gridName: ['xx', 'rr'] | 
|  * } | 
|  * xxxIndex can be set as 'all' (means all xxx) or 'none' (means not specify) | 
|  * If nothing or null/undefined specified, return nothing. | 
|  * If both `abcIndex`, `abcId`, `abcName` specified, only one work. | 
|  * The priority is: index > id > name, the same with `ecModel.queryComponents`. | 
|  */ | 
| declare type ModelFinderIndexQuery = number | number[] | 'all' | 'none' | false; | 
| declare type ModelFinderIdQuery = OptionId | OptionId[]; | 
| declare type ModelFinderNameQuery = OptionId | OptionId[]; | 
| declare type ModelFinder = string | ModelFinderObject; | 
| declare type ModelFinderObject = { | 
|     seriesIndex?: ModelFinderIndexQuery; | 
|     seriesId?: ModelFinderIdQuery; | 
|     seriesName?: ModelFinderNameQuery; | 
|     geoIndex?: ModelFinderIndexQuery; | 
|     geoId?: ModelFinderIdQuery; | 
|     geoName?: ModelFinderNameQuery; | 
|     bmapIndex?: ModelFinderIndexQuery; | 
|     bmapId?: ModelFinderIdQuery; | 
|     bmapName?: ModelFinderNameQuery; | 
|     xAxisIndex?: ModelFinderIndexQuery; | 
|     xAxisId?: ModelFinderIdQuery; | 
|     xAxisName?: ModelFinderNameQuery; | 
|     yAxisIndex?: ModelFinderIndexQuery; | 
|     yAxisId?: ModelFinderIdQuery; | 
|     yAxisName?: ModelFinderNameQuery; | 
|     gridIndex?: ModelFinderIndexQuery; | 
|     gridId?: ModelFinderIdQuery; | 
|     gridName?: ModelFinderNameQuery; | 
|     dataIndex?: number; | 
|     dataIndexInside?: number; | 
| }; | 
| /** | 
|  * { | 
|  *     seriesModels: [seriesModel1, seriesModel2], | 
|  *     seriesModel: seriesModel1, // The first model | 
|  *     geoModels: [geoModel1, geoModel2], | 
|  *     geoModel: geoModel1, // The first model | 
|  *     ... | 
|  * } | 
|  */ | 
| declare type ParsedModelFinder = { | 
|     [key: string]: ComponentModel | ComponentModel[] | undefined; | 
| }; | 
| declare type QueryReferringOpt = { | 
|     useDefault?: boolean; | 
|     enableAll?: boolean; | 
|     enableNone?: boolean; | 
| }; | 
|   | 
| declare class ComponentModel<Opt extends ComponentOption = ComponentOption> extends Model<Opt> { | 
|     /** | 
|      * @readonly | 
|      */ | 
|     type: ComponentFullType; | 
|     /** | 
|      * @readonly | 
|      */ | 
|     id: string; | 
|     /** | 
|      * Because simplified concept is probably better, series.name (or component.name) | 
|      * has been having too many responsibilities: | 
|      * (1) Generating id (which requires name in option should not be modified). | 
|      * (2) As an index to mapping series when merging option or calling API (a name | 
|      * can refer to more than one component, which is convenient is some cases). | 
|      * (3) Display. | 
|      * @readOnly But injected | 
|      */ | 
|     name: string; | 
|     /** | 
|      * @readOnly | 
|      */ | 
|     mainType: ComponentMainType; | 
|     /** | 
|      * @readOnly | 
|      */ | 
|     subType: ComponentSubType; | 
|     /** | 
|      * @readOnly | 
|      */ | 
|     componentIndex: number; | 
|     /** | 
|      * @readOnly | 
|      */ | 
|     protected defaultOption: ComponentOption; | 
|     /** | 
|      * @readOnly | 
|      */ | 
|     ecModel: GlobalModel; | 
|     /** | 
|      * @readOnly | 
|      */ | 
|     static dependencies: string[]; | 
|     readonly uid: string; | 
|     /** | 
|      * Support merge layout params. | 
|      * Only support 'box' now (left/right/top/bottom/width/height). | 
|      */ | 
|     static layoutMode: ComponentLayoutMode | ComponentLayoutMode['type']; | 
|     /** | 
|      * Prevent from auto set z, zlevel, z2 by the framework. | 
|      */ | 
|     preventAutoZ: boolean; | 
|     __viewId: string; | 
|     __requireNewView: boolean; | 
|     static protoInitialize: void; | 
|     constructor(option: Opt, parentModel: Model, ecModel: GlobalModel); | 
|     init(option: Opt, parentModel: Model, ecModel: GlobalModel): void; | 
|     mergeDefaultAndTheme(option: Opt, ecModel: GlobalModel): void; | 
|     mergeOption(option: Opt, ecModel: GlobalModel): void; | 
|     /** | 
|      * Called immediately after `init` or `mergeOption` of this instance called. | 
|      */ | 
|     optionUpdated(newCptOption: Opt, isInit: boolean): void; | 
|     /** | 
|      * [How to declare defaultOption]: | 
|      * | 
|      * (A) If using class declaration in typescript (since echarts 5): | 
|      * ```ts | 
|      * import {ComponentOption} from '../model/option.js'; | 
|      * export interface XxxOption extends ComponentOption { | 
|      *     aaa: number | 
|      * } | 
|      * export class XxxModel extends Component { | 
|      *     static type = 'xxx'; | 
|      *     static defaultOption: XxxOption = { | 
|      *         aaa: 123 | 
|      *     } | 
|      * } | 
|      * Component.registerClass(XxxModel); | 
|      * ``` | 
|      * ```ts | 
|      * import {inheritDefaultOption} from '../util/component.js'; | 
|      * import {XxxModel, XxxOption} from './XxxModel.js'; | 
|      * export interface XxxSubOption extends XxxOption { | 
|      *     bbb: number | 
|      * } | 
|      * class XxxSubModel extends XxxModel { | 
|      *     static defaultOption: XxxSubOption = inheritDefaultOption(XxxModel.defaultOption, { | 
|      *         bbb: 456 | 
|      *     }) | 
|      *     fn() { | 
|      *         let opt = this.getDefaultOption(); | 
|      *         // opt is {aaa: 123, bbb: 456} | 
|      *     } | 
|      * } | 
|      * ``` | 
|      * | 
|      * (B) If using class extend (previous approach in echarts 3 & 4): | 
|      * ```js | 
|      * let XxxComponent = Component.extend({ | 
|      *     defaultOption: { | 
|      *         xx: 123 | 
|      *     } | 
|      * }) | 
|      * ``` | 
|      * ```js | 
|      * let XxxSubComponent = XxxComponent.extend({ | 
|      *     defaultOption: { | 
|      *         yy: 456 | 
|      *     }, | 
|      *     fn: function () { | 
|      *         let opt = this.getDefaultOption(); | 
|      *         // opt is {xx: 123, yy: 456} | 
|      *     } | 
|      * }) | 
|      * ``` | 
|      */ | 
|     getDefaultOption(): Opt; | 
|     /** | 
|      * Notice: always force to input param `useDefault` in case that forget to consider it. | 
|      * The same behavior as `modelUtil.parseFinder`. | 
|      * | 
|      * @param useDefault In many cases like series refer axis and axis refer grid, | 
|      *        If axis index / axis id not specified, use the first target as default. | 
|      *        In other cases like dataZoom refer axis, if not specified, measn no refer. | 
|      */ | 
|     getReferringComponents(mainType: ComponentMainType, opt: QueryReferringOpt): { | 
|         models: ComponentModel[]; | 
|         specified: boolean; | 
|     }; | 
|     getBoxLayoutParams(): { | 
|         left: string | number; | 
|         top: string | number; | 
|         right: string | number; | 
|         bottom: string | number; | 
|         width: string | number; | 
|         height: string | number; | 
|     }; | 
|     /** | 
|      * Get key for zlevel. | 
|      * If developers don't configure zlevel. We will assign zlevel to series based on the key. | 
|      * For example, lines with trail effect and progressive series will in an individual zlevel. | 
|      */ | 
|     getZLevelKey(): string; | 
|     setZLevel(zlevel: number): void; | 
|     static registerClass: ClassManager['registerClass']; | 
|     static hasClass: ClassManager['hasClass']; | 
|     static registerSubTypeDefaulter: SubTypeDefaulterManager['registerSubTypeDefaulter']; | 
| } | 
|   | 
| declare type AnimateOrSetPropsOption = { | 
|     dataIndex?: number; | 
|     cb?: () => void; | 
|     during?: (percent: number) => void; | 
|     removeOpt?: AnimationOption$1; | 
|     isFrom?: boolean; | 
| }; | 
| /** | 
|  * Update graphic element properties with or without animation according to the | 
|  * configuration in series. | 
|  * | 
|  * Caution: this method will stop previous animation. | 
|  * So do not use this method to one element twice before | 
|  * animation starts, unless you know what you are doing. | 
|  * @example | 
|  *     graphic.updateProps(el, { | 
|  *         position: [100, 100] | 
|  *     }, seriesModel, dataIndex, function () { console.log('Animation done!'); }); | 
|  *     // Or | 
|  *     graphic.updateProps(el, { | 
|  *         position: [100, 100] | 
|  *     }, seriesModel, function () { console.log('Animation done!'); }); | 
|  */ | 
| declare function updateProps<Props extends ElementProps>(el: Element<Props>, props: Props, animatableModel?: Model<AnimationOptionMixin>, dataIndex?: AnimateOrSetPropsOption['dataIndex'] | AnimateOrSetPropsOption['cb'] | AnimateOrSetPropsOption, cb?: AnimateOrSetPropsOption['cb'] | AnimateOrSetPropsOption['during'], during?: AnimateOrSetPropsOption['during']): void; | 
|   | 
| /** | 
|  * Init graphic element properties with or without animation according to the | 
|  * configuration in series. | 
|  * | 
|  * Caution: this method will stop previous animation. | 
|  * So do not use this method to one element twice before | 
|  * animation starts, unless you know what you are doing. | 
|  */ | 
| declare function initProps<Props extends ElementProps>(el: Element<Props>, props: Props, animatableModel?: Model<AnimationOptionMixin>, dataIndex?: AnimateOrSetPropsOption['dataIndex'] | AnimateOrSetPropsOption['cb'] | AnimateOrSetPropsOption, cb?: AnimateOrSetPropsOption['cb'] | AnimateOrSetPropsOption['during'], during?: AnimateOrSetPropsOption['during']): void; | 
|   | 
| declare type ExtendShapeOpt = Parameters<typeof Path.extend>[0]; | 
| declare type ExtendShapeReturn = ReturnType<typeof Path.extend>; | 
| /** | 
|  * Extend shape with parameters | 
|  */ | 
| declare function extendShape(opts: ExtendShapeOpt): ExtendShapeReturn; | 
| declare const extendPathFromString: typeof extendFromString; | 
| declare type SVGPathOption$1 = Parameters<typeof extendPathFromString>[1]; | 
| declare type SVGPathCtor = ReturnType<typeof extendPathFromString>; | 
| declare type SVGPath$1 = InstanceType<SVGPathCtor>; | 
| /** | 
|  * Extend path | 
|  */ | 
| declare function extendPath(pathData: string, opts: SVGPathOption$1): SVGPathCtor; | 
| /** | 
|  * Register a user defined shape. | 
|  * The shape class can be fetched by `getShapeClass` | 
|  * This method will overwrite the registered shapes, including | 
|  * the registered built-in shapes, if using the same `name`. | 
|  * The shape can be used in `custom series` and | 
|  * `graphic component` by declaring `{type: name}`. | 
|  * | 
|  * @param name | 
|  * @param ShapeClass Can be generated by `extendShape`. | 
|  */ | 
| declare function registerShape(name: string, ShapeClass: { | 
|     new (): Path; | 
| }): void; | 
| /** | 
|  * Find shape class registered by `registerShape`. Usually used in | 
|  * fetching user defined shape. | 
|  * | 
|  * [Caution]: | 
|  * (1) This method **MUST NOT be used inside echarts !!!**, unless it is prepared | 
|  * to use user registered shapes. | 
|  * Because the built-in shape (see `getBuiltInShape`) will be registered by | 
|  * `registerShape` by default. That enables users to get both built-in | 
|  * shapes as well as the shapes belonging to themsleves. But users can overwrite | 
|  * the built-in shapes by using names like 'circle', 'rect' via calling | 
|  * `registerShape`. So the echarts inner featrues should not fetch shapes from here | 
|  * in case that it is overwritten by users, except that some features, like | 
|  * `custom series`, `graphic component`, do it deliberately. | 
|  * | 
|  * (2) In the features like `custom series`, `graphic component`, the user input | 
|  * `{tpye: 'xxx'}` does not only specify shapes but also specify other graphic | 
|  * elements like `'group'`, `'text'`, `'image'` or event `'path'`. Those names | 
|  * are reserved names, that is, if some user registers a shape named `'image'`, | 
|  * the shape will not be used. If we intending to add some more reserved names | 
|  * in feature, that might bring break changes (disable some existing user shape | 
|  * names). But that case probably rarely happens. So we don't make more mechanism | 
|  * to resolve this issue here. | 
|  * | 
|  * @param name | 
|  * @return The shape class. If not found, return nothing. | 
|  */ | 
| declare function getShapeClass(name: string): { | 
|     new (): Path; | 
| }; | 
| /** | 
|  * Create a path element from path data string | 
|  * @param pathData | 
|  * @param opts | 
|  * @param rect | 
|  * @param layout 'center' or 'cover' default to be cover | 
|  */ | 
| declare function makePath(pathData: string, opts: SVGPathOption$1, rect: ZRRectLike, layout?: 'center' | 'cover'): SVGPath$1; | 
| /** | 
|  * Create a image element from image url | 
|  * @param imageUrl image url | 
|  * @param opts options | 
|  * @param rect constrain rect | 
|  * @param layout 'center' or 'cover'. Default to be 'cover' | 
|  */ | 
| declare function makeImage(imageUrl: string, rect: ZRRectLike, layout?: 'center' | 'cover'): ZRImage; | 
| declare const mergePath$1: typeof mergePath; | 
| /** | 
|  * Resize a path to fit the rect | 
|  * @param path | 
|  * @param rect | 
|  */ | 
| declare function resizePath(path: SVGPath$1, rect: ZRRectLike): void; | 
| /** | 
|  * Get transform matrix of target (param target), | 
|  * in coordinate of its ancestor (param ancestor) | 
|  * | 
|  * @param target | 
|  * @param [ancestor] | 
|  */ | 
| declare function getTransform(target: Transformable, ancestor?: Transformable): MatrixArray; | 
| declare function clipPointsByRect(points: VectorArray[], rect: ZRRectLike): number[][]; | 
| /** | 
|  * Return a new clipped rect. If rect size are negative, return undefined. | 
|  */ | 
| declare function clipRectByRect(targetRect: ZRRectLike, rect: ZRRectLike): ZRRectLike | undefined; | 
| declare function createIcon(iconStr: string, // Support 'image://' or 'path://' or direct svg path. | 
| opt?: Omit<DisplayableProps, 'style'>, rect?: ZRRectLike): SVGPath$1 | ZRImage; | 
|   | 
| declare type TextStyleProps$1 = ZRText['style']; | 
| declare function getTextRect(text: TextStyleProps$1['text'], font?: TextStyleProps$1['font'], align?: TextStyleProps$1['align'], verticalAlign?: TextStyleProps$1['verticalAlign'], padding?: TextStyleProps$1['padding'], rich?: TextStyleProps$1['rich'], truncate?: boolean, lineHeight?: number): BoundingRect; | 
|   | 
| /** | 
|  * Add a comma each three digit. | 
|  */ | 
| declare function addCommas(x: string | number): string; | 
| declare function toCamelCase(str: string, upperCaseFirst?: boolean): string; | 
| declare const normalizeCssArray$1: typeof normalizeCssArray; | 
|   | 
| interface TplFormatterParam extends Dictionary<any> { | 
|     $vars: string[]; | 
| } | 
| /** | 
|  * Template formatter | 
|  * @param {Array.<Object>|Object} paramsList | 
|  */ | 
| declare function formatTpl(tpl: string, paramsList: TplFormatterParam | TplFormatterParam[], encode?: boolean): string; | 
| interface RichTextTooltipMarker { | 
|     renderMode: TooltipRenderMode; | 
|     content: string; | 
|     style: Dictionary<unknown>; | 
| } | 
| declare type TooltipMarker = string | RichTextTooltipMarker; | 
| declare type TooltipMarkerType = 'item' | 'subItem'; | 
| interface GetTooltipMarkerOpt { | 
|     color?: ColorString; | 
|     extraCssText?: string; | 
|     type?: TooltipMarkerType; | 
|     renderMode?: TooltipRenderMode; | 
|     markerId?: string; | 
| } | 
| declare function getTooltipMarker(color: ColorString, extraCssText?: string): TooltipMarker; | 
| declare function getTooltipMarker(opt: GetTooltipMarkerOpt): TooltipMarker; | 
| /** | 
|  * @deprecated Use `time/format` instead. | 
|  * ISO Date format | 
|  * @param {string} tpl | 
|  * @param {number} value | 
|  * @param {boolean} [isUTC=false] Default in local time. | 
|  *           see `module:echarts/scale/Time` | 
|  *           and `module:echarts/util/number#parseDate`. | 
|  * @inner | 
|  */ | 
| declare function formatTime(tpl: string, value: unknown, isUTC?: boolean): string; | 
| /** | 
|  * Capital first | 
|  * @param {string} str | 
|  * @return {string} | 
|  */ | 
| declare function capitalFirst(str: string): string; | 
|   | 
| interface MapperParamAxisInfo { | 
|     axisIndex: number; | 
|     axisName: string; | 
|     axisId: string; | 
|     axisDim: string; | 
| } | 
| interface AxisPointerLink { | 
|     xAxisIndex?: number[] | 'all'; | 
|     yAxisIndex?: number[] | 'all'; | 
|     xAxisId?: string[]; | 
|     yAxisId?: string[]; | 
|     xAxisName?: string[] | string; | 
|     yAxisName?: string[] | string; | 
|     radiusAxisIndex?: number[] | 'all'; | 
|     angleAxisIndex?: number[] | 'all'; | 
|     radiusAxisId?: string[]; | 
|     angleAxisId?: string[]; | 
|     radiusAxisName?: string[] | string; | 
|     angleAxisName?: string[] | string; | 
|     singleAxisIndex?: number[] | 'all'; | 
|     singleAxisId?: string[]; | 
|     singleAxisName?: string[] | string; | 
|     mapper?(sourceVal: ScaleDataValue, sourceAxisInfo: MapperParamAxisInfo, targetAxisInfo: MapperParamAxisInfo): CommonAxisPointerOption['value']; | 
| } | 
| interface AxisPointerOption extends ComponentOption, Omit<CommonAxisPointerOption, 'type'> { | 
|     mainType?: 'axisPointer'; | 
|     type?: 'line' | 'shadow' | 'cross' | 'none'; | 
|     link?: AxisPointerLink[]; | 
| } | 
|   | 
| declare type TopLevelFormatterParams = CallbackDataParams | CallbackDataParams[]; | 
| interface TooltipOption extends CommonTooltipOption<TopLevelFormatterParams>, ComponentOption { | 
|     mainType?: 'tooltip'; | 
|     axisPointer?: AxisPointerOption & { | 
|         axis?: 'auto' | 'x' | 'y' | 'angle' | 'radius'; | 
|         crossStyle?: LineStyleOption & { | 
|             textStyle?: LabelOption; | 
|         }; | 
|     }; | 
|     /** | 
|      * If show popup content | 
|      */ | 
|     showContent?: boolean; | 
|     /** | 
|      * Trigger only works on coordinate system. | 
|      */ | 
|     trigger?: 'item' | 'axis' | 'none'; | 
|     displayMode?: 'single' | 'multipleByCoordSys'; | 
|     /** | 
|      * 'auto': use html by default, and use non-html if `document` is not defined | 
|      * 'html': use html for tooltip | 
|      * 'richText': use canvas, svg, and etc. for tooltip | 
|      */ | 
|     renderMode?: 'auto' | TooltipRenderMode; | 
|     /** | 
|      * @deprecated | 
|      * use appendTo: 'body' instead | 
|      */ | 
|     appendToBody?: boolean; | 
|     /** | 
|      * If append the tooltip element to another DOM element. | 
|      * Only available when renderMode is html | 
|      */ | 
|     appendTo?: ((chartContainer: HTMLElement) => HTMLElement | undefined | null) | string | HTMLElement; | 
|     /** | 
|      * Specify the class name of tooltip element | 
|      * Only available when renderMode is html | 
|      */ | 
|     className?: string; | 
|     order?: TooltipOrderMode; | 
| } | 
|   | 
| /** | 
|  * This is an abstract layer to insulate the upper usage of tooltip content | 
|  * from the different backends according to different `renderMode` ('html' or 'richText'). | 
|  * With the help of the abstract layer, it does not need to consider how to create and | 
|  * assemble html or richText snippets when making tooltip content. | 
|  * | 
|  * @usage | 
|  * | 
|  * ```ts | 
|  * class XxxSeriesModel { | 
|  *     formatTooltip( | 
|  *         dataIndex: number, | 
|  *         multipleSeries: boolean, | 
|  *         dataType: string | 
|  *     ) { | 
|  *         ... | 
|  *         return createTooltipMarkup('section', { | 
|  *             header: header, | 
|  *             blocks: [ | 
|  *                 createTooltipMarkup('nameValue', { | 
|  *                     name: name, | 
|  *                     value: value, | 
|  *                     noValue: value == null | 
|  *                 }) | 
|  *             ] | 
|  *         }); | 
|  *     } | 
|  * } | 
|  * ``` | 
|  */ | 
| declare type TooltipMarkupBlockFragment = TooltipMarkupSection | TooltipMarkupNameValueBlock; | 
| interface TooltipMarkupBlock { | 
|     sortParam?: unknown; | 
| } | 
| interface TooltipMarkupSection extends TooltipMarkupBlock { | 
|     type: 'section'; | 
|     header?: unknown; | 
|     noHeader?: boolean; | 
|     blocks?: TooltipMarkupBlockFragment[]; | 
|     sortBlocks?: boolean; | 
|     valueFormatter?: CommonTooltipOption<unknown>['valueFormatter']; | 
| } | 
| interface TooltipMarkupNameValueBlock extends TooltipMarkupBlock { | 
|     type: 'nameValue'; | 
|     markerType?: TooltipMarkerType; | 
|     markerColor?: ColorString; | 
|     name?: string; | 
|     value?: unknown | unknown[]; | 
|     valueType?: DimensionType | DimensionType[]; | 
|     noName?: boolean; | 
|     noValue?: boolean; | 
|     dataIndex?: number; | 
|     valueFormatter?: CommonTooltipOption<unknown>['valueFormatter']; | 
| } | 
|   | 
| interface DataFormatMixin extends DataHost { | 
|     ecModel: GlobalModel; | 
|     mainType: ComponentMainType; | 
|     subType: ComponentSubType; | 
|     componentIndex: number; | 
|     id: string; | 
|     name: string; | 
|     animatedValue: OptionDataValue[]; | 
| } | 
| declare class DataFormatMixin { | 
|     /** | 
|      * Get params for formatter | 
|      */ | 
|     getDataParams(dataIndex: number, dataType?: SeriesDataType): CallbackDataParams; | 
|     /** | 
|      * Format label | 
|      * @param dataIndex | 
|      * @param status 'normal' by default | 
|      * @param dataType | 
|      * @param labelDimIndex Only used in some chart that | 
|      *        use formatter in different dimensions, like radar. | 
|      * @param formatter Formatter given outside. | 
|      * @return return null/undefined if no formatter | 
|      */ | 
|     getFormattedLabel(dataIndex: number, status?: DisplayState, dataType?: SeriesDataType, labelDimIndex?: number, formatter?: string | ((params: object) => string), extendParams?: { | 
|         interpolatedValue: InterpolatableValue; | 
|     }): string; | 
|     /** | 
|      * Get raw value in option | 
|      */ | 
|     getRawValue(idx: number, dataType?: SeriesDataType): unknown; | 
|     /** | 
|      * Should be implemented. | 
|      * @param {number} dataIndex | 
|      * @param {boolean} [multipleSeries=false] | 
|      * @param {string} [dataType] | 
|      */ | 
|     formatTooltip(dataIndex: number, multipleSeries?: boolean, dataType?: string): TooltipFormatResult; | 
| } | 
| declare type TooltipFormatResult = string | TooltipMarkupBlockFragment; | 
|   | 
| /** | 
|  * [Notice]: | 
|  * Consider custom bundle on demand, chart specified | 
|  * or component specified types and constants should | 
|  * not put here. Only common types and constants can | 
|  * be put in this file. | 
|  */ | 
|   | 
| declare type RendererType = 'canvas' | 'svg'; | 
| declare type LayoutOrient = 'vertical' | 'horizontal'; | 
| declare type HorizontalAlign = 'left' | 'center' | 'right'; | 
| declare type VerticalAlign = 'top' | 'middle' | 'bottom'; | 
| declare type ColorString = string; | 
| declare type ZRColor = ColorString | LinearGradientObject | RadialGradientObject | PatternObject; | 
| declare type ZRLineType = 'solid' | 'dotted' | 'dashed' | number | number[]; | 
| declare type ZRFontStyle = 'normal' | 'italic' | 'oblique'; | 
| declare type ZRFontWeight = 'normal' | 'bold' | 'bolder' | 'lighter' | number; | 
| declare type ZREasing = AnimationEasing; | 
| declare type ZRTextAlign = TextAlign; | 
| declare type ZRTextVerticalAlign = TextVerticalAlign; | 
| declare type ZRRectLike = RectLike; | 
| declare type ZRStyleProps = PathStyleProps | ImageStyleProps | TSpanStyleProps | TextStyleProps; | 
| declare type ZRElementEventName = ElementEventName | 'globalout'; | 
| declare type ComponentFullType = string; | 
| declare type ComponentMainType = keyof ECUnitOption & string; | 
| declare type ComponentSubType = Exclude<ComponentOption['type'], undefined>; | 
| interface DataHost { | 
|     getData(dataType?: SeriesDataType): SeriesData; | 
| } | 
| interface DataModel extends Model<unknown>, DataHost, DataFormatMixin { | 
|     getDataParams(dataIndex: number, dataType?: SeriesDataType, el?: Element): CallbackDataParams; | 
| } | 
| interface PayloadItem { | 
|     excludeSeriesId?: OptionId | OptionId[]; | 
|     animation?: PayloadAnimationPart; | 
|     [other: string]: any; | 
| } | 
| interface Payload extends PayloadItem { | 
|     type: string; | 
|     escapeConnect?: boolean; | 
|     batch?: PayloadItem[]; | 
| } | 
| interface HighlightPayload extends Payload { | 
|     type: 'highlight'; | 
|     notBlur?: boolean; | 
| } | 
| interface DownplayPayload extends Payload { | 
|     type: 'downplay'; | 
|     notBlur?: boolean; | 
| } | 
| interface PayloadAnimationPart { | 
|     duration?: number; | 
|     easing?: AnimationEasing; | 
|     delay?: number; | 
| } | 
| interface SelectChangedPayload extends Payload { | 
|     type: 'selectchanged'; | 
|     escapeConnect: boolean; | 
|     isFromClick: boolean; | 
|     fromAction: 'select' | 'unselect' | 'toggleSelected'; | 
|     fromActionPayload: Payload; | 
|     selected: { | 
|         seriesIndex: number; | 
|         dataType?: SeriesDataType; | 
|         dataIndex: number[]; | 
|     }[]; | 
| } | 
| interface ViewRootGroup extends Group { | 
|     __ecComponentInfo?: { | 
|         mainType: string; | 
|         index: number; | 
|     }; | 
| } | 
| interface ECElementEvent extends ECEventData, CallbackDataParams { | 
|     type: ZRElementEventName; | 
|     event?: ElementEvent; | 
| } | 
| /** | 
|  * The echarts event type to user. | 
|  * Also known as packedEvent. | 
|  */ | 
| interface ECActionEvent extends ECEventData { | 
|     type: string; | 
|     componentType?: string; | 
|     componentIndex?: number; | 
|     seriesIndex?: number; | 
|     escapeConnect?: boolean; | 
|     batch?: ECEventData; | 
| } | 
| interface ECEventData { | 
|     [key: string]: any; | 
| } | 
| interface EventQueryItem { | 
|     [key: string]: any; | 
| } | 
| interface ActionInfo { | 
|     type: string; | 
|     event?: string; | 
|     update?: string; | 
| } | 
| interface ActionHandler { | 
|     (payload: Payload, ecModel: GlobalModel, api: ExtensionAPI): void | ECEventData; | 
| } | 
| interface OptionPreprocessor { | 
|     (option: ECUnitOption, isTheme: boolean): void; | 
| } | 
| interface PostUpdater { | 
|     (ecModel: GlobalModel, api: ExtensionAPI): void; | 
| } | 
| interface StageHandlerReset { | 
|     (seriesModel: SeriesModel, ecModel: GlobalModel, api: ExtensionAPI, payload?: Payload): StageHandlerProgressExecutor | StageHandlerProgressExecutor[] | void; | 
| } | 
| interface StageHandlerOverallReset { | 
|     (ecModel: GlobalModel, api: ExtensionAPI, payload?: Payload): void; | 
| } | 
| interface StageHandler { | 
|     /** | 
|      * Indicate that the task will be piped all series | 
|      * (`performRawSeries` indicate whether includes filtered series). | 
|      */ | 
|     createOnAllSeries?: boolean; | 
|     /** | 
|      * Indicate that the task will be only piped in the pipeline of this type of series. | 
|      * (`performRawSeries` indicate whether includes filtered series). | 
|      */ | 
|     seriesType?: string; | 
|     /** | 
|      * Indicate that the task will be only piped in the pipeline of the returned series. | 
|      */ | 
|     getTargetSeries?: (ecModel: GlobalModel, api: ExtensionAPI) => HashMap<SeriesModel>; | 
|     /** | 
|      * If `true`, filtered series will also be "performed". | 
|      */ | 
|     performRawSeries?: boolean; | 
|     /** | 
|      * Called only when this task in a pipeline. | 
|      */ | 
|     plan?: StageHandlerPlan; | 
|     /** | 
|      * If `overallReset` specified, an "overall task" will be created. | 
|      * "overall task" does not belong to a certain pipeline. | 
|      * They always be "performed" in certain phase (depends on when they declared). | 
|      * They has "stub"s to connect with pipelines (one stub for one pipeline), | 
|      * delivering info like "dirty" and "output end". | 
|      */ | 
|     overallReset?: StageHandlerOverallReset; | 
|     /** | 
|      * Called only when this task in a pipeline, and "dirty". | 
|      */ | 
|     reset?: StageHandlerReset; | 
| } | 
| interface StageHandlerInternal extends StageHandler { | 
|     uid: string; | 
|     visualType?: 'layout' | 'visual'; | 
|     __prio: number; | 
|     __raw: StageHandler | StageHandlerOverallReset; | 
|     isVisual?: boolean; | 
|     isLayout?: boolean; | 
| } | 
| declare type StageHandlerProgressParams = TaskProgressParams; | 
| interface StageHandlerProgressExecutor { | 
|     dataEach?: (data: SeriesData, idx: number) => void; | 
|     progress?: (params: StageHandlerProgressParams, data: SeriesData) => void; | 
| } | 
| declare type StageHandlerPlanReturn = TaskPlanCallbackReturn; | 
| interface StageHandlerPlan { | 
|     (seriesModel: SeriesModel, ecModel: GlobalModel, api: ExtensionAPI, payload?: Payload): StageHandlerPlanReturn; | 
| } | 
| interface LoadingEffectCreator { | 
|     (api: ExtensionAPI, cfg: object): LoadingEffect; | 
| } | 
| interface LoadingEffect extends Element { | 
|     resize: () => void; | 
| } | 
| /** | 
|  * 'html' is used for rendering tooltip in extra DOM form, and the result | 
|  * string is used as DOM HTML content. | 
|  * 'richText' is used for rendering tooltip in rich text form, for those where | 
|  * DOM operation is not supported. | 
|  */ | 
| declare type TooltipRenderMode = 'html' | 'richText'; | 
| declare type TooltipOrderMode = 'valueAsc' | 'valueDesc' | 'seriesAsc' | 'seriesDesc'; | 
| declare type OrdinalRawValue = string | number; | 
| declare type OrdinalNumber = number; | 
| /** | 
|  * @usage For example, | 
|  * ```js | 
|  * { ordinalNumbers: [2, 5, 3, 4] } | 
|  * ``` | 
|  * means that ordinal 2 should be displayed on tick 0, | 
|  * ordinal 5 should be displayed on tick 1, ... | 
|  */ | 
| declare type OrdinalSortInfo = { | 
|     ordinalNumbers: OrdinalNumber[]; | 
| }; | 
| /** | 
|  * `OptionDataValue` is the primitive value in `series.data` or `dataset.source`. | 
|  * `OptionDataValue` are parsed (see `src/data/helper/dataValueHelper.parseDataValue`) | 
|  * into `ParsedValue` and stored into `data/SeriesData` storage. | 
|  * Note: | 
|  * (1) The term "parse" does not mean `src/scale/Scale['parse']`. | 
|  * (2) If a category dimension is not mapped to any axis, its raw value will NOT be | 
|  * parsed to `OrdinalNumber` but keep the original `OrdinalRawValue` in `src/data/SeriesData` storage. | 
|  */ | 
| declare type ParsedValue = ParsedValueNumeric | OrdinalRawValue; | 
| declare type ParsedValueNumeric = number | OrdinalNumber; | 
| /** | 
|  * `ScaleDataValue` means that the user input primitive value to `src/scale/Scale`. | 
|  * (For example, used in `axis.min`, `axis.max`, `convertToPixel`). | 
|  * Note: | 
|  * `ScaleDataValue` is a little different from `OptionDataValue`, because it will not go through | 
|  * `src/data/helper/dataValueHelper.parseDataValue`, but go through `src/scale/Scale['parse']`. | 
|  */ | 
| declare type ScaleDataValue = ParsedValueNumeric | OrdinalRawValue | Date; | 
| interface ScaleTick { | 
|     level?: number; | 
|     value: number; | 
| } | 
| declare type DimensionIndex = number; | 
| declare type DimensionIndexLoose = DimensionIndex | string; | 
| declare type DimensionName = string; | 
| declare type DimensionLoose = DimensionName | DimensionIndexLoose; | 
| declare type DimensionType = DataStoreDimensionType; | 
| interface DataVisualDimensions { | 
|     tooltip?: DimensionIndex | false; | 
|     label?: DimensionIndex; | 
|     itemName?: DimensionIndex; | 
|     itemId?: DimensionIndex; | 
|     itemGroupId?: DimensionIndex; | 
|     itemChildGroupId?: DimensionIndex; | 
|     seriesName?: DimensionIndex; | 
| } | 
| declare type DimensionDefinition = { | 
|     type?: DataStoreDimensionType; | 
|     name?: DimensionName; | 
|     displayName?: string; | 
| }; | 
| declare type DimensionDefinitionLoose = DimensionDefinition['name'] | DimensionDefinition; | 
| declare const SOURCE_FORMAT_ORIGINAL: "original"; | 
| declare const SOURCE_FORMAT_ARRAY_ROWS: "arrayRows"; | 
| declare const SOURCE_FORMAT_OBJECT_ROWS: "objectRows"; | 
| declare const SOURCE_FORMAT_KEYED_COLUMNS: "keyedColumns"; | 
| declare const SOURCE_FORMAT_TYPED_ARRAY: "typedArray"; | 
| declare const SOURCE_FORMAT_UNKNOWN: "unknown"; | 
| declare type SourceFormat = typeof SOURCE_FORMAT_ORIGINAL | typeof SOURCE_FORMAT_ARRAY_ROWS | typeof SOURCE_FORMAT_OBJECT_ROWS | typeof SOURCE_FORMAT_KEYED_COLUMNS | typeof SOURCE_FORMAT_TYPED_ARRAY | typeof SOURCE_FORMAT_UNKNOWN; | 
| declare const SERIES_LAYOUT_BY_COLUMN: "column"; | 
| declare const SERIES_LAYOUT_BY_ROW: "row"; | 
| declare type SeriesLayoutBy = typeof SERIES_LAYOUT_BY_COLUMN | typeof SERIES_LAYOUT_BY_ROW; | 
| declare type OptionSourceHeader = boolean | 'auto' | number; | 
| declare type SeriesDataType = 'main' | 'node' | 'edge'; | 
| /** | 
|  * [ECUnitOption]: | 
|  * An object that contains definitions of components | 
|  * and other properties. For example: | 
|  * | 
|  * ```ts | 
|  * let option: ECUnitOption = { | 
|  * | 
|  *     // Single `title` component: | 
|  *     title: {...}, | 
|  * | 
|  *     // Two `visualMap` components: | 
|  *     visualMap: [{...}, {...}], | 
|  * | 
|  *     // Two `series.bar` components | 
|  *     // and one `series.pie` component: | 
|  *     series: [ | 
|  *         {type: 'bar', data: [...]}, | 
|  *         {type: 'bar', data: [...]}, | 
|  *         {type: 'pie', data: [...]} | 
|  *     ], | 
|  * | 
|  *     // A property: | 
|  *     backgroundColor: '#421ae4' | 
|  * | 
|  *     // A property object: | 
|  *     textStyle: { | 
|  *         color: 'red', | 
|  *         fontSize: 20 | 
|  *     } | 
|  * }; | 
|  * ``` | 
|  */ | 
| declare type ECUnitOption = { | 
|     baseOption?: unknown; | 
|     options?: unknown; | 
|     media?: unknown; | 
|     timeline?: ComponentOption | ComponentOption[]; | 
|     backgroundColor?: ZRColor; | 
|     darkMode?: boolean | 'auto'; | 
|     textStyle?: Pick<LabelOption, 'color' | 'fontStyle' | 'fontWeight' | 'fontSize' | 'fontFamily'>; | 
|     useUTC?: boolean; | 
|     [key: string]: ComponentOption | ComponentOption[] | Dictionary<unknown> | unknown; | 
|     stateAnimation?: AnimationOption$1; | 
| } & AnimationOptionMixin & ColorPaletteOptionMixin; | 
| /** | 
|  * [ECOption]: | 
|  * An object input to echarts.setOption(option). | 
|  * May be an 'option: ECUnitOption', | 
|  * or may be an object contains multi-options. For example: | 
|  * | 
|  * ```ts | 
|  * let option: ECOption = { | 
|  *     baseOption: { | 
|  *         title: {...}, | 
|  *         legend: {...}, | 
|  *         series: [ | 
|  *             {data: [...]}, | 
|  *             {data: [...]}, | 
|  *             ... | 
|  *         ] | 
|  *     }, | 
|  *     timeline: {...}, | 
|  *     options: [ | 
|  *         {title: {...}, series: {data: [...]}}, | 
|  *         {title: {...}, series: {data: [...]}}, | 
|  *         ... | 
|  *     ], | 
|  *     media: [ | 
|  *         { | 
|  *             query: {maxWidth: 320}, | 
|  *             option: {series: {x: 20}, visualMap: {show: false}} | 
|  *         }, | 
|  *         { | 
|  *             query: {minWidth: 320, maxWidth: 720}, | 
|  *             option: {series: {x: 500}, visualMap: {show: true}} | 
|  *         }, | 
|  *         { | 
|  *             option: {series: {x: 1200}, visualMap: {show: true}} | 
|  *         } | 
|  *     ] | 
|  * }; | 
|  * ``` | 
|  */ | 
| interface ECBasicOption extends ECUnitOption { | 
|     baseOption?: ECUnitOption; | 
|     timeline?: ComponentOption | ComponentOption[]; | 
|     options?: ECUnitOption[]; | 
|     media?: MediaUnit[]; | 
| } | 
| declare type OptionSourceData<VAL extends OptionDataValue = OptionDataValue, ORIITEM extends OptionDataItemOriginal<VAL> = OptionDataItemOriginal<VAL>> = OptionSourceDataOriginal<VAL, ORIITEM> | OptionSourceDataObjectRows<VAL> | OptionSourceDataArrayRows<VAL> | OptionSourceDataKeyedColumns<VAL> | OptionSourceDataTypedArray; | 
| declare type OptionDataItemOriginal<VAL extends OptionDataValue = OptionDataValue> = VAL | VAL[] | OptionDataItemObject<VAL>; | 
| declare type OptionSourceDataOriginal<VAL extends OptionDataValue = OptionDataValue, ORIITEM extends OptionDataItemOriginal<VAL> = OptionDataItemOriginal<VAL>> = ArrayLike<ORIITEM>; | 
| declare type OptionSourceDataObjectRows<VAL extends OptionDataValue = OptionDataValue> = Array<Dictionary<VAL>>; | 
| declare type OptionSourceDataArrayRows<VAL extends OptionDataValue = OptionDataValue> = Array<Array<VAL>>; | 
| declare type OptionSourceDataKeyedColumns<VAL extends OptionDataValue = OptionDataValue> = Dictionary<ArrayLike<VAL>>; | 
| declare type OptionSourceDataTypedArray = ArrayLike<number>; | 
| declare type OptionDataItem = OptionDataValue | Dictionary<OptionDataValue> | OptionDataValue[] | OptionDataItemObject<OptionDataValue>; | 
| declare type OptionDataItemObject<T> = { | 
|     id?: OptionId; | 
|     name?: OptionName; | 
|     groupId?: OptionId; | 
|     childGroupId?: OptionId; | 
|     value?: T[] | T; | 
|     selected?: boolean; | 
| }; | 
| declare type OptionId = string | number; | 
| declare type OptionName = string | number; | 
| interface GraphEdgeItemObject<VAL extends OptionDataValue> extends OptionDataItemObject<VAL> { | 
|     /** | 
|      * Name or index of source node. | 
|      */ | 
|     source?: string | number; | 
|     /** | 
|      * Name or index of target node. | 
|      */ | 
|     target?: string | number; | 
| } | 
| declare type OptionDataValue = string | number | Date | null | undefined; | 
| declare type OptionDataValueNumeric = number | '-'; | 
| declare type OptionDataValueDate = Date | string | number; | 
| declare type ModelOption = any; | 
| declare type ThemeOption = Dictionary<any>; | 
| declare type DisplayState = 'normal' | 'emphasis' | 'blur' | 'select'; | 
| interface OptionEncodeVisualDimensions { | 
|     tooltip?: OptionEncodeValue; | 
|     label?: OptionEncodeValue; | 
|     itemName?: OptionEncodeValue; | 
|     itemId?: OptionEncodeValue; | 
|     seriesName?: OptionEncodeValue; | 
|     itemGroupId?: OptionEncodeValue; | 
|     childGroupdId?: OptionEncodeValue; | 
| } | 
| interface OptionEncode extends OptionEncodeVisualDimensions { | 
|     [coordDim: string]: OptionEncodeValue | undefined; | 
| } | 
| declare type OptionEncodeValue = DimensionLoose | DimensionLoose[]; | 
| declare type EncodeDefaulter = (source: Source, dimCount: number) => OptionEncode; | 
| interface CallbackDataParams { | 
|     componentType: string; | 
|     componentSubType: string; | 
|     componentIndex: number; | 
|     seriesType?: string; | 
|     seriesIndex?: number; | 
|     seriesId?: string; | 
|     seriesName?: string; | 
|     name: string; | 
|     dataIndex: number; | 
|     data: OptionDataItem; | 
|     dataType?: SeriesDataType; | 
|     value: OptionDataItem | OptionDataValue; | 
|     color?: ZRColor; | 
|     borderColor?: string; | 
|     dimensionNames?: DimensionName[]; | 
|     encode?: DimensionUserOuputEncode; | 
|     marker?: TooltipMarker; | 
|     status?: DisplayState; | 
|     dimensionIndex?: number; | 
|     percent?: number; | 
|     $vars: string[]; | 
| } | 
| declare type InterpolatableValue = ParsedValue | ParsedValue[]; | 
| declare type DecalDashArrayX = number | (number | number[])[]; | 
| declare type DecalDashArrayY = number | number[]; | 
| interface DecalObject { | 
|     symbol?: string | string[]; | 
|     symbolSize?: number; | 
|     symbolKeepAspect?: boolean; | 
|     color?: string; | 
|     backgroundColor?: string; | 
|     dashArrayX?: DecalDashArrayX; | 
|     dashArrayY?: DecalDashArrayY; | 
|     rotation?: number; | 
|     maxTileWidth?: number; | 
|     maxTileHeight?: number; | 
| } | 
| interface MediaQuery { | 
|     minWidth?: number; | 
|     maxWidth?: number; | 
|     minHeight?: number; | 
|     maxHeight?: number; | 
|     minAspectRatio?: number; | 
|     maxAspectRatio?: number; | 
| } | 
| declare type MediaUnit = { | 
|     query?: MediaQuery; | 
|     option: ECUnitOption; | 
| }; | 
| declare type ComponentLayoutMode = { | 
|     type?: 'box'; | 
|     ignoreSize?: boolean | boolean[]; | 
| }; | 
| declare type PaletteOptionMixin = ColorPaletteOptionMixin; | 
| interface ColorPaletteOptionMixin { | 
|     color?: ZRColor | ZRColor[]; | 
|     colorLayer?: ZRColor[][]; | 
| } | 
| /** | 
|  * Mixin of option set to control the box layout of each component. | 
|  */ | 
| interface BoxLayoutOptionMixin { | 
|     width?: number | string; | 
|     height?: number | string; | 
|     top?: number | string; | 
|     right?: number | string; | 
|     bottom?: number | string; | 
|     left?: number | string; | 
| } | 
| interface CircleLayoutOptionMixin { | 
|     center?: (number | string)[]; | 
|     radius?: (number | string)[] | number | string; | 
| } | 
| interface ShadowOptionMixin { | 
|     shadowBlur?: number; | 
|     shadowColor?: ColorString; | 
|     shadowOffsetX?: number; | 
|     shadowOffsetY?: number; | 
| } | 
| interface BorderOptionMixin { | 
|     borderColor?: ZRColor; | 
|     borderWidth?: number; | 
|     borderType?: ZRLineType; | 
|     borderCap?: CanvasLineCap; | 
|     borderJoin?: CanvasLineJoin; | 
|     borderDashOffset?: number; | 
|     borderMiterLimit?: number; | 
| } | 
| declare type ColorBy = 'series' | 'data'; | 
| interface SunburstColorByMixin { | 
|     colorBy?: ColorBy; | 
| } | 
| declare type AnimationDelayCallbackParam = { | 
|     count: number; | 
|     index: number; | 
| }; | 
| declare type AnimationDurationCallback = (idx: number) => number; | 
| declare type AnimationDelayCallback = (idx: number, params?: AnimationDelayCallbackParam) => number; | 
| interface AnimationOption$1 { | 
|     duration?: number; | 
|     easing?: AnimationEasing; | 
|     delay?: number; | 
| } | 
| /** | 
|  * Mixin of option set to control the animation of series. | 
|  */ | 
| interface AnimationOptionMixin { | 
|     /** | 
|      * If enable animation | 
|      */ | 
|     animation?: boolean; | 
|     /** | 
|      * Disable animation when the number of elements exceeds the threshold | 
|      */ | 
|     animationThreshold?: number; | 
|     /** | 
|      * Duration of initialize animation. | 
|      * Can be a callback to specify duration of each element | 
|      */ | 
|     animationDuration?: number | AnimationDurationCallback; | 
|     /** | 
|      * Easing of initialize animation | 
|      */ | 
|     animationEasing?: AnimationEasing; | 
|     /** | 
|      * Delay of initialize animation | 
|      * Can be a callback to specify duration of each element | 
|      */ | 
|     animationDelay?: number | AnimationDelayCallback; | 
|     /** | 
|      * Delay of data update animation. | 
|      * Can be a callback to specify duration of each element | 
|      */ | 
|     animationDurationUpdate?: number | AnimationDurationCallback; | 
|     /** | 
|      * Easing of data update animation. | 
|      */ | 
|     animationEasingUpdate?: AnimationEasing; | 
|     /** | 
|      * Delay of data update animation. | 
|      * Can be a callback to specify duration of each element | 
|      */ | 
|     animationDelayUpdate?: number | AnimationDelayCallback; | 
| } | 
| interface RoamOptionMixin { | 
|     /** | 
|      * If enable roam. can be specified 'scale' or 'move' | 
|      */ | 
|     roam?: boolean | 'pan' | 'move' | 'zoom' | 'scale'; | 
|     /** | 
|      * Current center position. | 
|      */ | 
|     center?: (number | string)[]; | 
|     /** | 
|      * Current zoom level. Default is 1 | 
|      */ | 
|     zoom?: number; | 
|     scaleLimit?: { | 
|         min?: number; | 
|         max?: number; | 
|     }; | 
| } | 
| declare type SymbolSizeCallback<T> = (rawValue: any, params: T) => number | number[]; | 
| declare type SymbolCallback<T> = (rawValue: any, params: T) => string; | 
| declare type SymbolRotateCallback<T> = (rawValue: any, params: T) => number; | 
| declare type SymbolOffsetCallback<T> = (rawValue: any, params: T) => string | number | (string | number)[]; | 
| /** | 
|  * Mixin of option set to control the element symbol. | 
|  * Include type of symbol, and size of symbol. | 
|  */ | 
| interface SymbolOptionMixin<T = never> { | 
|     /** | 
|      * type of symbol, like `cirlce`, `rect`, or custom path and image. | 
|      */ | 
|     symbol?: string | (T extends never ? never : SymbolCallback<T>); | 
|     /** | 
|      * Size of symbol. | 
|      */ | 
|     symbolSize?: number | number[] | (T extends never ? never : SymbolSizeCallback<T>); | 
|     symbolRotate?: number | (T extends never ? never : SymbolRotateCallback<T>); | 
|     symbolKeepAspect?: boolean; | 
|     symbolOffset?: string | number | (string | number)[] | (T extends never ? never : SymbolOffsetCallback<T>); | 
| } | 
| /** | 
|  * ItemStyleOption is a most common used set to config element styles. | 
|  * It includes both fill and stroke style. | 
|  */ | 
| interface ItemStyleOption<TCbParams = never> extends ShadowOptionMixin, BorderOptionMixin { | 
|     color?: ZRColor | (TCbParams extends never ? never : ((params: TCbParams) => ZRColor)); | 
|     opacity?: number; | 
|     decal?: DecalObject | 'none'; | 
|     borderRadius?: (number | string)[] | number | string; | 
| } | 
| /** | 
|  * ItemStyleOption is a option set to control styles on lines. | 
|  * Used in the components or series like `line`, `axis` | 
|  * It includes stroke style. | 
|  */ | 
| interface LineStyleOption<Clr = ZRColor> extends ShadowOptionMixin { | 
|     width?: number; | 
|     color?: Clr; | 
|     opacity?: number; | 
|     type?: ZRLineType; | 
|     cap?: CanvasLineCap; | 
|     join?: CanvasLineJoin; | 
|     dashOffset?: number; | 
|     miterLimit?: number; | 
| } | 
| /** | 
|  * ItemStyleOption is a option set to control styles on an area, like polygon, rectangle. | 
|  * It only include fill style. | 
|  */ | 
| interface AreaStyleOption<Clr = ZRColor> extends ShadowOptionMixin { | 
|     color?: Clr; | 
|     opacity?: number; | 
| } | 
| interface VisualOptionUnit { | 
|     symbol?: string; | 
|     symbolSize?: number; | 
|     color?: ColorString; | 
|     colorAlpha?: number; | 
|     opacity?: number; | 
|     colorLightness?: number; | 
|     colorSaturation?: number; | 
|     colorHue?: number; | 
|     decal?: DecalObject; | 
|     liftZ?: number; | 
| } | 
| declare type VisualOptionFixed = VisualOptionUnit; | 
| /** | 
|  * Option about visual properties used in piecewise mapping | 
|  * Used in each piece. | 
|  */ | 
| declare type VisualOptionPiecewise = VisualOptionUnit; | 
| /** | 
|  * All visual properties can be encoded. | 
|  */ | 
| declare type BuiltinVisualProperty = keyof VisualOptionUnit; | 
| interface TextCommonOption extends ShadowOptionMixin { | 
|     color?: string; | 
|     fontStyle?: ZRFontStyle; | 
|     fontWeight?: ZRFontWeight; | 
|     fontFamily?: string; | 
|     fontSize?: number | string; | 
|     align?: HorizontalAlign; | 
|     verticalAlign?: VerticalAlign; | 
|     baseline?: VerticalAlign; | 
|     opacity?: number; | 
|     lineHeight?: number; | 
|     backgroundColor?: ColorString | { | 
|         image: ImageLike | string; | 
|     }; | 
|     borderColor?: string; | 
|     borderWidth?: number; | 
|     borderType?: ZRLineType; | 
|     borderDashOffset?: number; | 
|     borderRadius?: number | number[]; | 
|     padding?: number | number[]; | 
|     width?: number | string; | 
|     height?: number; | 
|     textBorderColor?: string; | 
|     textBorderWidth?: number; | 
|     textBorderType?: ZRLineType; | 
|     textBorderDashOffset?: number; | 
|     textShadowBlur?: number; | 
|     textShadowColor?: string; | 
|     textShadowOffsetX?: number; | 
|     textShadowOffsetY?: number; | 
|     tag?: string; | 
| } | 
| interface LabelFormatterCallback<T = CallbackDataParams> { | 
|     (params: T): string; | 
| } | 
| /** | 
|  * LabelOption is an option set to control the style of labels. | 
|  * Include color, background, shadow, truncate, rotation, distance, etc.. | 
|  */ | 
| interface LabelOption extends TextCommonOption { | 
|     /** | 
|      * If show label | 
|      */ | 
|     show?: boolean; | 
|     position?: ElementTextConfig['position']; | 
|     distance?: number; | 
|     rotate?: number; | 
|     offset?: number[]; | 
|     /** | 
|      * Min margin between labels. Used when label has layout. | 
|      */ | 
|     minMargin?: number; | 
|     overflow?: TextStyleProps['overflow']; | 
|     ellipsis?: TextStyleProps['ellipsis']; | 
|     silent?: boolean; | 
|     precision?: number | 'auto'; | 
|     valueAnimation?: boolean; | 
|     rich?: Dictionary<TextCommonOption>; | 
| } | 
| interface SeriesLabelOption<T extends CallbackDataParams = CallbackDataParams> extends LabelOption { | 
|     formatter?: string | LabelFormatterCallback<T>; | 
| } | 
| /** | 
|  * Option for labels on line, like markLine, lines | 
|  */ | 
| interface LineLabelOption extends Omit<LabelOption, 'distance' | 'position'> { | 
|     position?: 'start' | 'middle' | 'end' | 'insideStart' | 'insideStartTop' | 'insideStartBottom' | 'insideMiddle' | 'insideMiddleTop' | 'insideMiddleBottom' | 'insideEnd' | 'insideEndTop' | 'insideEndBottom' | 'insideMiddleBottom'; | 
|     /** | 
|      * Distance can be an array. | 
|      * Which will specify horizontal and vertical distance respectively | 
|      */ | 
|     distance?: number | number[]; | 
| } | 
| interface LabelLineOption { | 
|     show?: boolean; | 
|     /** | 
|      * If displayed above other elements | 
|      */ | 
|     showAbove?: boolean; | 
|     length?: number; | 
|     length2?: number; | 
|     smooth?: boolean | number; | 
|     minTurnAngle?: number; | 
|     lineStyle?: LineStyleOption; | 
| } | 
| interface SeriesLineLabelOption extends LineLabelOption { | 
|     formatter?: string | LabelFormatterCallback<CallbackDataParams>; | 
| } | 
| interface LabelLayoutOptionCallbackParams { | 
|     /** | 
|      * Index of data which the label represents. | 
|      * It can be null if label doesn't represent any data. | 
|      */ | 
|     dataIndex?: number; | 
|     /** | 
|      * Type of data which the label represents. | 
|      * It can be null if label doesn't represent any data. | 
|      */ | 
|     dataType?: SeriesDataType; | 
|     seriesIndex: number; | 
|     text: string; | 
|     align: ZRTextAlign; | 
|     verticalAlign: ZRTextVerticalAlign; | 
|     rect: RectLike; | 
|     labelRect: RectLike; | 
|     labelLinePoints?: number[][]; | 
| } | 
| interface LabelLayoutOption { | 
|     /** | 
|      * If move the overlapped label. If label is still overlapped after moved. | 
|      * It will determine if to hide this label with `hideOverlap` policy. | 
|      * | 
|      * shiftX/Y will keep the order on x/y | 
|      * shuffleX/y will move the label around the original position randomly. | 
|      */ | 
|     moveOverlap?: 'shiftX' | 'shiftY' | 'shuffleX' | 'shuffleY'; | 
|     /** | 
|      * If hide the overlapped label. It will be handled after move. | 
|      * @default 'none' | 
|      */ | 
|     hideOverlap?: boolean; | 
|     /** | 
|      * If label is draggable. | 
|      */ | 
|     draggable?: boolean; | 
|     /** | 
|      * Can be absolute px number or percent string. | 
|      */ | 
|     x?: number | string; | 
|     y?: number | string; | 
|     /** | 
|      * offset on x based on the original position. | 
|      */ | 
|     dx?: number; | 
|     /** | 
|      * offset on y based on the original position. | 
|      */ | 
|     dy?: number; | 
|     rotate?: number; | 
|     align?: ZRTextAlign; | 
|     verticalAlign?: ZRTextVerticalAlign; | 
|     width?: number; | 
|     height?: number; | 
|     fontSize?: number; | 
|     labelLinePoints?: number[][]; | 
| } | 
| declare type LabelLayoutOptionCallback = (params: LabelLayoutOptionCallbackParams) => LabelLayoutOption; | 
| interface TooltipFormatterCallback<T> { | 
|     /** | 
|      * For sync callback | 
|      * params will be an array on axis trigger. | 
|      */ | 
|     (params: T, asyncTicket: string): string | HTMLElement | HTMLElement[]; | 
|     /** | 
|      * For async callback. | 
|      * Returned html string will be a placeholder when callback is not invoked. | 
|      */ | 
|     (params: T, asyncTicket: string, callback: (cbTicket: string, htmlOrDomNodes: string | HTMLElement | HTMLElement[]) => void): string | HTMLElement | HTMLElement[]; | 
| } | 
| declare type TooltipBuiltinPosition = 'inside' | 'top' | 'left' | 'right' | 'bottom'; | 
| declare type TooltipBoxLayoutOption = Pick<BoxLayoutOptionMixin, 'top' | 'left' | 'right' | 'bottom'>; | 
| declare type TooltipPositionCallbackParams = CallbackDataParams | CallbackDataParams[]; | 
| /** | 
|  * Position relative to the hoverred element. Only available when trigger is item. | 
|  */ | 
| interface TooltipPositionCallback { | 
|     (point: [number, number],  | 
|     /** | 
|      * params will be an array on axis trigger. | 
|      */ | 
|     params: TooltipPositionCallbackParams,  | 
|     /** | 
|      * Will be HTMLDivElement when renderMode is html | 
|      * Otherwise it's graphic.Text | 
|      */ | 
|     el: HTMLDivElement | ZRText | null,  | 
|     /** | 
|      * Rect of hover elements. Will be null if not hovered | 
|      */ | 
|     rect: RectLike | null, size: { | 
|         /** | 
|          * Size of popup content | 
|          */ | 
|         contentSize: [number, number]; | 
|         /** | 
|          * Size of the chart view | 
|          */ | 
|         viewSize: [number, number]; | 
|     }): Array<number | string> | TooltipBuiltinPosition | TooltipBoxLayoutOption; | 
| } | 
| /** | 
|  * Common tooltip option | 
|  * Can be configured on series, graphic elements | 
|  */ | 
| interface CommonTooltipOption<FormatterParams> { | 
|     show?: boolean; | 
|     /** | 
|      * When to trigger | 
|      */ | 
|     triggerOn?: 'mousemove' | 'click' | 'none' | 'mousemove|click'; | 
|     /** | 
|      * Whether to not hide popup content automatically | 
|      */ | 
|     alwaysShowContent?: boolean; | 
|     formatter?: string | TooltipFormatterCallback<FormatterParams>; | 
|     /** | 
|      * Formatter of value. | 
|      * | 
|      * Will be ignored if tooltip.formatter is specified. | 
|      */ | 
|     valueFormatter?: (value: OptionDataValue | OptionDataValue[], dataIndex: number) => string; | 
|     /** | 
|      * Absolution pixel [x, y] array. Or relative percent string [x, y] array. | 
|      * If trigger is 'item'. position can be set to 'inside' / 'top' / 'left' / 'right' / 'bottom', | 
|      * which is relative to the hovered element. | 
|      * | 
|      * Support to be a callback | 
|      */ | 
|     position?: (number | string)[] | TooltipBuiltinPosition | TooltipPositionCallback | TooltipBoxLayoutOption; | 
|     confine?: boolean; | 
|     /** | 
|      * Consider triggered from axisPointer handle, verticalAlign should be 'middle' | 
|      */ | 
|     align?: HorizontalAlign; | 
|     verticalAlign?: VerticalAlign; | 
|     /** | 
|      * Delay of show. milesecond. | 
|      */ | 
|     showDelay?: number; | 
|     /** | 
|      * Delay of hide. milesecond. | 
|      */ | 
|     hideDelay?: number; | 
|     transitionDuration?: number; | 
|     /** | 
|      * Whether mouse is allowed to enter the floating layer of tooltip | 
|      * If you need to interact in the tooltip like with links or buttons, it can be set as true. | 
|      */ | 
|     enterable?: boolean; | 
|     backgroundColor?: ColorString; | 
|     borderColor?: ColorString; | 
|     borderRadius?: number; | 
|     borderWidth?: number; | 
|     shadowBlur?: number; | 
|     shadowColor?: string; | 
|     shadowOffsetX?: number; | 
|     shadowOffsetY?: number; | 
|     /** | 
|      * Padding between tooltip content and tooltip border. | 
|      */ | 
|     padding?: number | number[]; | 
|     /** | 
|      * Available when renderMode is 'html' | 
|      */ | 
|     extraCssText?: string; | 
|     textStyle?: Pick<LabelOption, 'color' | 'fontStyle' | 'fontWeight' | 'fontFamily' | 'fontSize' | 'lineHeight' | 'width' | 'height' | 'textBorderColor' | 'textBorderWidth' | 'textShadowColor' | 'textShadowBlur' | 'textShadowOffsetX' | 'textShadowOffsetY' | 'align'> & { | 
|         decoration?: string; | 
|     }; | 
| } | 
| declare type ComponentItemTooltipOption<T> = CommonTooltipOption<T> & { | 
|     content?: string; | 
|     /** | 
|      * Whether to encode HTML content according to `tooltip.renderMode`. | 
|      * | 
|      * e.g. renderMode 'html' needs to encode but 'richText' does not. | 
|      */ | 
|     encodeHTMLContent?: boolean; | 
|     formatterParams?: ComponentItemTooltipLabelFormatterParams; | 
| }; | 
| declare type ComponentItemTooltipLabelFormatterParams = { | 
|     componentType: string; | 
|     name: string; | 
|     $vars: string[]; | 
| } & { | 
|     [key in string]: unknown; | 
| }; | 
| /** | 
|  * Tooltip option configured on each series | 
|  */ | 
| declare type SeriesTooltipOption = CommonTooltipOption<CallbackDataParams> & { | 
|     trigger?: 'item' | 'axis' | boolean | 'none'; | 
| }; | 
| declare type LabelFormatterParams = { | 
|     value: ScaleDataValue; | 
|     axisDimension: string; | 
|     axisIndex: number; | 
|     seriesData: CallbackDataParams[]; | 
| }; | 
| /** | 
|  * Common axis option. can be configured on each axis | 
|  */ | 
| interface CommonAxisPointerOption { | 
|     show?: boolean | 'auto'; | 
|     z?: number; | 
|     zlevel?: number; | 
|     triggerOn?: 'click' | 'mousemove' | 'none' | 'mousemove|click'; | 
|     type?: 'line' | 'shadow' | 'none'; | 
|     snap?: boolean; | 
|     triggerTooltip?: boolean; | 
|     triggerEmphasis?: boolean; | 
|     /** | 
|      * current value. When using axisPointer.handle, value can be set to define the initial position of axisPointer. | 
|      */ | 
|     value?: ScaleDataValue; | 
|     status?: 'show' | 'hide'; | 
|     label?: LabelOption & { | 
|         precision?: 'auto' | number; | 
|         margin?: number; | 
|         /** | 
|          * String template include variable {value} or callback function | 
|          */ | 
|         formatter?: string | ((params: LabelFormatterParams) => string); | 
|     }; | 
|     animation?: boolean | 'auto'; | 
|     animationDurationUpdate?: number; | 
|     animationEasingUpdate?: ZREasing; | 
|     /** | 
|      * Available when type is 'line' | 
|      */ | 
|     lineStyle?: LineStyleOption; | 
|     /** | 
|      * Available when type is 'shadow' | 
|      */ | 
|     shadowStyle?: AreaStyleOption; | 
|     handle?: { | 
|         show?: boolean; | 
|         icon?: string; | 
|         /** | 
|          * The size of the handle | 
|          */ | 
|         size?: number | number[]; | 
|         /** | 
|          * Distance from handle center to axis. | 
|          */ | 
|         margin?: number; | 
|         color?: ColorString; | 
|         /** | 
|          * Throttle for mobile performance | 
|          */ | 
|         throttle?: number; | 
|     } & ShadowOptionMixin; | 
|     seriesDataIndices?: { | 
|         seriesIndex: number; | 
|         dataIndex: number; | 
|         dataIndexInside: number; | 
|     }[]; | 
| } | 
| interface ComponentOption { | 
|     mainType?: string; | 
|     type?: string; | 
|     id?: OptionId; | 
|     name?: OptionName; | 
|     z?: number; | 
|     zlevel?: number; | 
| } | 
| declare type BlurScope = 'coordinateSystem' | 'series' | 'global'; | 
| /** | 
|  * can be array of data indices. | 
|  * Or may be an dictionary if have different types of data like in graph. | 
|  */ | 
| declare type InnerFocus = DefaultEmphasisFocus | ArrayLike<number> | Dictionary<ArrayLike<number>>; | 
| interface DefaultStatesMixin { | 
|     emphasis?: any; | 
|     select?: any; | 
|     blur?: any; | 
| } | 
| declare type DefaultEmphasisFocus = 'none' | 'self' | 'series'; | 
| interface DefaultStatesMixinEmphasis { | 
|     /** | 
|      * self: Focus self and blur all others. | 
|      * series: Focus series and blur all other series. | 
|      */ | 
|     focus?: DefaultEmphasisFocus; | 
| } | 
| interface StatesMixinBase { | 
|     emphasis?: unknown; | 
|     select?: unknown; | 
|     blur?: unknown; | 
| } | 
| interface StatesOptionMixin<StateOption, StatesMixin extends StatesMixinBase> { | 
|     /** | 
|      * Emphasis states | 
|      */ | 
|     emphasis?: StateOption & StatesMixin['emphasis'] & { | 
|         /** | 
|          * Scope of blurred element when focus. | 
|          * | 
|          * coordinateSystem: blur others in the same coordinateSystem | 
|          * series: blur others in the same series | 
|          * global: blur all others | 
|          * | 
|          * Default to be coordinate system. | 
|          */ | 
|         blurScope?: BlurScope; | 
|         /** | 
|          * If emphasis state is disabled. | 
|          */ | 
|         disabled?: boolean; | 
|     }; | 
|     /** | 
|      * Select states | 
|      */ | 
|     select?: StateOption & StatesMixin['select'] & { | 
|         disabled?: boolean; | 
|     }; | 
|     /** | 
|      * Blur states. | 
|      */ | 
|     blur?: StateOption & StatesMixin['blur']; | 
| } | 
| interface UniversalTransitionOption { | 
|     enabled?: boolean; | 
|     /** | 
|      * Animation delay of each divided element | 
|      */ | 
|     delay?: (index: number, count: number) => number; | 
|     /** | 
|      * How to divide the shape in combine and split animation. | 
|      */ | 
|     divideShape?: 'clone' | 'split'; | 
|     /** | 
|      * Series will have transition between if they have same seriesKey. | 
|      * Usually it is a string. It can also be an array, | 
|      * which means it can be transition from or to multiple series with each key in this array item. | 
|      * | 
|      * Note: | 
|      * If two series have both array seriesKey. They will be compared after concated to a string(which is order independent) | 
|      * Transition between string key has higher priority. | 
|      * | 
|      * Default to use series id. | 
|      */ | 
|     seriesKey?: string | string[]; | 
| } | 
| interface SeriesOption<StateOption = unknown, StatesMixin extends StatesMixinBase = DefaultStatesMixin> extends ComponentOption, AnimationOptionMixin, ColorPaletteOptionMixin, StatesOptionMixin<StateOption, StatesMixin> { | 
|     mainType?: 'series'; | 
|     silent?: boolean; | 
|     blendMode?: string; | 
|     /** | 
|      * Cursor when mouse on the elements | 
|      */ | 
|     cursor?: string; | 
|     /** | 
|      * groupId of data. can be used for doing drilldown / up animation | 
|      * It will be ignored if: | 
|      *  - groupId is specified in each data | 
|      *  - encode.itemGroupId is given. | 
|      */ | 
|     dataGroupId?: OptionId; | 
|     data?: unknown; | 
|     colorBy?: ColorBy; | 
|     legendHoverLink?: boolean; | 
|     /** | 
|      * Configurations about progressive rendering | 
|      */ | 
|     progressive?: number | false; | 
|     progressiveThreshold?: number; | 
|     progressiveChunkMode?: 'mod'; | 
|     /** | 
|      * Not available on every series | 
|      */ | 
|     coordinateSystem?: string; | 
|     hoverLayerThreshold?: number; | 
|     /** | 
|      * When dataset is used, seriesLayoutBy specifies whether the column or the row of dataset is mapped to the series | 
|      * namely, the series is "layout" on columns or rows | 
|      * @default 'column' | 
|      */ | 
|     seriesLayoutBy?: 'column' | 'row'; | 
|     labelLine?: LabelLineOption; | 
|     /** | 
|      * Overall label layout option in label layout stage. | 
|      */ | 
|     labelLayout?: LabelLayoutOption | LabelLayoutOptionCallback; | 
|     /** | 
|      * Animation config for state transition. | 
|      */ | 
|     stateAnimation?: AnimationOption$1; | 
|     /** | 
|      * If enabled universal transition cross series. | 
|      * @example | 
|      *  universalTransition: true | 
|      *  universalTransition: { enabled: true } | 
|      */ | 
|     universalTransition?: boolean | UniversalTransitionOption; | 
|     /** | 
|      * Map of selected data | 
|      * key is name or index of data. | 
|      */ | 
|     selectedMap?: Dictionary<boolean> | 'all'; | 
|     selectedMode?: 'single' | 'multiple' | 'series' | boolean; | 
| } | 
| interface SeriesOnCartesianOptionMixin { | 
|     xAxisIndex?: number; | 
|     yAxisIndex?: number; | 
|     xAxisId?: string; | 
|     yAxisId?: string; | 
| } | 
| interface SeriesOnPolarOptionMixin { | 
|     polarIndex?: number; | 
|     polarId?: string; | 
| } | 
| interface SeriesOnSingleOptionMixin { | 
|     singleAxisIndex?: number; | 
|     singleAxisId?: string; | 
| } | 
| interface SeriesOnGeoOptionMixin { | 
|     geoIndex?: number; | 
|     geoId?: string; | 
| } | 
| interface SeriesOnCalendarOptionMixin { | 
|     calendarIndex?: number; | 
|     calendarId?: string; | 
| } | 
| interface SeriesLargeOptionMixin { | 
|     large?: boolean; | 
|     largeThreshold?: number; | 
| } | 
| interface SeriesStackOptionMixin { | 
|     stack?: string; | 
|     stackStrategy?: 'samesign' | 'all' | 'positive' | 'negative'; | 
| } | 
| declare type SamplingFunc = (frame: ArrayLike<number>) => number; | 
| interface SeriesSamplingOptionMixin { | 
|     sampling?: 'none' | 'average' | 'min' | 'max' | 'minmax' | 'sum' | 'lttb' | SamplingFunc; | 
| } | 
| interface SeriesEncodeOptionMixin { | 
|     datasetIndex?: number; | 
|     datasetId?: string | number; | 
|     seriesLayoutBy?: SeriesLayoutBy; | 
|     sourceHeader?: OptionSourceHeader; | 
|     dimensions?: DimensionDefinitionLoose[]; | 
|     encode?: OptionEncode; | 
| } | 
| interface AriaLabelOption { | 
|     enabled?: boolean; | 
|     description?: string; | 
|     general?: { | 
|         withTitle?: string; | 
|         withoutTitle?: string; | 
|     }; | 
|     series?: { | 
|         maxCount?: number; | 
|         single?: { | 
|             prefix?: string; | 
|             withName?: string; | 
|             withoutName?: string; | 
|         }; | 
|         multiple?: { | 
|             prefix?: string; | 
|             withName?: string; | 
|             withoutName?: string; | 
|             separator?: { | 
|                 middle?: string; | 
|                 end?: string; | 
|             }; | 
|         }; | 
|     }; | 
|     data?: { | 
|         maxCount?: number; | 
|         allData?: string; | 
|         partialData?: string; | 
|         withName?: string; | 
|         withoutName?: string; | 
|         separator?: { | 
|             middle?: string; | 
|             end?: string; | 
|         }; | 
|         excludeDimensionId?: number[]; | 
|     }; | 
| } | 
| interface AriaOption extends AriaLabelOption { | 
|     mainType?: 'aria'; | 
|     enabled?: boolean; | 
|     label?: AriaLabelOption; | 
|     decal?: { | 
|         show?: boolean; | 
|         decals?: DecalObject | DecalObject[]; | 
|     }; | 
| } | 
|   | 
| declare type AreaStyleProps = Pick<PathStyleProps, 'fill' | 'shadowBlur' | 'shadowOffsetX' | 'shadowOffsetY' | 'opacity' | 'shadowColor'>; | 
| declare class AreaStyleMixin { | 
|     getAreaStyle(this: Model, excludes?: readonly (keyof AreaStyleOption)[], includes?: readonly (keyof AreaStyleOption)[]): AreaStyleProps; | 
| } | 
|   | 
| declare type LabelFontOption = Pick<LabelOption, 'fontStyle' | 'fontWeight' | 'fontSize' | 'fontFamily'>; | 
| declare type LabelRectRelatedOption = Pick<LabelOption, 'align' | 'verticalAlign' | 'padding' | 'lineHeight' | 'baseline' | 'rich' | 'width' | 'height' | 'overflow'> & LabelFontOption; | 
| declare class TextStyleMixin { | 
|     /** | 
|      * Get color property or get color from option.textStyle.color | 
|      */ | 
|     getTextColor(this: Model, isEmphasis?: boolean): ColorString; | 
|     /** | 
|      * Create font string from fontStyle, fontWeight, fontSize, fontFamily | 
|      * @return {string} | 
|      */ | 
|     getFont(this: Model<LabelFontOption>): string; | 
|     getTextRect(this: Model<LabelRectRelatedOption> & TextStyleMixin, text: string): BoundingRect; | 
| } | 
|   | 
| interface Model<Opt = ModelOption> extends LineStyleMixin, ItemStyleMixin, TextStyleMixin, AreaStyleMixin { | 
| } | 
| declare class Model<Opt = ModelOption> { | 
|     parentModel: Model; | 
|     ecModel: GlobalModel; | 
|     option: Opt; | 
|     constructor(option?: Opt, parentModel?: Model, ecModel?: GlobalModel); | 
|     init(option: Opt, parentModel?: Model, ecModel?: GlobalModel, ...rest: any): void; | 
|     /** | 
|      * Merge the input option to me. | 
|      */ | 
|     mergeOption(option: Opt, ecModel?: GlobalModel): void; | 
|     get<R extends keyof Opt>(path: R, ignoreParent?: boolean): Opt[R]; | 
|     get<R extends keyof Opt>(path: readonly [R], ignoreParent?: boolean): Opt[R]; | 
|     get<R extends keyof Opt, S extends keyof Opt[R]>(path: readonly [R, S], ignoreParent?: boolean): Opt[R][S]; | 
|     get<R extends keyof Opt, S extends keyof Opt[R], T extends keyof Opt[R][S]>(path: readonly [R, S, T], ignoreParent?: boolean): Opt[R][S][T]; | 
|     getShallow<R extends keyof Opt>(key: R, ignoreParent?: boolean): Opt[R]; | 
|     getModel<R extends keyof Opt>(path: R, parentModel?: Model): Model<Opt[R]>; | 
|     getModel<R extends keyof Opt>(path: readonly [R], parentModel?: Model): Model<Opt[R]>; | 
|     getModel<R extends keyof Opt, S extends keyof Opt[R]>(path: readonly [R, S], parentModel?: Model): Model<Opt[R][S]>; | 
|     getModel<Ra extends keyof Opt, Rb extends keyof Opt, S extends keyof Opt[Rb]>(path: readonly [Ra] | readonly [Rb, S], parentModel?: Model): Model<Opt[Ra]> | Model<Opt[Rb][S]>; | 
|     getModel<R extends keyof Opt, S extends keyof Opt[R], T extends keyof Opt[R][S]>(path: readonly [R, S, T], parentModel?: Model): Model<Opt[R][S][T]>; | 
|     /** | 
|      * If model has option | 
|      */ | 
|     isEmpty(): boolean; | 
|     restoreData(): void; | 
|     clone(): Model<Opt>; | 
|     parsePath(path: string | readonly string[]): readonly string[]; | 
|     resolveParentPath(path: readonly string[]): string[]; | 
|     isAnimationEnabled(): boolean; | 
|     private _doGet; | 
| } | 
|   | 
| /** | 
|  * ECharts option manager | 
|  */ | 
|   | 
| /** | 
|  * TERM EXPLANATIONS: | 
|  * See `ECOption` and `ECUnitOption` in `src/util/types.ts`. | 
|  */ | 
| declare class OptionManager { | 
|     private _api; | 
|     private _timelineOptions; | 
|     private _mediaList; | 
|     private _mediaDefault; | 
|     /** | 
|      * -1, means default. | 
|      * empty means no media. | 
|      */ | 
|     private _currentMediaIndices; | 
|     private _optionBackup; | 
|     private _newBaseOption; | 
|     constructor(api: ExtensionAPI); | 
|     setOption(rawOption: ECBasicOption, optionPreprocessorFuncs: OptionPreprocessor[], opt: InnerSetOptionOpts): void; | 
|     mountOption(isRecreate: boolean): ECUnitOption; | 
|     getTimelineOption(ecModel: GlobalModel): ECUnitOption; | 
|     getMediaOption(ecModel: GlobalModel): ECUnitOption[]; | 
| } | 
|   | 
| declare const _default: { | 
|     time: { | 
|         month: string[]; | 
|         monthAbbr: string[]; | 
|         dayOfWeek: string[]; | 
|         dayOfWeekAbbr: string[]; | 
|     }; | 
|     legend: { | 
|         selector: { | 
|             all: string; | 
|             inverse: string; | 
|         }; | 
|     }; | 
|     toolbox: { | 
|         brush: { | 
|             title: { | 
|                 rect: string; | 
|                 polygon: string; | 
|                 lineX: string; | 
|                 lineY: string; | 
|                 keep: string; | 
|                 clear: string; | 
|             }; | 
|         }; | 
|         dataView: { | 
|             title: string; | 
|             lang: string[]; | 
|         }; | 
|         dataZoom: { | 
|             title: { | 
|                 zoom: string; | 
|                 back: string; | 
|             }; | 
|         }; | 
|         magicType: { | 
|             title: { | 
|                 line: string; | 
|                 bar: string; | 
|                 stack: string; | 
|                 tiled: string; | 
|             }; | 
|         }; | 
|         restore: { | 
|             title: string; | 
|         }; | 
|         saveAsImage: { | 
|             title: string; | 
|             lang: string[]; | 
|         }; | 
|     }; | 
|     series: { | 
|         typeNames: { | 
|             pie: string; | 
|             bar: string; | 
|             line: string; | 
|             scatter: string; | 
|             effectScatter: string; | 
|             radar: string; | 
|             tree: string; | 
|             treemap: string; | 
|             boxplot: string; | 
|             candlestick: string; | 
|             k: string; | 
|             heatmap: string; | 
|             map: string; | 
|             parallel: string; | 
|             lines: string; | 
|             graph: string; | 
|             sankey: string; | 
|             funnel: string; | 
|             gauge: string; | 
|             pictorialBar: string; | 
|             themeRiver: string; | 
|             sunburst: string; | 
|             custom: string; | 
|             chart: string; | 
|         }; | 
|     }; | 
|     aria: { | 
|         general: { | 
|             withTitle: string; | 
|             withoutTitle: string; | 
|         }; | 
|         series: { | 
|             single: { | 
|                 prefix: string; | 
|                 withName: string; | 
|                 withoutName: string; | 
|             }; | 
|             multiple: { | 
|                 prefix: string; | 
|                 withName: string; | 
|                 withoutName: string; | 
|                 separator: { | 
|                     middle: string; | 
|                     end: string; | 
|                 }; | 
|             }; | 
|         }; | 
|         data: { | 
|             allData: string; | 
|             partialData: string; | 
|             withName: string; | 
|             withoutName: string; | 
|             separator: { | 
|                 middle: string; | 
|                 end: string; | 
|             }; | 
|         }; | 
|     }; | 
| }; | 
|   | 
| declare type LocaleOption = typeof _default; | 
| declare function registerLocale(locale: string, localeObj: LocaleOption): void; | 
|   | 
| /** | 
|  * Caution: If the mechanism should be changed some day, these cases | 
|  * should be considered: | 
|  * | 
|  * (1) In `merge option` mode, if using the same option to call `setOption` | 
|  * many times, the result should be the same (try our best to ensure that). | 
|  * (2) In `merge option` mode, if a component has no id/name specified, it | 
|  * will be merged by index, and the result sequence of the components is | 
|  * consistent to the original sequence. | 
|  * (3) In `replaceMerge` mode, keep the result sequence of the components is | 
|  * consistent to the original sequence, even though there might result in "hole". | 
|  * (4) `reset` feature (in toolbox). Find detailed info in comments about | 
|  * `mergeOption` in module:echarts/model/OptionManager. | 
|  */ | 
|   | 
| interface GlobalModelSetOptionOpts { | 
|     replaceMerge: ComponentMainType | ComponentMainType[]; | 
| } | 
| interface InnerSetOptionOpts { | 
|     replaceMergeMainTypeMap: HashMap<boolean, string>; | 
| } | 
| /** | 
|  * @param condition.mainType Mandatory. | 
|  * @param condition.subType Optional. | 
|  * @param condition.query like {xxxIndex, xxxId, xxxName}, | 
|  *        where xxx is mainType. | 
|  *        If query attribute is null/undefined or has no index/id/name, | 
|  *        do not filtering by query conditions, which is convenient for | 
|  *        no-payload situations or when target of action is global. | 
|  * @param condition.filter parameter: component, return boolean. | 
|  */ | 
| interface QueryConditionKindA { | 
|     mainType: ComponentMainType; | 
|     subType?: ComponentSubType; | 
|     query?: { | 
|         [k: string]: number | number[] | string | string[]; | 
|     }; | 
|     filter?: (cmpt: ComponentModel) => boolean; | 
| } | 
| /** | 
|  * If none of index and id and name used, return all components with mainType. | 
|  * @param condition.mainType | 
|  * @param condition.subType If ignore, only query by mainType | 
|  * @param condition.index Either input index or id or name. | 
|  * @param condition.id Either input index or id or name. | 
|  * @param condition.name Either input index or id or name. | 
|  */ | 
| interface QueryConditionKindB { | 
|     mainType: ComponentMainType; | 
|     subType?: ComponentSubType; | 
|     index?: number | number[]; | 
|     id?: OptionId | OptionId[]; | 
|     name?: OptionName | OptionName[]; | 
| } | 
| interface EachComponentAllCallback { | 
|     (mainType: string, model: ComponentModel, componentIndex: number): void; | 
| } | 
| interface EachComponentInMainTypeCallback { | 
|     (model: ComponentModel, componentIndex: number): void; | 
| } | 
| declare class GlobalModel extends Model<ECUnitOption> { | 
|     option: ECUnitOption; | 
|     private _theme; | 
|     private _locale; | 
|     private _optionManager; | 
|     private _componentsMap; | 
|     /** | 
|      * `_componentsMap` might have "hole" because of remove. | 
|      * So save components count for a certain mainType here. | 
|      */ | 
|     private _componentsCount; | 
|     /** | 
|      * Mapping between filtered series list and raw series list. | 
|      * key: filtered series indices, value: raw series indices. | 
|      * Items of `_seriesIndices` never be null/empty/-1. | 
|      * If series has been removed by `replaceMerge`, those series | 
|      * also won't be in `_seriesIndices`, just like be filtered. | 
|      */ | 
|     private _seriesIndices; | 
|     /** | 
|      * Key: seriesIndex. | 
|      * Keep consistent with `_seriesIndices`. | 
|      */ | 
|     private _seriesIndicesMap; | 
|     /** | 
|      * Model for store update payload | 
|      */ | 
|     private _payload; | 
|     scheduler: Scheduler; | 
|     ssr: boolean; | 
|     init(option: ECBasicOption, parentModel: Model, ecModel: GlobalModel, theme: object, locale: object, optionManager: OptionManager): void; | 
|     setOption(option: ECBasicOption, opts: GlobalModelSetOptionOpts, optionPreprocessorFuncs: OptionPreprocessor[]): void; | 
|     /** | 
|      * @param type null/undefined: reset all. | 
|      *        'recreate': force recreate all. | 
|      *        'timeline': only reset timeline option | 
|      *        'media': only reset media query option | 
|      * @return Whether option changed. | 
|      */ | 
|     resetOption(type: 'recreate' | 'timeline' | 'media', opt?: Pick<GlobalModelSetOptionOpts, 'replaceMerge'>): boolean; | 
|     private _resetOption; | 
|     mergeOption(option: ECUnitOption): void; | 
|     private _mergeOption; | 
|     /** | 
|      * Get option for output (cloned option and inner info removed) | 
|      */ | 
|     getOption(): ECUnitOption; | 
|     getTheme(): Model; | 
|     getLocaleModel(): Model<LocaleOption>; | 
|     setUpdatePayload(payload: Payload): void; | 
|     getUpdatePayload(): Payload; | 
|     /** | 
|      * @param idx If not specified, return the first one. | 
|      */ | 
|     getComponent(mainType: ComponentMainType, idx?: number): ComponentModel; | 
|     /** | 
|      * @return Never be null/undefined. | 
|      */ | 
|     queryComponents(condition: QueryConditionKindB): ComponentModel[]; | 
|     /** | 
|      * The interface is different from queryComponents, | 
|      * which is convenient for inner usage. | 
|      * | 
|      * @usage | 
|      * let result = findComponents( | 
|      *     {mainType: 'dataZoom', query: {dataZoomId: 'abc'}} | 
|      * ); | 
|      * let result = findComponents( | 
|      *     {mainType: 'series', subType: 'pie', query: {seriesName: 'uio'}} | 
|      * ); | 
|      * let result = findComponents( | 
|      *     {mainType: 'series', | 
|      *     filter: function (model, index) {...}} | 
|      * ); | 
|      * // result like [component0, componnet1, ...] | 
|      */ | 
|     findComponents(condition: QueryConditionKindA): ComponentModel[]; | 
|     /** | 
|      * Travel components (before filtered). | 
|      * | 
|      * @usage | 
|      * eachComponent('legend', function (legendModel, index) { | 
|      *     ... | 
|      * }); | 
|      * eachComponent(function (componentType, model, index) { | 
|      *     // componentType does not include subType | 
|      *     // (componentType is 'a' but not 'a.b') | 
|      * }); | 
|      * eachComponent( | 
|      *     {mainType: 'dataZoom', query: {dataZoomId: 'abc'}}, | 
|      *     function (model, index) {...} | 
|      * ); | 
|      * eachComponent( | 
|      *     {mainType: 'series', subType: 'pie', query: {seriesName: 'uio'}}, | 
|      *     function (model, index) {...} | 
|      * ); | 
|      */ | 
|     eachComponent<T>(cb: EachComponentAllCallback, context?: T): void; | 
|     eachComponent<T>(mainType: string, cb: EachComponentInMainTypeCallback, context?: T): void; | 
|     eachComponent<T>(mainType: QueryConditionKindA, cb: EachComponentInMainTypeCallback, context?: T): void; | 
|     /** | 
|      * Get series list before filtered by name. | 
|      */ | 
|     getSeriesByName(name: OptionName): SeriesModel[]; | 
|     /** | 
|      * Get series list before filtered by index. | 
|      */ | 
|     getSeriesByIndex(seriesIndex: number): SeriesModel; | 
|     /** | 
|      * Get series list before filtered by type. | 
|      * FIXME: rename to getRawSeriesByType? | 
|      */ | 
|     getSeriesByType(subType: ComponentSubType): SeriesModel[]; | 
|     /** | 
|      * Get all series before filtered. | 
|      */ | 
|     getSeries(): SeriesModel[]; | 
|     /** | 
|      * Count series before filtered. | 
|      */ | 
|     getSeriesCount(): number; | 
|     /** | 
|      * After filtering, series may be different | 
|      * from raw series. | 
|      */ | 
|     eachSeries<T>(cb: (this: T, series: SeriesModel, rawSeriesIndex: number) => void, context?: T): void; | 
|     /** | 
|      * Iterate raw series before filtered. | 
|      * | 
|      * @param {Function} cb | 
|      * @param {*} context | 
|      */ | 
|     eachRawSeries<T>(cb: (this: T, series: SeriesModel, rawSeriesIndex: number) => void, context?: T): void; | 
|     /** | 
|      * After filtering, series may be different. | 
|      * from raw series. | 
|      */ | 
|     eachSeriesByType<T>(subType: ComponentSubType, cb: (this: T, series: SeriesModel, rawSeriesIndex: number) => void, context?: T): void; | 
|     /** | 
|      * Iterate raw series before filtered of given type. | 
|      */ | 
|     eachRawSeriesByType<T>(subType: ComponentSubType, cb: (this: T, series: SeriesModel, rawSeriesIndex: number) => void, context?: T): void; | 
|     isSeriesFiltered(seriesModel: SeriesModel): boolean; | 
|     getCurrentSeriesIndices(): number[]; | 
|     filterSeries<T>(cb: (this: T, series: SeriesModel, rawSeriesIndex: number) => boolean, context?: T): void; | 
|     restoreData(payload?: Payload): void; | 
|     private static internalField; | 
| } | 
| interface GlobalModel extends PaletteMixin<ECUnitOption> { | 
| } | 
|   | 
| interface UpdateLifecycleTransitionSeriesFinder { | 
|     seriesIndex?: ModelFinderIndexQuery; | 
|     seriesId?: ModelFinderIdQuery; | 
|     dimension: DimensionLoose; | 
| } | 
| interface UpdateLifecycleTransitionItem { | 
|     from?: UpdateLifecycleTransitionSeriesFinder | UpdateLifecycleTransitionSeriesFinder[]; | 
|     to: UpdateLifecycleTransitionSeriesFinder | UpdateLifecycleTransitionSeriesFinder[]; | 
| } | 
| declare type UpdateLifecycleTransitionOpt = UpdateLifecycleTransitionItem | UpdateLifecycleTransitionItem[]; | 
| interface UpdateLifecycleParams { | 
|     updatedSeries?: SeriesModel[]; | 
|     /** | 
|      * If this update is from setOption and option is changed. | 
|      */ | 
|     optionChanged?: boolean; | 
|     seriesTransition?: UpdateLifecycleTransitionOpt; | 
| } | 
| interface LifecycleEvents { | 
|     'afterinit': [EChartsType]; | 
|     'series:beforeupdate': [GlobalModel, ExtensionAPI, UpdateLifecycleParams]; | 
|     'series:layoutlabels': [GlobalModel, ExtensionAPI, UpdateLifecycleParams]; | 
|     'series:transition': [GlobalModel, ExtensionAPI, UpdateLifecycleParams]; | 
|     'series:afterupdate': [GlobalModel, ExtensionAPI, UpdateLifecycleParams]; | 
|     'afterupdate': [GlobalModel, ExtensionAPI]; | 
| } | 
|   | 
| declare class GeoJSONResource implements GeoResource { | 
|     readonly type = "geoJSON"; | 
|     private _geoJSON; | 
|     private _specialAreas; | 
|     private _mapName; | 
|     private _parsedMap; | 
|     constructor(mapName: string, geoJSON: GeoJSONSourceInput, specialAreas: GeoSpecialAreas); | 
|     /** | 
|      * @param nameMap can be null/undefined | 
|      * @param nameProperty can be null/undefined | 
|      */ | 
|     load(nameMap: NameMap, nameProperty: string): { | 
|         regions: GeoJSONRegion[]; | 
|         boundingRect: BoundingRect; | 
|         regionsMap: HashMap<GeoJSONRegion, string | number>; | 
|     }; | 
|     private _parseToRegions; | 
|     /** | 
|      * Only for exporting to users. | 
|      * **MUST NOT** used internally. | 
|      */ | 
|     getMapForUser(): { | 
|         geoJson: GeoJSON | GeoJSONCompressed; | 
|         geoJSON: GeoJSON | GeoJSONCompressed; | 
|         specialAreas: GeoSpecialAreas; | 
|     }; | 
| } | 
|   | 
| declare type MapInput = GeoJSONMapInput | SVGMapInput; | 
| interface GeoJSONMapInput { | 
|     geoJSON: GeoJSONSourceInput; | 
|     specialAreas: GeoSpecialAreas; | 
| } | 
| interface SVGMapInput { | 
|     svg: GeoSVGSourceInput; | 
| } | 
| declare const _default$1: { | 
|     /** | 
|      * Compatible with previous `echarts.registerMap`. | 
|      * | 
|      * @usage | 
|      * ```js | 
|      * | 
|      * echarts.registerMap('USA', geoJson, specialAreas); | 
|      * | 
|      * echarts.registerMap('USA', { | 
|      *     geoJson: geoJson, | 
|      *     specialAreas: {...} | 
|      * }); | 
|      * echarts.registerMap('USA', { | 
|      *     geoJSON: geoJson, | 
|      *     specialAreas: {...} | 
|      * }); | 
|      * | 
|      * echarts.registerMap('airport', { | 
|      *     svg: svg | 
|      * } | 
|      * ``` | 
|      * | 
|      * Note: | 
|      * Do not support that register multiple geoJSON or SVG | 
|      * one map name. Because different geoJSON and SVG have | 
|      * different unit. It's not easy to make sure how those | 
|      * units are mapping/normalize. | 
|      * If intending to use multiple geoJSON or SVG, we can | 
|      * use multiple geo coordinate system. | 
|      */ | 
|     registerMap: (mapName: string, rawDef: MapInput | GeoJSONSourceInput, rawSpecialAreas?: GeoSpecialAreas) => void; | 
|     getGeoResource(mapName: string): GeoResource; | 
|     /** | 
|      * Only for exporting to users. | 
|      * **MUST NOT** used internally. | 
|      */ | 
|     getMapForUser: (mapName: string) => ReturnType<GeoJSONResource['getMapForUser']>; | 
|     load: (mapName: string, nameMap: NameMap, nameProperty: string) => ReturnType<GeoResource['load']>; | 
| }; | 
|   | 
| declare type ModelFinder$1 = ModelFinder; | 
| declare const version$1 = "5.6.0"; | 
| declare const dependencies: { | 
|     zrender: string; | 
| }; | 
| declare const PRIORITY: { | 
|     PROCESSOR: { | 
|         FILTER: number; | 
|         SERIES_FILTER: number; | 
|         STATISTIC: number; | 
|     }; | 
|     VISUAL: { | 
|         LAYOUT: number; | 
|         PROGRESSIVE_LAYOUT: number; | 
|         GLOBAL: number; | 
|         CHART: number; | 
|         POST_CHART_LAYOUT: number; | 
|         COMPONENT: number; | 
|         BRUSH: number; | 
|         CHART_ITEM: number; | 
|         ARIA: number; | 
|         DECAL: number; | 
|     }; | 
| }; | 
| declare const IN_MAIN_PROCESS_KEY: "__flagInMainProcess"; | 
| declare const PENDING_UPDATE: "__pendingUpdate"; | 
| declare const STATUS_NEEDS_UPDATE_KEY: "__needsUpdateStatus"; | 
| declare const CONNECT_STATUS_KEY: "__connectUpdateStatus"; | 
| declare type SetOptionTransitionOpt = UpdateLifecycleTransitionOpt; | 
| declare type SetOptionTransitionOptItem = UpdateLifecycleTransitionItem; | 
| interface SetOptionOpts { | 
|     notMerge?: boolean; | 
|     lazyUpdate?: boolean; | 
|     silent?: boolean; | 
|     replaceMerge?: GlobalModelSetOptionOpts['replaceMerge']; | 
|     transition?: SetOptionTransitionOpt; | 
| } | 
| interface ResizeOpts { | 
|     width?: number | 'auto'; | 
|     height?: number | 'auto'; | 
|     animation?: AnimationOption$1; | 
|     silent?: boolean; | 
| } | 
| interface PostIniter { | 
|     (chart: EChartsType): void; | 
| } | 
| declare type RenderedEventParam = { | 
|     elapsedTime: number; | 
| }; | 
| declare type ECEventDefinition = { | 
|     [key in ZRElementEventName]: EventCallbackSingleParam<ECElementEvent>; | 
| } & { | 
|     rendered: EventCallbackSingleParam<RenderedEventParam>; | 
|     finished: () => void | boolean; | 
| } & { | 
|     [key: string]: (...args: unknown[]) => void | boolean; | 
| }; | 
| declare type EChartsInitOpts = { | 
|     locale?: string | LocaleOption; | 
|     renderer?: RendererType; | 
|     devicePixelRatio?: number; | 
|     useDirtyRect?: boolean; | 
|     useCoarsePointer?: boolean; | 
|     pointerSize?: number; | 
|     ssr?: boolean; | 
|     width?: number | string; | 
|     height?: number | string; | 
| }; | 
| declare class ECharts extends Eventful<ECEventDefinition> { | 
|     /** | 
|      * @readonly | 
|      */ | 
|     id: string; | 
|     /** | 
|      * Group id | 
|      * @readonly | 
|      */ | 
|     group: string; | 
|     private _ssr; | 
|     private _zr; | 
|     private _dom; | 
|     private _model; | 
|     private _throttledZrFlush; | 
|     private _theme; | 
|     private _locale; | 
|     private _chartsViews; | 
|     private _chartsMap; | 
|     private _componentsViews; | 
|     private _componentsMap; | 
|     private _coordSysMgr; | 
|     private _api; | 
|     private _scheduler; | 
|     private _messageCenter; | 
|     private _pendingActions; | 
|     protected _$eventProcessor: never; | 
|     private _disposed; | 
|     private _loadingFX; | 
|     private [PENDING_UPDATE]; | 
|     private [IN_MAIN_PROCESS_KEY]; | 
|     private [CONNECT_STATUS_KEY]; | 
|     private [STATUS_NEEDS_UPDATE_KEY]; | 
|     constructor(dom: HTMLElement, theme?: string | ThemeOption, opts?: EChartsInitOpts); | 
|     private _onframe; | 
|     getDom(): HTMLElement; | 
|     getId(): string; | 
|     getZr(): ZRenderType; | 
|     isSSR(): boolean; | 
|     /** | 
|      * Usage: | 
|      * chart.setOption(option, notMerge, lazyUpdate); | 
|      * chart.setOption(option, { | 
|      *     notMerge: ..., | 
|      *     lazyUpdate: ..., | 
|      *     silent: ... | 
|      * }); | 
|      * | 
|      * @param opts opts or notMerge. | 
|      * @param opts.notMerge Default `false`. | 
|      * @param opts.lazyUpdate Default `false`. Useful when setOption frequently. | 
|      * @param opts.silent Default `false`. | 
|      * @param opts.replaceMerge Default undefined. | 
|      */ | 
|     setOption<Opt extends ECBasicOption>(option: Opt, notMerge?: boolean, lazyUpdate?: boolean): void; | 
|     setOption<Opt extends ECBasicOption>(option: Opt, opts?: SetOptionOpts): void; | 
|     /** | 
|      * @deprecated | 
|      */ | 
|     private setTheme; | 
|     private getModel; | 
|     getOption(): ECBasicOption; | 
|     getWidth(): number; | 
|     getHeight(): number; | 
|     getDevicePixelRatio(): number; | 
|     /** | 
|      * Get canvas which has all thing rendered | 
|      * @deprecated Use renderToCanvas instead. | 
|      */ | 
|     getRenderedCanvas(opts?: any): HTMLCanvasElement; | 
|     renderToCanvas(opts?: { | 
|         backgroundColor?: ZRColor; | 
|         pixelRatio?: number; | 
|     }): HTMLCanvasElement; | 
|     renderToSVGString(opts?: { | 
|         useViewBox?: boolean; | 
|     }): string; | 
|     /** | 
|      * Get svg data url | 
|      */ | 
|     getSvgDataURL(): string; | 
|     getDataURL(opts?: { | 
|         type?: 'png' | 'jpeg' | 'svg'; | 
|         pixelRatio?: number; | 
|         backgroundColor?: ZRColor; | 
|         excludeComponents?: ComponentMainType[]; | 
|     }): string; | 
|     getConnectedDataURL(opts?: { | 
|         type?: 'png' | 'jpeg' | 'svg'; | 
|         pixelRatio?: number; | 
|         backgroundColor?: ZRColor; | 
|         connectedBackgroundColor?: ZRColor; | 
|         excludeComponents?: string[]; | 
|     }): string; | 
|     /** | 
|      * Convert from logical coordinate system to pixel coordinate system. | 
|      * See CoordinateSystem#convertToPixel. | 
|      */ | 
|     convertToPixel(finder: ModelFinder$1, value: ScaleDataValue): number; | 
|     convertToPixel(finder: ModelFinder$1, value: ScaleDataValue[]): number[]; | 
|     /** | 
|      * Convert from pixel coordinate system to logical coordinate system. | 
|      * See CoordinateSystem#convertFromPixel. | 
|      */ | 
|     convertFromPixel(finder: ModelFinder$1, value: number): number; | 
|     convertFromPixel(finder: ModelFinder$1, value: number[]): number[]; | 
|     /** | 
|      * Is the specified coordinate systems or components contain the given pixel point. | 
|      * @param {Array|number} value | 
|      * @return {boolean} result | 
|      */ | 
|     containPixel(finder: ModelFinder$1, value: number[]): boolean; | 
|     /** | 
|      * Get visual from series or data. | 
|      * @param finder | 
|      *        If string, e.g., 'series', means {seriesIndex: 0}. | 
|      *        If Object, could contain some of these properties below: | 
|      *        { | 
|      *            seriesIndex / seriesId / seriesName, | 
|      *            dataIndex / dataIndexInside | 
|      *        } | 
|      *        If dataIndex is not specified, series visual will be fetched, | 
|      *        but not data item visual. | 
|      *        If all of seriesIndex, seriesId, seriesName are not specified, | 
|      *        visual will be fetched from first series. | 
|      * @param visualType 'color', 'symbol', 'symbolSize' | 
|      */ | 
|     getVisual(finder: ModelFinder$1, visualType: string): string | number | number[] | PatternObject | LinearGradientObject | RadialGradientObject; | 
|     /** | 
|      * Get view of corresponding component model | 
|      */ | 
|     private getViewOfComponentModel; | 
|     /** | 
|      * Get view of corresponding series model | 
|      */ | 
|     private getViewOfSeriesModel; | 
|     private _initEvents; | 
|     isDisposed(): boolean; | 
|     clear(): void; | 
|     dispose(): void; | 
|     /** | 
|      * Resize the chart | 
|      */ | 
|     resize(opts?: ResizeOpts): void; | 
|     /** | 
|      * Show loading effect | 
|      * @param name 'default' by default | 
|      * @param cfg cfg of registered loading effect | 
|      */ | 
|     showLoading(cfg?: object): void; | 
|     showLoading(name?: string, cfg?: object): void; | 
|     /** | 
|      * Hide loading effect | 
|      */ | 
|     hideLoading(): void; | 
|     makeActionFromEvent(eventObj: ECActionEvent): Payload; | 
|     /** | 
|      * @param opt If pass boolean, means opt.silent | 
|      * @param opt.silent Default `false`. Whether trigger events. | 
|      * @param opt.flush Default `undefined`. | 
|      *        true: Flush immediately, and then pixel in canvas can be fetched | 
|      *            immediately. Caution: it might affect performance. | 
|      *        false: Not flush. | 
|      *        undefined: Auto decide whether perform flush. | 
|      */ | 
|     dispatchAction(payload: Payload, opt?: boolean | { | 
|         silent?: boolean; | 
|         flush?: boolean | undefined; | 
|     }): void; | 
|     updateLabelLayout(): void; | 
|     appendData(params: { | 
|         seriesIndex: number; | 
|         data: any; | 
|     }): void; | 
|     private static internalField; | 
| } | 
| /** | 
|  * @param opts.devicePixelRatio Use window.devicePixelRatio by default | 
|  * @param opts.renderer Can choose 'canvas' or 'svg' to render the chart. | 
|  * @param opts.width Use clientWidth of the input `dom` by default. | 
|  *        Can be 'auto' (the same as null/undefined) | 
|  * @param opts.height Use clientHeight of the input `dom` by default. | 
|  *        Can be 'auto' (the same as null/undefined) | 
|  * @param opts.locale Specify the locale. | 
|  * @param opts.useDirtyRect Enable dirty rectangle rendering or not. | 
|  */ | 
| declare function init$1(dom?: HTMLElement | null, theme?: string | object | null, opts?: EChartsInitOpts): EChartsType; | 
| /** | 
|  * @usage | 
|  * (A) | 
|  * ```js | 
|  * let chart1 = echarts.init(dom1); | 
|  * let chart2 = echarts.init(dom2); | 
|  * chart1.group = 'xxx'; | 
|  * chart2.group = 'xxx'; | 
|  * echarts.connect('xxx'); | 
|  * ``` | 
|  * (B) | 
|  * ```js | 
|  * let chart1 = echarts.init(dom1); | 
|  * let chart2 = echarts.init(dom2); | 
|  * echarts.connect('xxx', [chart1, chart2]); | 
|  * ``` | 
|  */ | 
| declare function connect(groupId: string | EChartsType[]): string; | 
| declare function disconnect(groupId: string): void; | 
| /** | 
|  * Alias and backward compatibility | 
|  * @deprecated | 
|  */ | 
| declare const disConnect: typeof disconnect; | 
| /** | 
|  * Dispose a chart instance | 
|  */ | 
| declare function dispose$1(chart: EChartsType | HTMLElement | string): void; | 
| declare function getInstanceByDom(dom: HTMLElement): EChartsType | undefined; | 
| declare function getInstanceById(key: string): EChartsType | undefined; | 
| /** | 
|  * Register theme | 
|  */ | 
| declare function registerTheme(name: string, theme: ThemeOption): void; | 
| /** | 
|  * Register option preprocessor | 
|  */ | 
| declare function registerPreprocessor(preprocessorFunc: OptionPreprocessor): void; | 
| declare function registerProcessor(priority: number | StageHandler | StageHandlerOverallReset, processor?: StageHandler | StageHandlerOverallReset): void; | 
| /** | 
|  * Register postIniter | 
|  * @param {Function} postInitFunc | 
|  */ | 
| declare function registerPostInit(postInitFunc: PostIniter): void; | 
| /** | 
|  * Register postUpdater | 
|  * @param {Function} postUpdateFunc | 
|  */ | 
| declare function registerPostUpdate(postUpdateFunc: PostUpdater): void; | 
| declare function registerUpdateLifecycle<T extends keyof LifecycleEvents>(name: T, cb: (...args: LifecycleEvents[T]) => void): void; | 
| /** | 
|  * @usage | 
|  * registerAction('someAction', 'someEvent', function () { ... }); | 
|  * registerAction('someAction', function () { ... }); | 
|  * registerAction( | 
|  *     {type: 'someAction', event: 'someEvent', update: 'updateView'}, | 
|  *     function () { ... } | 
|  * ); | 
|  * | 
|  * @param {(string|Object)} actionInfo | 
|  * @param {string} actionInfo.type | 
|  * @param {string} [actionInfo.event] | 
|  * @param {string} [actionInfo.update] | 
|  * @param {string} [eventName] | 
|  * @param {Function} action | 
|  */ | 
| declare function registerAction(type: string, eventName: string, action: ActionHandler): void; | 
| declare function registerAction(type: string, action: ActionHandler): void; | 
| declare function registerAction(actionInfo: ActionInfo, action: ActionHandler): void; | 
| declare function registerCoordinateSystem(type: string, coordSysCreator: CoordinateSystemCreator): void; | 
| /** | 
|  * Get dimensions of specified coordinate system. | 
|  * @param {string} type | 
|  * @return {Array.<string|Object>} | 
|  */ | 
| declare function getCoordinateSystemDimensions(type: string): DimensionDefinitionLoose[]; | 
|   | 
| /** | 
|  * Layout is a special stage of visual encoding | 
|  * Most visual encoding like color are common for different chart | 
|  * But each chart has it's own layout algorithm | 
|  */ | 
| declare function registerLayout(priority: number, layoutTask: StageHandler | StageHandlerOverallReset): void; | 
| declare function registerLayout(layoutTask: StageHandler | StageHandlerOverallReset): void; | 
| declare function registerVisual(priority: number, layoutTask: StageHandler | StageHandlerOverallReset): void; | 
| declare function registerVisual(layoutTask: StageHandler | StageHandlerOverallReset): void; | 
|   | 
| declare function registerLoading(name: string, loadingFx: LoadingEffectCreator): void; | 
| /** | 
|  * ZRender need a canvas context to do measureText. | 
|  * But in node environment canvas may be created by node-canvas. | 
|  * So we need to specify how to create a canvas instead of using document.createElement('canvas') | 
|  * | 
|  * | 
|  * @deprecated use setPlatformAPI({ createCanvas }) instead. | 
|  * | 
|  * @example | 
|  *     let Canvas = require('canvas'); | 
|  *     let echarts = require('echarts'); | 
|  *     echarts.setCanvasCreator(function () { | 
|  *         // Small size is enough. | 
|  *         return new Canvas(32, 32); | 
|  *     }); | 
|  */ | 
| declare function setCanvasCreator(creator: () => HTMLCanvasElement): void; | 
| declare type RegisterMapParams = Parameters<typeof _default$1.registerMap>; | 
| /** | 
|  * The parameters and usage: see `geoSourceManager.registerMap`. | 
|  * Compatible with previous `echarts.registerMap`. | 
|  */ | 
| declare function registerMap(mapName: RegisterMapParams[0], geoJson: RegisterMapParams[1], specialAreas?: RegisterMapParams[2]): void; | 
| declare function getMap(mapName: string): any; | 
| declare const registerTransform: typeof registerExternalTransform; | 
| declare const dataTool: {}; | 
| interface EChartsType extends ECharts { | 
| } | 
|   | 
| declare function parse(colorStr: string, rgbaArr?: number[]): number[]; | 
| declare function lift(color: string, level: number): string; | 
| declare function toHex(color: string): string; | 
| declare function fastLerp(normalizedValue: number, colors: number[][], out?: number[]): number[]; | 
| declare const fastMapToColor: typeof fastLerp; | 
| declare type LerpFullOutput = { | 
|     color: string; | 
|     leftIndex: number; | 
|     rightIndex: number; | 
|     value: number; | 
| }; | 
| declare function lerp$1(normalizedValue: number, colors: string[], fullOutput: boolean): LerpFullOutput; | 
| declare function lerp$1(normalizedValue: number, colors: string[]): string; | 
| declare const mapToColor: typeof lerp$1; | 
| declare function modifyHSL(color: string, h?: number, s?: number, l?: number): string; | 
| declare function modifyAlpha(color: string, alpha?: number): string; | 
| declare function stringify(arrColor: number[], type: string): string; | 
| declare function lum(color: string, backgroundLum: number): number; | 
| declare function random(): string; | 
| declare function liftColor(color: GradientObject): GradientObject; | 
| declare function liftColor(color: string): string; | 
|   | 
| declare const color_d_parse: typeof parse; | 
| declare const color_d_lift: typeof lift; | 
| declare const color_d_toHex: typeof toHex; | 
| declare const color_d_fastLerp: typeof fastLerp; | 
| declare const color_d_fastMapToColor: typeof fastMapToColor; | 
| declare const color_d_mapToColor: typeof mapToColor; | 
| declare const color_d_modifyHSL: typeof modifyHSL; | 
| declare const color_d_modifyAlpha: typeof modifyAlpha; | 
| declare const color_d_stringify: typeof stringify; | 
| declare const color_d_lum: typeof lum; | 
| declare const color_d_random: typeof random; | 
| declare const color_d_liftColor: typeof liftColor; | 
| declare namespace color_d { | 
|   export { | 
|     color_d_parse as parse, | 
|     color_d_lift as lift, | 
|     color_d_toHex as toHex, | 
|     color_d_fastLerp as fastLerp, | 
|     color_d_fastMapToColor as fastMapToColor, | 
|     lerp$1 as lerp, | 
|     color_d_mapToColor as mapToColor, | 
|     color_d_modifyHSL as modifyHSL, | 
|     color_d_modifyAlpha as modifyAlpha, | 
|     color_d_stringify as stringify, | 
|     color_d_lum as lum, | 
|     color_d_random as random, | 
|     color_d_liftColor as liftColor, | 
|   }; | 
| } | 
|   | 
| declare type ThrottleFunction = (this: unknown, ...args: unknown[]) => void; | 
| interface ThrottleController { | 
|     clear(): void; | 
|     debounceNextCall(debounceDelay: number): void; | 
| } | 
| /** | 
|  * @public | 
|  * @param {(Function)} fn | 
|  * @param {number} [delay=0] Unit: ms. | 
|  * @param {boolean} [debounce=false] | 
|  *        true: If call interval less than `delay`, only the last call works. | 
|  *        false: If call interval less than `delay, call works on fixed rate. | 
|  * @return {(Function)} throttled fn. | 
|  */ | 
| declare function throttle<T extends ThrottleFunction>(fn: T, delay?: number, debounce?: boolean): T & ThrottleController; | 
|   | 
| declare type EnableDataStackDimensionsInput = { | 
|     schema: SeriesDataSchema; | 
|     store?: DataStore; | 
| }; | 
| declare type EnableDataStackDimensionsInputLegacy = (SeriesDimensionDefine | string)[]; | 
| /** | 
|  * Note that it is too complicated to support 3d stack by value | 
|  * (have to create two-dimension inverted index), so in 3d case | 
|  * we just support that stacked by index. | 
|  * | 
|  * @param seriesModel | 
|  * @param dimensionsInput The same as the input of <module:echarts/data/SeriesData>. | 
|  *        The input will be modified. | 
|  * @param opt | 
|  * @param opt.stackedCoordDimension Specify a coord dimension if needed. | 
|  * @param opt.byIndex=false | 
|  * @return calculationInfo | 
|  * { | 
|  *     stackedDimension: string | 
|  *     stackedByDimension: string | 
|  *     isStackedByIndex: boolean | 
|  *     stackedOverDimension: string | 
|  *     stackResultDimension: string | 
|  * } | 
|  */ | 
| declare function enableDataStack(seriesModel: SeriesModel<SeriesOption & SeriesStackOptionMixin>, dimensionsInput: EnableDataStackDimensionsInput | EnableDataStackDimensionsInputLegacy, opt?: { | 
|     stackedCoordDimension?: string; | 
|     byIndex?: boolean; | 
| }): Pick<DataCalculationInfo<unknown>, 'stackedDimension' | 'stackedByDimension' | 'isStackedByIndex' | 'stackedOverDimension' | 'stackResultDimension'>; | 
| declare function isDimensionStacked(data: SeriesData, stackedDim: string): boolean; | 
| declare function getStackedDimension(data: SeriesData, targetDim: string): DimensionName; | 
|   | 
| declare type SSRItemType = 'chart' | 'legend'; | 
| /** | 
|  * ECData stored on graphic element | 
|  */ | 
| interface ECData { | 
|     dataIndex?: number; | 
|     dataModel?: DataModel; | 
|     eventData?: ECEventData; | 
|     seriesIndex?: number; | 
|     dataType?: SeriesDataType; | 
|     focus?: InnerFocus; | 
|     blurScope?: BlurScope; | 
|     ssrType?: SSRItemType; | 
|     componentMainType?: ComponentMainType; | 
|     componentIndex?: number; | 
|     componentHighDownName?: string; | 
|     tooltipConfig?: { | 
|         name: string; | 
|         option: ComponentItemTooltipOption<unknown>; | 
|     }; | 
| } | 
| declare const getECData: (hostObj: Element<ElementProps>) => ECData; | 
|   | 
| interface CoordDimensionDefinition extends DimensionDefinition { | 
|     dimsDef?: (DimensionName | { | 
|         name: DimensionName; | 
|         defaultTooltip?: boolean; | 
|     })[]; | 
|     otherDims?: DataVisualDimensions; | 
|     ordinalMeta?: OrdinalMeta; | 
|     coordDim?: DimensionName; | 
|     coordDimIndex?: DimensionIndex; | 
| } | 
| declare type CoordDimensionDefinitionLoose = CoordDimensionDefinition['name'] | CoordDimensionDefinition; | 
| declare type PrepareSeriesDataSchemaParams = { | 
|     coordDimensions?: CoordDimensionDefinitionLoose[]; | 
|     /** | 
|      * Will use `source.dimensionsDefine` if not given. | 
|      */ | 
|     dimensionsDefine?: DimensionDefinitionLoose[]; | 
|     /** | 
|      * Will use `source.encodeDefine` if not given. | 
|      */ | 
|     encodeDefine?: HashMap<OptionEncodeValue, DimensionName> | OptionEncode; | 
|     dimensionsCount?: number; | 
|     /** | 
|      * Make default encode if user not specified. | 
|      */ | 
|     encodeDefaulter?: EncodeDefaulter; | 
|     generateCoord?: string; | 
|     generateCoordCount?: number; | 
|     /** | 
|      * If be able to omit unused dimension | 
|      * Used to improve the performance on high dimension data. | 
|      */ | 
|     canOmitUnusedDimensions?: boolean; | 
| }; | 
| /** | 
|  * For outside usage compat (like echarts-gl are using it). | 
|  */ | 
| declare function createDimensions(source: Source | OptionSourceData, opt?: PrepareSeriesDataSchemaParams): SeriesDimensionDefine[]; | 
|   | 
| /** | 
|  * Enable the function that mouseover will trigger the emphasis state. | 
|  * | 
|  * NOTE: | 
|  * This function should be used on the element with dataIndex, seriesIndex. | 
|  * | 
|  */ | 
| declare function enableHoverEmphasis(el: Element, focus?: InnerFocus, blurScope?: BlurScope): void; | 
|   | 
| /** | 
|  * Create a multi dimension List structure from seriesModel. | 
|  */ | 
| declare function createList(seriesModel: SeriesModel): SeriesData<Model<any>, DefaultDataVisual>; | 
|   | 
| declare const dataStack: { | 
|     isDimensionStacked: typeof isDimensionStacked; | 
|     enableDataStack: typeof enableDataStack; | 
|     getStackedDimension: typeof getStackedDimension; | 
| }; | 
|   | 
| /** | 
|  * Create scale | 
|  * @param {Array.<number>} dataExtent | 
|  * @param {Object|module:echarts/Model} option If `optoin.type` | 
|  *        is secified, it can only be `'value'` currently. | 
|  */ | 
| declare function createScale(dataExtent: number[], option: object | AxisBaseModel): Scale<Dictionary<unknown>>; | 
| /** | 
|  * Mixin common methods to axis model, | 
|  * | 
|  * Include methods | 
|  * `getFormattedLabels() => Array.<string>` | 
|  * `getCategories() => Array.<string>` | 
|  * `getMin(origin: boolean) => number` | 
|  * `getMax(origin: boolean) => number` | 
|  * `getNeedCrossZero() => boolean` | 
|  */ | 
| declare function mixinAxisModelCommonMethods(Model: Model): void; | 
|   | 
| declare function createTextStyle(textStyleModel: Model<TextCommonOption>, opts?: { | 
|     state?: DisplayState; | 
| }): TextStyleProps; | 
|   | 
| declare const helper_d_getLayoutRect: typeof getLayoutRect; | 
| declare const helper_d_getECData: typeof getECData; | 
| declare const helper_d_createList: typeof createList; | 
| declare const helper_d_dataStack: typeof dataStack; | 
| declare const helper_d_createScale: typeof createScale; | 
| declare const helper_d_mixinAxisModelCommonMethods: typeof mixinAxisModelCommonMethods; | 
| declare const helper_d_createTextStyle: typeof createTextStyle; | 
| declare const helper_d_createDimensions: typeof createDimensions; | 
| declare const helper_d_createSymbol: typeof createSymbol; | 
| declare const helper_d_enableHoverEmphasis: typeof enableHoverEmphasis; | 
| declare namespace helper_d { | 
|   export { | 
|     helper_d_getLayoutRect as getLayoutRect, | 
|     helper_d_getECData as getECData, | 
|     helper_d_createList as createList, | 
|     helper_d_dataStack as dataStack, | 
|     helper_d_createScale as createScale, | 
|     helper_d_mixinAxisModelCommonMethods as mixinAxisModelCommonMethods, | 
|     helper_d_createTextStyle as createTextStyle, | 
|     helper_d_createDimensions as createDimensions, | 
|     helper_d_createSymbol as createSymbol, | 
|     helper_d_enableHoverEmphasis as enableHoverEmphasis, | 
|   }; | 
| } | 
|   | 
| interface Platform { | 
|     createCanvas(): HTMLCanvasElement; | 
|     measureText(text: string, font?: string): { | 
|         width: number; | 
|     }; | 
|     loadImage(src: string, onload: () => void | HTMLImageElement['onload'], onerror: () => void | HTMLImageElement['onerror']): HTMLImageElement; | 
| } | 
| declare function setPlatformAPI(newPlatformApis: Partial<Platform>): void; | 
|   | 
| declare function parseGeoJSON(geoJson: GeoJSON | GeoJSONCompressed, nameProperty: string): GeoJSONRegion[]; | 
|   | 
| /** | 
|  * Linear mapping a value from domain to range | 
|  * @param  val | 
|  * @param  domain Domain extent domain[0] can be bigger than domain[1] | 
|  * @param  range  Range extent range[0] can be bigger than range[1] | 
|  * @param  clamp Default to be false | 
|  */ | 
| declare function linearMap(val: number, domain: number[], range: number[], clamp?: boolean): number; | 
| /** | 
|  * (1) Fix rounding error of float numbers. | 
|  * (2) Support return string to avoid scientific notation like '3.5e-7'. | 
|  */ | 
| declare function round(x: number | string, precision?: number): number; | 
| declare function round(x: number | string, precision: number, returnStr: false): number; | 
| declare function round(x: number | string, precision: number, returnStr: true): string; | 
| /** | 
|  * Inplacd asc sort arr. | 
|  * The input arr will be modified. | 
|  */ | 
| declare function asc<T extends number[]>(arr: T): T; | 
| /** | 
|  * Get precision. | 
|  */ | 
| declare function getPrecision(val: string | number): number; | 
| /** | 
|  * Get precision with slow but safe method | 
|  */ | 
| declare function getPrecisionSafe(val: string | number): number; | 
| /** | 
|  * Minimal dicernible data precisioin according to a single pixel. | 
|  */ | 
| declare function getPixelPrecision(dataExtent: [number, number], pixelExtent: [number, number]): number; | 
| /** | 
|  * Get a data of given precision, assuring the sum of percentages | 
|  * in valueList is 1. | 
|  * The largest remainder method is used. | 
|  * https://en.wikipedia.org/wiki/Largest_remainder_method | 
|  * | 
|  * @param valueList a list of all data | 
|  * @param idx index of the data to be processed in valueList | 
|  * @param precision integer number showing digits of precision | 
|  * @return percent ranging from 0 to 100 | 
|  */ | 
| declare function getPercentWithPrecision(valueList: number[], idx: number, precision: number): number; | 
| declare const MAX_SAFE_INTEGER = 9007199254740991; | 
| /** | 
|  * To 0 - 2 * PI, considering negative radian. | 
|  */ | 
| declare function remRadian(radian: number): number; | 
| /** | 
|  * @param {type} radian | 
|  * @return {boolean} | 
|  */ | 
| declare function isRadianAroundZero(val: number): boolean; | 
| /** | 
|  * @param value valid type: number | string | Date, otherwise return `new Date(NaN)` | 
|  *   These values can be accepted: | 
|  *   + An instance of Date, represent a time in its own time zone. | 
|  *   + Or string in a subset of ISO 8601, only including: | 
|  *     + only year, month, date: '2012-03', '2012-03-01', '2012-03-01 05', '2012-03-01 05:06', | 
|  *     + separated with T or space: '2012-03-01T12:22:33.123', '2012-03-01 12:22:33.123', | 
|  *     + time zone: '2012-03-01T12:22:33Z', '2012-03-01T12:22:33+8000', '2012-03-01T12:22:33-05:00', | 
|  *     all of which will be treated as local time if time zone is not specified | 
|  *     (see <https://momentjs.com/>). | 
|  *   + Or other string format, including (all of which will be treated as local time): | 
|  *     '2012', '2012-3-1', '2012/3/1', '2012/03/01', | 
|  *     '2009/6/12 2:00', '2009/6/12 2:05:08', '2009/6/12 2:05:08.123' | 
|  *   + a timestamp, which represent a time in UTC. | 
|  * @return date Never be null/undefined. If invalid, return `new Date(NaN)`. | 
|  */ | 
| declare function parseDate(value: unknown): Date; | 
| /** | 
|  * Quantity of a number. e.g. 0.1, 1, 10, 100 | 
|  * | 
|  * @param val | 
|  * @return | 
|  */ | 
| declare function quantity(val: number): number; | 
| /** | 
|  * Exponent of the quantity of a number | 
|  * e.g., 1234 equals to 1.234*10^3, so quantityExponent(1234) is 3 | 
|  * | 
|  * @param val non-negative value | 
|  * @return | 
|  */ | 
| declare function quantityExponent(val: number): number; | 
| /** | 
|  * find a “nice” number approximately equal to x. Round the number if round = true, | 
|  * take ceiling if round = false. The primary observation is that the “nicest” | 
|  * numbers in decimal are 1, 2, and 5, and all power-of-ten multiples of these numbers. | 
|  * | 
|  * See "Nice Numbers for Graph Labels" of Graphic Gems. | 
|  * | 
|  * @param  val Non-negative value. | 
|  * @param  round | 
|  * @return Niced number | 
|  */ | 
| declare function nice(val: number, round?: boolean): number; | 
| /** | 
|  * This code was copied from "d3.js" | 
|  * <https://github.com/d3/d3/blob/9cc9a875e636a1dcf36cc1e07bdf77e1ad6e2c74/src/arrays/quantile.js>. | 
|  * See the license statement at the head of this file. | 
|  * @param ascArr | 
|  */ | 
| declare function quantile(ascArr: number[], p: number): number; | 
| declare type IntervalItem = { | 
|     interval: [number, number]; | 
|     close: [0 | 1, 0 | 1]; | 
| }; | 
| /** | 
|  * Order intervals asc, and split them when overlap. | 
|  * expect(numberUtil.reformIntervals([ | 
|  *     {interval: [18, 62], close: [1, 1]}, | 
|  *     {interval: [-Infinity, -70], close: [0, 0]}, | 
|  *     {interval: [-70, -26], close: [1, 1]}, | 
|  *     {interval: [-26, 18], close: [1, 1]}, | 
|  *     {interval: [62, 150], close: [1, 1]}, | 
|  *     {interval: [106, 150], close: [1, 1]}, | 
|  *     {interval: [150, Infinity], close: [0, 0]} | 
|  * ])).toEqual([ | 
|  *     {interval: [-Infinity, -70], close: [0, 0]}, | 
|  *     {interval: [-70, -26], close: [1, 1]}, | 
|  *     {interval: [-26, 18], close: [0, 1]}, | 
|  *     {interval: [18, 62], close: [0, 1]}, | 
|  *     {interval: [62, 150], close: [0, 1]}, | 
|  *     {interval: [150, Infinity], close: [0, 0]} | 
|  * ]); | 
|  * @param list, where `close` mean open or close | 
|  *        of the interval, and Infinity can be used. | 
|  * @return The origin list, which has been reformed. | 
|  */ | 
| declare function reformIntervals(list: IntervalItem[]): IntervalItem[]; | 
| /** | 
|  * [Numeric is defined as]: | 
|  *     `parseFloat(val) == val` | 
|  * For example: | 
|  * numeric: | 
|  *     typeof number except NaN, '-123', '123', '2e3', '-2e3', '011', 'Infinity', Infinity, | 
|  *     and they rounded by white-spaces or line-terminal like ' -123 \n ' (see es spec) | 
|  * not-numeric: | 
|  *     null, undefined, [], {}, true, false, 'NaN', NaN, '123ab', | 
|  *     empty string, string with only white-spaces or line-terminal (see es spec), | 
|  *     0x12, '0x12', '-0x12', 012, '012', '-012', | 
|  *     non-string, ... | 
|  * | 
|  * @test See full test cases in `test/ut/spec/util/number.js`. | 
|  * @return Must be a typeof number. If not numeric, return NaN. | 
|  */ | 
| declare function numericToNumber(val: unknown): number; | 
| /** | 
|  * Definition of "numeric": see `numericToNumber`. | 
|  */ | 
| declare function isNumeric(val: unknown): val is number; | 
|   | 
| declare const number_d_linearMap: typeof linearMap; | 
| declare const number_d_round: typeof round; | 
| declare const number_d_asc: typeof asc; | 
| declare const number_d_getPrecision: typeof getPrecision; | 
| declare const number_d_getPrecisionSafe: typeof getPrecisionSafe; | 
| declare const number_d_getPixelPrecision: typeof getPixelPrecision; | 
| declare const number_d_getPercentWithPrecision: typeof getPercentWithPrecision; | 
| declare const number_d_MAX_SAFE_INTEGER: typeof MAX_SAFE_INTEGER; | 
| declare const number_d_remRadian: typeof remRadian; | 
| declare const number_d_isRadianAroundZero: typeof isRadianAroundZero; | 
| declare const number_d_parseDate: typeof parseDate; | 
| declare const number_d_quantity: typeof quantity; | 
| declare const number_d_quantityExponent: typeof quantityExponent; | 
| declare const number_d_nice: typeof nice; | 
| declare const number_d_quantile: typeof quantile; | 
| declare const number_d_reformIntervals: typeof reformIntervals; | 
| declare const number_d_isNumeric: typeof isNumeric; | 
| declare const number_d_numericToNumber: typeof numericToNumber; | 
| declare namespace number_d { | 
|   export { | 
|     number_d_linearMap as linearMap, | 
|     number_d_round as round, | 
|     number_d_asc as asc, | 
|     number_d_getPrecision as getPrecision, | 
|     number_d_getPrecisionSafe as getPrecisionSafe, | 
|     number_d_getPixelPrecision as getPixelPrecision, | 
|     number_d_getPercentWithPrecision as getPercentWithPrecision, | 
|     number_d_MAX_SAFE_INTEGER as MAX_SAFE_INTEGER, | 
|     number_d_remRadian as remRadian, | 
|     number_d_isRadianAroundZero as isRadianAroundZero, | 
|     number_d_parseDate as parseDate, | 
|     number_d_quantity as quantity, | 
|     number_d_quantityExponent as quantityExponent, | 
|     number_d_nice as nice, | 
|     number_d_quantile as quantile, | 
|     number_d_reformIntervals as reformIntervals, | 
|     number_d_isNumeric as isNumeric, | 
|     number_d_numericToNumber as numericToNumber, | 
|   }; | 
| } | 
|   | 
| declare function format(time: unknown, template: string, isUTC: boolean, lang?: string | Model<LocaleOption>): string; | 
|   | 
| declare const time_d_format: typeof format; | 
| declare namespace time_d { | 
|   export { | 
|     parseDate as parse, | 
|     time_d_format as format, | 
|   }; | 
| } | 
|   | 
| declare const graphic_d_extendShape: typeof extendShape; | 
| declare const graphic_d_extendPath: typeof extendPath; | 
| declare const graphic_d_makePath: typeof makePath; | 
| declare const graphic_d_makeImage: typeof makeImage; | 
| declare const graphic_d_resizePath: typeof resizePath; | 
| declare const graphic_d_createIcon: typeof createIcon; | 
| declare const graphic_d_updateProps: typeof updateProps; | 
| declare const graphic_d_initProps: typeof initProps; | 
| declare const graphic_d_getTransform: typeof getTransform; | 
| declare const graphic_d_clipPointsByRect: typeof clipPointsByRect; | 
| declare const graphic_d_clipRectByRect: typeof clipRectByRect; | 
| declare const graphic_d_registerShape: typeof registerShape; | 
| declare const graphic_d_getShapeClass: typeof getShapeClass; | 
| type graphic_d_Group = Group; | 
| declare const graphic_d_Group: typeof Group; | 
| type graphic_d_Circle = Circle; | 
| declare const graphic_d_Circle: typeof Circle; | 
| type graphic_d_Ellipse = Ellipse; | 
| declare const graphic_d_Ellipse: typeof Ellipse; | 
| type graphic_d_Sector = Sector; | 
| declare const graphic_d_Sector: typeof Sector; | 
| type graphic_d_Ring = Ring; | 
| declare const graphic_d_Ring: typeof Ring; | 
| type graphic_d_Polygon = Polygon; | 
| declare const graphic_d_Polygon: typeof Polygon; | 
| type graphic_d_Polyline = Polyline; | 
| declare const graphic_d_Polyline: typeof Polyline; | 
| type graphic_d_Rect = Rect; | 
| declare const graphic_d_Rect: typeof Rect; | 
| type graphic_d_Line = Line; | 
| declare const graphic_d_Line: typeof Line; | 
| type graphic_d_BezierCurve = BezierCurve; | 
| declare const graphic_d_BezierCurve: typeof BezierCurve; | 
| type graphic_d_Arc = Arc; | 
| declare const graphic_d_Arc: typeof Arc; | 
| type graphic_d_IncrementalDisplayable = IncrementalDisplayable; | 
| declare const graphic_d_IncrementalDisplayable: typeof IncrementalDisplayable; | 
| type graphic_d_CompoundPath = CompoundPath; | 
| declare const graphic_d_CompoundPath: typeof CompoundPath; | 
| type graphic_d_LinearGradient = LinearGradient; | 
| declare const graphic_d_LinearGradient: typeof LinearGradient; | 
| type graphic_d_RadialGradient = RadialGradient; | 
| declare const graphic_d_RadialGradient: typeof RadialGradient; | 
| type graphic_d_BoundingRect = BoundingRect; | 
| declare const graphic_d_BoundingRect: typeof BoundingRect; | 
| declare namespace graphic_d { | 
|   export { | 
|     graphic_d_extendShape as extendShape, | 
|     graphic_d_extendPath as extendPath, | 
|     graphic_d_makePath as makePath, | 
|     graphic_d_makeImage as makeImage, | 
|     mergePath$1 as mergePath, | 
|     graphic_d_resizePath as resizePath, | 
|     graphic_d_createIcon as createIcon, | 
|     graphic_d_updateProps as updateProps, | 
|     graphic_d_initProps as initProps, | 
|     graphic_d_getTransform as getTransform, | 
|     graphic_d_clipPointsByRect as clipPointsByRect, | 
|     graphic_d_clipRectByRect as clipRectByRect, | 
|     graphic_d_registerShape as registerShape, | 
|     graphic_d_getShapeClass as getShapeClass, | 
|     graphic_d_Group as Group, | 
|     ZRImage as Image, | 
|     ZRText as Text, | 
|     graphic_d_Circle as Circle, | 
|     graphic_d_Ellipse as Ellipse, | 
|     graphic_d_Sector as Sector, | 
|     graphic_d_Ring as Ring, | 
|     graphic_d_Polygon as Polygon, | 
|     graphic_d_Polyline as Polyline, | 
|     graphic_d_Rect as Rect, | 
|     graphic_d_Line as Line, | 
|     graphic_d_BezierCurve as BezierCurve, | 
|     graphic_d_Arc as Arc, | 
|     graphic_d_IncrementalDisplayable as IncrementalDisplayable, | 
|     graphic_d_CompoundPath as CompoundPath, | 
|     graphic_d_LinearGradient as LinearGradient, | 
|     graphic_d_RadialGradient as RadialGradient, | 
|     graphic_d_BoundingRect as BoundingRect, | 
|   }; | 
| } | 
|   | 
| declare const format_d_addCommas: typeof addCommas; | 
| declare const format_d_toCamelCase: typeof toCamelCase; | 
| declare const format_d_encodeHTML: typeof encodeHTML; | 
| declare const format_d_formatTpl: typeof formatTpl; | 
| declare const format_d_getTooltipMarker: typeof getTooltipMarker; | 
| declare const format_d_formatTime: typeof formatTime; | 
| declare const format_d_capitalFirst: typeof capitalFirst; | 
| declare const format_d_truncateText: typeof truncateText; | 
| declare const format_d_getTextRect: typeof getTextRect; | 
| declare namespace format_d { | 
|   export { | 
|     format_d_addCommas as addCommas, | 
|     format_d_toCamelCase as toCamelCase, | 
|     normalizeCssArray$1 as normalizeCssArray, | 
|     format_d_encodeHTML as encodeHTML, | 
|     format_d_formatTpl as formatTpl, | 
|     format_d_getTooltipMarker as getTooltipMarker, | 
|     format_d_formatTime as formatTime, | 
|     format_d_capitalFirst as capitalFirst, | 
|     format_d_truncateText as truncateText, | 
|     format_d_getTextRect as getTextRect, | 
|   }; | 
| } | 
|   | 
| declare const util_d$1_map: typeof map; | 
| declare const util_d$1_each: typeof each; | 
| declare const util_d$1_indexOf: typeof indexOf; | 
| declare const util_d$1_inherits: typeof inherits; | 
| declare const util_d$1_reduce: typeof reduce; | 
| declare const util_d$1_filter: typeof filter; | 
| declare const util_d$1_bind: typeof bind; | 
| declare const util_d$1_curry: typeof curry; | 
| declare const util_d$1_isArray: typeof isArray; | 
| declare const util_d$1_isString: typeof isString; | 
| declare const util_d$1_isObject: typeof isObject; | 
| declare const util_d$1_isFunction: typeof isFunction; | 
| declare const util_d$1_extend: typeof extend; | 
| declare const util_d$1_defaults: typeof defaults; | 
| declare const util_d$1_clone: typeof clone; | 
| declare const util_d$1_merge: typeof merge; | 
| declare namespace util_d$1 { | 
|   export { | 
|     util_d$1_map as map, | 
|     util_d$1_each as each, | 
|     util_d$1_indexOf as indexOf, | 
|     util_d$1_inherits as inherits, | 
|     util_d$1_reduce as reduce, | 
|     util_d$1_filter as filter, | 
|     util_d$1_bind as bind, | 
|     util_d$1_curry as curry, | 
|     util_d$1_isArray as isArray, | 
|     util_d$1_isString as isString, | 
|     util_d$1_isObject as isObject, | 
|     util_d$1_isFunction as isFunction, | 
|     util_d$1_extend as extend, | 
|     util_d$1_defaults as defaults, | 
|     util_d$1_clone as clone, | 
|     util_d$1_merge as merge, | 
|   }; | 
| } | 
|   | 
| declare class Browser { | 
|     firefox: boolean; | 
|     ie: boolean; | 
|     edge: boolean; | 
|     newEdge: boolean; | 
|     weChat: boolean; | 
|     version: string | number; | 
| } | 
| declare class Env { | 
|     browser: Browser; | 
|     node: boolean; | 
|     wxa: boolean; | 
|     worker: boolean; | 
|     svgSupported: boolean; | 
|     touchEventsSupported: boolean; | 
|     pointerEventsSupported: boolean; | 
|     domSupported: boolean; | 
|     transformSupported: boolean; | 
|     transform3dSupported: boolean; | 
|     hasGlobalWindow: boolean; | 
| } | 
| declare const env: Env; | 
|   | 
| declare function brushSingle(ctx: CanvasRenderingContext2D, el: Displayable): void; | 
|   | 
| declare function extendComponentModel(proto: object): ComponentModel; | 
| declare function extendComponentView(proto: object): ChartView; | 
| declare function extendSeriesModel(proto: object): SeriesModel; | 
| declare function extendChartView(proto: object): ChartView; | 
|   | 
| declare type ParallelLayoutDirection = 'horizontal' | 'vertical'; | 
| interface ParallelCoordinateSystemOption extends ComponentOption, BoxLayoutOptionMixin { | 
|     mainType?: 'parallel'; | 
|     layout?: ParallelLayoutDirection; | 
|     axisExpandable?: boolean; | 
|     axisExpandCenter?: number; | 
|     axisExpandCount?: number; | 
|     axisExpandWidth?: number; | 
|     axisExpandTriggerOn?: 'click' | 'mousemove'; | 
|     axisExpandRate?: number; | 
|     axisExpandDebounce?: number; | 
|     axisExpandSlideTriggerArea?: [number, number, number]; | 
|     axisExpandWindow?: number[]; | 
|     parallelAxisDefault?: ParallelAxisOption; | 
| } | 
|   | 
| declare type ParallelAxisOption = AxisBaseOption & { | 
|     /** | 
|      * 0, 1, 2, ... | 
|      */ | 
|     dim?: number | number[]; | 
|     parallelIndex?: number; | 
|     areaSelectStyle?: { | 
|         width?: number; | 
|         borderWidth?: number; | 
|         borderColor?: ZRColor; | 
|         color?: ZRColor; | 
|         opacity?: number; | 
|     }; | 
|     realtime?: boolean; | 
| }; | 
|   | 
| declare type Dependencies = { | 
|     grid: XAXisOption | YAXisOption | AxisPointerOption; | 
|     polar: AngleAxisOption | RadiusAxisOption; | 
|     parallel: ParallelAxisOption; | 
| }; | 
| declare type DependenciesKeys = keyof Dependencies & string; | 
| declare type Arrayable<T> = T | T[]; | 
| declare type GetMainType<OptionUnion extends ComponentOption> = Exclude<OptionUnion['mainType'], undefined>; | 
| declare type ExtractComponentOption<OptionUnion, ExtractMainType> = OptionUnion extends { | 
|     mainType?: ExtractMainType; | 
| } ? OptionUnion : never; | 
| declare type GetDependency<DependencyOption extends ComponentOption> = { | 
|     [key in GetMainType<DependencyOption>]?: Arrayable<ExtractComponentOption<DependencyOption, key>>; | 
| }; | 
| declare type GetDependencies<MainType extends string> = GetDependency<Dependencies[Extract<MainType, DependenciesKeys>]>; | 
| declare type ComposeUnitOption<OptionUnion extends ComponentOption> = CheckMainType<GetMainType<OptionUnion>> & Omit<ECBasicOption, 'baseOption' | 'options'> & { | 
|     [key in GetMainType<OptionUnion>]?: Arrayable<ExtractComponentOption<OptionUnion, key>>; | 
| } & GetDependencies<GetMainType<OptionUnion>>; | 
| declare type CheckMainType<OptionUnionMainType extends string> = string extends OptionUnionMainType ? never : {}; | 
| declare type ComposeOption<OptionUnion extends ComponentOption> = ComposeUnitOption<OptionUnion> & { | 
|     baseOption?: ComposeUnitOption<OptionUnion>; | 
|     options?: ComposeUnitOption<OptionUnion>[]; | 
| }; | 
|   | 
| interface RadarIndicatorOption { | 
|     name?: string; | 
|     /** | 
|      * @deprecated Use `name` instead. | 
|      */ | 
|     text?: string; | 
|     min?: number; | 
|     max?: number; | 
|     color?: ColorString; | 
|     axisType?: 'value' | 'log'; | 
| } | 
| interface RadarOption extends ComponentOption, CircleLayoutOptionMixin { | 
|     mainType?: 'radar'; | 
|     startAngle?: number; | 
|     shape?: 'polygon' | 'circle'; | 
|     axisLine?: AxisBaseOption['axisLine']; | 
|     axisTick?: AxisBaseOption['axisTick']; | 
|     axisLabel?: AxisBaseOption['axisLabel']; | 
|     splitLine?: AxisBaseOption['splitLine']; | 
|     splitArea?: AxisBaseOption['splitArea']; | 
|     axisName?: { | 
|         show?: boolean; | 
|         formatter?: string | ((name?: string, indicatorOpt?: InnerIndicatorAxisOption) => string); | 
|     } & LabelOption; | 
|     axisNameGap?: number; | 
|     triggerEvent?: boolean; | 
|     scale?: boolean; | 
|     splitNumber?: number; | 
|     boundaryGap?: CategoryAxisBaseOption['boundaryGap'] | ValueAxisBaseOption['boundaryGap']; | 
|     indicator?: RadarIndicatorOption[]; | 
| } | 
| declare type InnerIndicatorAxisOption = AxisBaseOption & { | 
|     showName?: boolean; | 
| }; | 
|   | 
| declare type SingleAxisPosition = 'top' | 'bottom' | 'left' | 'right'; | 
| declare type SingleAxisOption = AxisBaseOption & BoxLayoutOptionMixin & { | 
|     mainType?: 'singleAxis'; | 
|     position?: SingleAxisPosition; | 
|     orient?: LayoutOrient; | 
| }; | 
|   | 
| interface CalendarMonthLabelFormatterCallbackParams { | 
|     nameMap: string; | 
|     yyyy: string; | 
|     yy: string; | 
|     /** | 
|      * Month string. With 0 prefix. | 
|      */ | 
|     MM: string; | 
|     /** | 
|      * Month number | 
|      */ | 
|     M: number; | 
| } | 
| interface CalendarYearLabelFormatterCallbackParams { | 
|     nameMap: string; | 
|     /** | 
|      * Start year | 
|      */ | 
|     start: string; | 
|     /** | 
|      * End year | 
|      */ | 
|     end: string; | 
| } | 
| interface CalendarOption extends ComponentOption, BoxLayoutOptionMixin { | 
|     mainType?: 'calendar'; | 
|     cellSize?: number | 'auto' | (number | 'auto')[]; | 
|     orient?: LayoutOrient; | 
|     splitLine?: { | 
|         show?: boolean; | 
|         lineStyle?: LineStyleOption; | 
|     }; | 
|     itemStyle?: ItemStyleOption; | 
|     /** | 
|      * // one year | 
|      * range: 2017 | 
|      * // one month | 
|      * range: '2017-02' | 
|      * //  a range | 
|      * range: ['2017-01-02', '2017-02-23'] | 
|      * // note: they will be identified as ['2017-01-01', '2017-02-01'] | 
|      * range: ['2017-01', '2017-02'] | 
|      */ | 
|     range?: OptionDataValueDate | (OptionDataValueDate)[]; | 
|     dayLabel?: Omit<LabelOption, 'position'> & { | 
|         /** | 
|          * First day of week. | 
|          */ | 
|         firstDay?: number; | 
|         /** | 
|          * Margin between day label and axis line. | 
|          * Can be percent string of cell size. | 
|          */ | 
|         margin?: number | string; | 
|         /** | 
|          * Position of week, at the beginning or end of the range. | 
|          */ | 
|         position?: 'start' | 'end'; | 
|         /** | 
|          * Week text content | 
|          * | 
|          * defaults to auto-detected locale by the browser or the specified locale by `echarts.init` function. | 
|          * It supports any registered locale name (case-sensitive) or customized array. | 
|          * index 0 always means Sunday. | 
|          */ | 
|         nameMap?: string | string[]; | 
|     }; | 
|     monthLabel?: Omit<LabelOption, 'position'> & { | 
|         /** | 
|          * Margin between month label and axis line. | 
|          */ | 
|         margin?: number; | 
|         /** | 
|          * Position of month label, at the beginning or end of the range. | 
|          */ | 
|         position?: 'start' | 'end'; | 
|         /** | 
|          * Month text content | 
|          * | 
|          * defaults to auto-detected locale by the browser or the specified locale by `echarts.init` function. | 
|          * It supports any registered locale name (case-sensitive) or customized array. | 
|          * index 0 always means Jan. | 
|          */ | 
|         nameMap?: string | string[]; | 
|         formatter?: string | ((params: CalendarMonthLabelFormatterCallbackParams) => string); | 
|     }; | 
|     yearLabel?: Omit<LabelOption, 'position'> & { | 
|         /** | 
|          * Margin between year label and axis line. | 
|          */ | 
|         margin?: number; | 
|         /** | 
|          * Position of year label, at the beginning or end of the range. | 
|          */ | 
|         position?: 'top' | 'bottom' | 'left' | 'right'; | 
|         formatter?: string | ((params: CalendarYearLabelFormatterCallbackParams) => string); | 
|     }; | 
| } | 
|   | 
| declare type IconStyle = ItemStyleOption & { | 
|     textFill?: LabelOption['color']; | 
|     textBackgroundColor?: LabelOption['backgroundColor']; | 
|     textPosition?: LabelOption['position']; | 
|     textAlign?: LabelOption['align']; | 
|     textBorderRadius?: LabelOption['borderRadius']; | 
|     textPadding?: LabelOption['padding']; | 
|     textFontFamily?: LabelOption['fontFamily']; | 
|     textFontSize?: LabelOption['fontSize']; | 
|     textFontWeight?: LabelOption['fontWeight']; | 
|     textFontStyle?: LabelOption['fontStyle']; | 
| }; | 
| interface ToolboxFeatureOption { | 
|     show?: boolean; | 
|     title?: string | Partial<Dictionary<string>>; | 
|     icon?: string | Partial<Dictionary<string>>; | 
|     iconStyle?: IconStyle; | 
|     emphasis?: { | 
|         iconStyle?: IconStyle; | 
|     }; | 
|     iconStatus?: Partial<Dictionary<DisplayState>>; | 
|     onclick?: () => void; | 
| } | 
|   | 
| interface ToolboxTooltipFormatterParams { | 
|     componentType: 'toolbox'; | 
|     name: string; | 
|     title: string; | 
|     $vars: ['name', 'title']; | 
| } | 
| interface ToolboxOption extends ComponentOption, BoxLayoutOptionMixin, BorderOptionMixin { | 
|     mainType?: 'toolbox'; | 
|     show?: boolean; | 
|     orient?: LayoutOrient; | 
|     backgroundColor?: ZRColor; | 
|     borderRadius?: number | number[]; | 
|     padding?: number | number[]; | 
|     itemSize?: number; | 
|     itemGap?: number; | 
|     showTitle?: boolean; | 
|     iconStyle?: ItemStyleOption; | 
|     emphasis?: { | 
|         iconStyle?: ItemStyleOption; | 
|     }; | 
|     textStyle?: LabelOption; | 
|     tooltip?: CommonTooltipOption<ToolboxTooltipFormatterParams>; | 
|     /** | 
|      * Write all supported features in the final export option. | 
|      */ | 
|     feature?: Partial<Dictionary<ToolboxFeatureOption>>; | 
| } | 
|   | 
| interface TitleOption extends ComponentOption, BoxLayoutOptionMixin, BorderOptionMixin { | 
|     mainType?: 'title'; | 
|     show?: boolean; | 
|     text?: string; | 
|     /** | 
|      * Link to url | 
|      */ | 
|     link?: string; | 
|     target?: 'self' | 'blank'; | 
|     subtext?: string; | 
|     sublink?: string; | 
|     subtarget?: 'self' | 'blank'; | 
|     textAlign?: ZRTextAlign; | 
|     textVerticalAlign?: ZRTextVerticalAlign; | 
|     /** | 
|      * @deprecated Use textVerticalAlign instead | 
|      */ | 
|     textBaseline?: ZRTextVerticalAlign; | 
|     backgroundColor?: ZRColor; | 
|     /** | 
|      * Padding between text and border. | 
|      * Support to be a single number or an array. | 
|      */ | 
|     padding?: number | number[]; | 
|     /** | 
|      * Gap between text and subtext | 
|      */ | 
|     itemGap?: number; | 
|     textStyle?: LabelOption; | 
|     subtextStyle?: LabelOption; | 
|     /** | 
|      * If trigger mouse or touch event | 
|      */ | 
|     triggerEvent?: boolean; | 
|     /** | 
|      * Radius of background border. | 
|      */ | 
|     borderRadius?: number | number[]; | 
| } | 
|   | 
| interface TimelineControlStyle extends ItemStyleOption { | 
|     show?: boolean; | 
|     showPlayBtn?: boolean; | 
|     showPrevBtn?: boolean; | 
|     showNextBtn?: boolean; | 
|     itemSize?: number; | 
|     itemGap?: number; | 
|     position?: 'left' | 'right' | 'top' | 'bottom'; | 
|     playIcon?: string; | 
|     stopIcon?: string; | 
|     prevIcon?: string; | 
|     nextIcon?: string; | 
|     playBtnSize?: number | string; | 
|     stopBtnSize?: number | string; | 
|     nextBtnSize?: number | string; | 
|     prevBtnSize?: number | string; | 
| } | 
| interface TimelineCheckpointStyle extends ItemStyleOption, SymbolOptionMixin { | 
|     animation?: boolean; | 
|     animationDuration?: number; | 
|     animationEasing?: ZREasing; | 
| } | 
| interface TimelineLineStyleOption extends LineStyleOption { | 
|     show?: boolean; | 
| } | 
| interface TimelineLabelOption extends Omit<LabelOption, 'position'> { | 
|     show?: boolean; | 
|     position?: 'auto' | 'left' | 'right' | 'top' | 'bottom' | number; | 
|     interval?: 'auto' | number; | 
|     formatter?: string | ((value: string | number, index: number) => string); | 
| } | 
| interface TimelineDataItemOption extends SymbolOptionMixin { | 
|     value?: OptionDataValue; | 
|     itemStyle?: ItemStyleOption; | 
|     label?: TimelineLabelOption; | 
|     checkpointStyle?: TimelineCheckpointStyle; | 
|     emphasis?: { | 
|         itemStyle?: ItemStyleOption; | 
|         label?: TimelineLabelOption; | 
|         checkpointStyle?: TimelineCheckpointStyle; | 
|     }; | 
|     progress?: { | 
|         lineStyle?: TimelineLineStyleOption; | 
|         itemStyle?: ItemStyleOption; | 
|         label?: TimelineLabelOption; | 
|     }; | 
|     tooltip?: boolean; | 
| } | 
| interface TimelineOption extends ComponentOption, BoxLayoutOptionMixin, SymbolOptionMixin { | 
|     mainType?: 'timeline'; | 
|     backgroundColor?: ZRColor; | 
|     borderColor?: ColorString; | 
|     borderWidth?: number; | 
|     tooltip?: CommonTooltipOption<CallbackDataParams> & { | 
|         trigger?: 'item'; | 
|     }; | 
|     show?: boolean; | 
|     axisType?: 'category' | 'time' | 'value'; | 
|     currentIndex?: number; | 
|     autoPlay?: boolean; | 
|     rewind?: boolean; | 
|     loop?: boolean; | 
|     playInterval?: number; | 
|     realtime?: boolean; | 
|     controlPosition?: 'left' | 'right' | 'top' | 'bottom'; | 
|     padding?: number | number[]; | 
|     orient?: LayoutOrient; | 
|     inverse?: boolean; | 
|     replaceMerge?: GlobalModelSetOptionOpts['replaceMerge']; | 
|     lineStyle?: TimelineLineStyleOption; | 
|     itemStyle?: ItemStyleOption; | 
|     checkpointStyle?: TimelineCheckpointStyle; | 
|     controlStyle?: TimelineControlStyle; | 
|     label?: TimelineLabelOption; | 
|     emphasis?: { | 
|         lineStyle?: TimelineLineStyleOption; | 
|         itemStyle?: ItemStyleOption; | 
|         checkpointStyle?: TimelineCheckpointStyle; | 
|         controlStyle?: TimelineControlStyle; | 
|         label?: TimelineLabelOption; | 
|     }; | 
|     progress?: { | 
|         lineStyle?: TimelineLineStyleOption; | 
|         itemStyle?: ItemStyleOption; | 
|         label?: TimelineLabelOption; | 
|     }; | 
|     data?: (OptionDataValue | TimelineDataItemOption)[]; | 
| } | 
|   | 
| interface SliderTimelineOption extends TimelineOption { | 
| } | 
|   | 
| interface ScrollableLegendOption extends LegendOption { | 
|     scrollDataIndex?: number; | 
|     /** | 
|      * Gap between each page button | 
|      */ | 
|     pageButtonItemGap?: number; | 
|     /** | 
|      * Gap between page buttons group and legend items. | 
|      */ | 
|     pageButtonGap?: number; | 
|     pageButtonPosition?: 'start' | 'end'; | 
|     pageFormatter?: string | ((param: { | 
|         current: number; | 
|         total: number; | 
|     }) => string); | 
|     pageIcons?: { | 
|         horizontal?: string[]; | 
|         vertical?: string[]; | 
|     }; | 
|     pageIconColor?: ZRColor; | 
|     pageIconInactiveColor?: ZRColor; | 
|     pageIconSize?: number; | 
|     pageTextStyle?: LabelOption; | 
|     animationDurationUpdate?: number; | 
| } | 
|   | 
| interface DataZoomOption extends ComponentOption { | 
|     mainType?: 'dataZoom'; | 
|     /** | 
|      * Default auto by axisIndex | 
|      */ | 
|     orient?: LayoutOrient; | 
|     /** | 
|      * Default the first horizontal category axis. | 
|      */ | 
|     xAxisIndex?: number | number[]; | 
|     xAxisId?: string | string[]; | 
|     /** | 
|      * Default the first vertical category axis. | 
|      */ | 
|     yAxisIndex?: number | number[]; | 
|     yAxisId?: string | string[]; | 
|     radiusAxisIndex?: number | number[]; | 
|     radiusAxisId?: string | string[]; | 
|     angleAxisIndex?: number | number[]; | 
|     angleAxisId?: string | string[]; | 
|     singleAxisIndex?: number | number[]; | 
|     singleAxisId?: string | string[]; | 
|     /** | 
|      * Possible values: 'filter' or 'empty' or 'weakFilter'. | 
|      * 'filter': data items which are out of window will be removed. This option is | 
|      *         applicable when filtering outliers. For each data item, it will be | 
|      *         filtered if one of the relevant dimensions is out of the window. | 
|      * 'weakFilter': data items which are out of window will be removed. This option | 
|      *         is applicable when filtering outliers. For each data item, it will be | 
|      *         filtered only if all  of the relevant dimensions are out of the same | 
|      *         side of the window. | 
|      * 'empty': data items which are out of window will be set to empty. | 
|      *         This option is applicable when user should not neglect | 
|      *         that there are some data items out of window. | 
|      * 'none': Do not filter. | 
|      * Taking line chart as an example, line will be broken in | 
|      * the filtered points when filterModel is set to 'empty', but | 
|      * be connected when set to 'filter'. | 
|      */ | 
|     filterMode?: 'filter' | 'weakFilter' | 'empty' | 'none'; | 
|     /** | 
|      * Dispatch action by the fixed rate, avoid frequency. | 
|      * default 100. Do not throttle when use null/undefined. | 
|      * If animation === true and animationDurationUpdate > 0, | 
|      * default value is 100, otherwise 20. | 
|      */ | 
|     throttle?: number | null | undefined; | 
|     /** | 
|      * Start percent. 0 ~ 100 | 
|      */ | 
|     start?: number; | 
|     /** | 
|      * End percent. 0 ~ 100 | 
|      */ | 
|     end?: number; | 
|     /** | 
|      * Start value. If startValue specified, start is ignored | 
|      */ | 
|     startValue?: number | string | Date; | 
|     /** | 
|      * End value. If endValue specified, end is ignored. | 
|      */ | 
|     endValue?: number | string | Date; | 
|     /** | 
|      * Min span percent, 0 - 100 | 
|      * The range of dataZoom can not be smaller than that. | 
|      */ | 
|     minSpan?: number; | 
|     /** | 
|      * Max span percent, 0 - 100 | 
|      * The range of dataZoom can not be larger than that. | 
|      */ | 
|     maxSpan?: number; | 
|     minValueSpan?: number; | 
|     maxValueSpan?: number; | 
|     rangeMode?: ['value' | 'percent', 'value' | 'percent']; | 
|     realtime?: boolean; | 
|     textStyle?: LabelOption; | 
| } | 
|   | 
| interface SliderHandleLabelOption { | 
|     show?: boolean; | 
| } | 
| interface SliderDataZoomOption extends DataZoomOption, BoxLayoutOptionMixin { | 
|     show?: boolean; | 
|     /** | 
|      * Slider dataZoom don't support textStyle | 
|      */ | 
|     /** | 
|      * Background of slider zoom component | 
|      */ | 
|     backgroundColor?: ZRColor; | 
|     /** | 
|      * @deprecated Use borderColor instead | 
|      */ | 
|     /** | 
|      * border color of the box. For compatibility, | 
|      * if dataBackgroundColor is set, borderColor | 
|      * is ignored. | 
|      */ | 
|     borderColor?: ZRColor; | 
|     /** | 
|      * Border radius of the box. | 
|      */ | 
|     borderRadius?: number | number[]; | 
|     dataBackground?: { | 
|         lineStyle?: LineStyleOption; | 
|         areaStyle?: AreaStyleOption; | 
|     }; | 
|     selectedDataBackground?: { | 
|         lineStyle?: LineStyleOption; | 
|         areaStyle?: AreaStyleOption; | 
|     }; | 
|     /** | 
|      * Color of selected area. | 
|      */ | 
|     fillerColor?: ZRColor; | 
|     /** | 
|      * @deprecated Use handleStyle instead | 
|      */ | 
|     handleIcon?: string; | 
|     handleLabel?: SliderHandleLabelOption; | 
|     /** | 
|      * number: height of icon. width will be calculated according to the aspect of icon. | 
|      * string: percent of the slider height. width will be calculated according to the aspect of icon. | 
|      */ | 
|     handleSize?: string | number; | 
|     handleStyle?: ItemStyleOption; | 
|     /** | 
|      * Icon to indicate it is a draggable panel. | 
|      */ | 
|     moveHandleIcon?: string; | 
|     moveHandleStyle?: ItemStyleOption; | 
|     /** | 
|      * Height of handle rect. Can be a percent string relative to the slider height. | 
|      */ | 
|     moveHandleSize?: number; | 
|     labelPrecision?: number | 'auto'; | 
|     labelFormatter?: string | ((value: number, valueStr: string) => string); | 
|     showDetail?: boolean; | 
|     showDataShadow?: 'auto' | boolean; | 
|     zoomLock?: boolean; | 
|     textStyle?: LabelOption; | 
|     /** | 
|      * If eable select by brushing | 
|      */ | 
|     brushSelect?: boolean; | 
|     brushStyle?: ItemStyleOption; | 
|     emphasis?: { | 
|         handleLabel: SliderHandleLabelOption; | 
|         handleStyle?: ItemStyleOption; | 
|         moveHandleStyle?: ItemStyleOption; | 
|     }; | 
| } | 
|   | 
| interface InsideDataZoomOption extends DataZoomOption { | 
|     /** | 
|      * Whether disable this inside zoom. | 
|      */ | 
|     disabled?: boolean; | 
|     /** | 
|      * Whether disable zoom but only pan. | 
|      */ | 
|     zoomLock?: boolean; | 
|     zoomOnMouseWheel?: boolean | 'shift' | 'ctrl' | 'alt'; | 
|     moveOnMouseMove?: boolean | 'shift' | 'ctrl' | 'alt'; | 
|     moveOnMouseWheel?: boolean | 'shift' | 'ctrl' | 'alt'; | 
|     preventDefaultMouseMove?: boolean; | 
|     /** | 
|      * Inside dataZoom don't support textStyle | 
|      */ | 
|     textStyle?: never; | 
| } | 
|   | 
| interface ContinousVisualMapOption extends VisualMapOption { | 
|     align?: 'auto' | 'left' | 'right' | 'top' | 'bottom'; | 
|     /** | 
|      * This prop effect default component type determine | 
|      * @see echarts/component/visualMap/typeDefaulter. | 
|      */ | 
|     calculable?: boolean; | 
|     /** | 
|      * selected range. In default case `range` is [min, max] | 
|      * and can auto change along with modification of min max, | 
|      * until user specified a range. | 
|      */ | 
|     range?: number[]; | 
|     /** | 
|      * Whether to enable hover highlight. | 
|      */ | 
|     hoverLink?: boolean; | 
|     /** | 
|      * The extent of hovered data. | 
|      */ | 
|     hoverLinkDataSize?: number; | 
|     /** | 
|      * Whether trigger hoverLink when hover handle. | 
|      * If not specified, follow the value of `realtime`. | 
|      */ | 
|     hoverLinkOnHandle?: boolean; | 
|     handleIcon?: string; | 
|     handleSize?: string | number; | 
|     handleStyle?: ItemStyleOption; | 
|     indicatorIcon?: string; | 
|     indicatorSize?: string | number; | 
|     indicatorStyle?: ItemStyleOption; | 
|     emphasis?: { | 
|         handleStyle?: ItemStyleOption; | 
|     }; | 
| } | 
|   | 
| interface VisualPiece extends VisualOptionPiecewise { | 
|     min?: number; | 
|     max?: number; | 
|     lt?: number; | 
|     gt?: number; | 
|     lte?: number; | 
|     gte?: number; | 
|     value?: number; | 
|     label?: string; | 
| } | 
| /** | 
|  * Order Rule: | 
|  * | 
|  * option.categories / option.pieces / option.text / option.selected: | 
|  *     If !option.inverse, | 
|  *     Order when vertical: ['top', ..., 'bottom']. | 
|  *     Order when horizontal: ['left', ..., 'right']. | 
|  *     If option.inverse, the meaning of | 
|  *     the order should be reversed. | 
|  * | 
|  * this._pieceList: | 
|  *     The order is always [low, ..., high]. | 
|  * | 
|  * Mapping from location to low-high: | 
|  *     If !option.inverse | 
|  *     When vertical, top is high. | 
|  *     When horizontal, right is high. | 
|  *     If option.inverse, reverse. | 
|  */ | 
| interface PiecewiseVisualMapOption extends VisualMapOption { | 
|     align?: 'auto' | 'left' | 'right'; | 
|     minOpen?: boolean; | 
|     maxOpen?: boolean; | 
|     /** | 
|      * When put the controller vertically, it is the length of | 
|      * horizontal side of each item. Otherwise, vertical side. | 
|      * When put the controller vertically, it is the length of | 
|      * vertical side of each item. Otherwise, horizontal side. | 
|      */ | 
|     itemWidth?: number; | 
|     itemHeight?: number; | 
|     itemSymbol?: string; | 
|     pieces?: VisualPiece[]; | 
|     /** | 
|      * category names, like: ['some1', 'some2', 'some3']. | 
|      * Attr min/max are ignored when categories set. See "Order Rule" | 
|      */ | 
|     categories?: string[]; | 
|     /** | 
|      * If set to 5, auto split five pieces equally. | 
|      * If set to 0 and component type not set, component type will be | 
|      * determined as "continuous". (It is less reasonable but for ec2 | 
|      * compatibility, see echarts/component/visualMap/typeDefaulter) | 
|      */ | 
|     splitNumber?: number; | 
|     /** | 
|      * Object. If not specified, means selected. When pieces and splitNumber: {'0': true, '5': true} | 
|      * When categories: {'cate1': false, 'cate3': true} When selected === false, means all unselected. | 
|      */ | 
|     selected?: Dictionary<boolean>; | 
|     selectedMode?: 'multiple' | 'single' | boolean; | 
|     /** | 
|      * By default, when text is used, label will hide (the logic | 
|      * is remained for compatibility reason) | 
|      */ | 
|     showLabel?: boolean; | 
|     itemGap?: number; | 
|     hoverLink?: boolean; | 
| } | 
|   | 
| interface MarkLineStateOption { | 
|     lineStyle?: LineStyleOption; | 
|     /** | 
|      * itemStyle for symbol | 
|      */ | 
|     itemStyle?: ItemStyleOption; | 
|     label?: SeriesLineLabelOption; | 
| } | 
| interface MarkLineDataItemOptionBase extends MarkLineStateOption, StatesOptionMixin<MarkLineStateOption, StatesMixinBase> { | 
|     name?: string; | 
| } | 
| interface MarkLine1DDataItemOption extends MarkLineDataItemOptionBase { | 
|     xAxis?: number | string; | 
|     yAxis?: number | string; | 
|     type?: MarkerStatisticType; | 
|     /** | 
|      * When using statistic method with type. | 
|      * valueIndex and valueDim can be specify which dim the statistic is used on. | 
|      */ | 
|     valueIndex?: number; | 
|     valueDim?: string; | 
|     /** | 
|      * Symbol for both two ends | 
|      */ | 
|     symbol?: string[] | string; | 
|     symbolSize?: number[] | number; | 
|     symbolRotate?: number[] | number; | 
|     symbolOffset?: number | string | (number | string)[]; | 
| } | 
| interface MarkLine2DDataItemDimOption extends MarkLineDataItemOptionBase, SymbolOptionMixin, MarkerPositionOption { | 
| } | 
| declare type MarkLine2DDataItemOption = [ | 
|     MarkLine2DDataItemDimOption, | 
|     MarkLine2DDataItemDimOption | 
| ]; | 
| interface MarkLineOption extends MarkerOption, MarkLineStateOption, StatesOptionMixin<MarkLineStateOption, StatesMixinBase> { | 
|     mainType?: 'markLine'; | 
|     symbol?: string[] | string; | 
|     symbolSize?: number[] | number; | 
|     symbolRotate?: number[] | number; | 
|     symbolOffset?: number | string | (number | string)[] | (number | string)[][]; | 
|     /** | 
|      * Precision used on statistic method | 
|      */ | 
|     precision?: number; | 
|     data?: (MarkLine1DDataItemOption | MarkLine2DDataItemOption)[]; | 
| } | 
|   | 
| interface MarkPointStateOption { | 
|     itemStyle?: ItemStyleOption; | 
|     label?: SeriesLabelOption; | 
| } | 
| interface MarkPointDataItemOption extends MarkPointStateOption, StatesOptionMixin<MarkPointStateOption, StatesMixinBase>, SymbolOptionMixin<CallbackDataParams>, MarkerPositionOption { | 
|     name: string; | 
| } | 
| interface MarkPointOption extends MarkerOption, SymbolOptionMixin<CallbackDataParams>, StatesOptionMixin<MarkPointStateOption, StatesMixinBase>, MarkPointStateOption { | 
|     mainType?: 'markPoint'; | 
|     precision?: number; | 
|     data?: MarkPointDataItemOption[]; | 
| } | 
|   | 
| declare type LineDataValue = OptionDataValue | OptionDataValue[]; | 
| interface LineStateOptionMixin { | 
|     emphasis?: { | 
|         focus?: DefaultEmphasisFocus; | 
|         scale?: boolean | number; | 
|     }; | 
| } | 
| interface LineStateOption<TCbParams = never> { | 
|     itemStyle?: ItemStyleOption<TCbParams>; | 
|     label?: SeriesLabelOption; | 
|     endLabel?: LineEndLabelOption; | 
| } | 
| interface LineDataItemOption extends SymbolOptionMixin, LineStateOption, StatesOptionMixin<LineStateOption, LineStateOptionMixin> { | 
|     name?: string; | 
|     value?: LineDataValue; | 
| } | 
| interface LineEndLabelOption extends SeriesLabelOption { | 
|     valueAnimation?: boolean; | 
| } | 
| interface LineSeriesOption extends SeriesOption<LineStateOption<CallbackDataParams>, LineStateOptionMixin & { | 
|     emphasis?: { | 
|         lineStyle?: Omit<LineStyleOption, 'width'> & { | 
|             width?: LineStyleOption['width'] | 'bolder'; | 
|         }; | 
|         areaStyle?: AreaStyleOption; | 
|     }; | 
|     blur?: { | 
|         lineStyle?: LineStyleOption; | 
|         areaStyle?: AreaStyleOption; | 
|     }; | 
| }>, LineStateOption<CallbackDataParams>, SeriesOnCartesianOptionMixin, SeriesOnPolarOptionMixin, SeriesStackOptionMixin, SeriesSamplingOptionMixin, SymbolOptionMixin<CallbackDataParams>, SeriesEncodeOptionMixin { | 
|     type?: 'line'; | 
|     coordinateSystem?: 'cartesian2d' | 'polar'; | 
|     clip?: boolean; | 
|     label?: SeriesLabelOption; | 
|     endLabel?: LineEndLabelOption; | 
|     lineStyle?: LineStyleOption; | 
|     areaStyle?: AreaStyleOption & { | 
|         origin?: 'auto' | 'start' | 'end' | number; | 
|     }; | 
|     step?: false | 'start' | 'end' | 'middle'; | 
|     smooth?: boolean | number; | 
|     smoothMonotone?: 'x' | 'y' | 'none'; | 
|     connectNulls?: boolean; | 
|     showSymbol?: boolean; | 
|     showAllSymbol?: 'auto' | boolean; | 
|     data?: (LineDataValue | LineDataItemOption)[]; | 
|     triggerLineEvent?: boolean; | 
| } | 
|   | 
| interface ScatterStateOption<TCbParams = never> { | 
|     itemStyle?: ItemStyleOption<TCbParams>; | 
|     label?: SeriesLabelOption; | 
| } | 
| interface ScatterStatesOptionMixin { | 
|     emphasis?: { | 
|         focus?: DefaultEmphasisFocus; | 
|         scale?: boolean | number; | 
|     }; | 
| } | 
| interface ScatterDataItemOption extends SymbolOptionMixin, ScatterStateOption, StatesOptionMixin<ScatterStateOption, ScatterStatesOptionMixin>, OptionDataItemObject<OptionDataValue> { | 
| } | 
| interface ScatterSeriesOption extends SeriesOption<ScatterStateOption<CallbackDataParams>, ScatterStatesOptionMixin>, ScatterStateOption<CallbackDataParams>, SeriesOnCartesianOptionMixin, SeriesOnPolarOptionMixin, SeriesOnCalendarOptionMixin, SeriesOnGeoOptionMixin, SeriesOnSingleOptionMixin, SeriesLargeOptionMixin, SeriesStackOptionMixin, SymbolOptionMixin<CallbackDataParams>, SeriesEncodeOptionMixin { | 
|     type?: 'scatter'; | 
|     coordinateSystem?: string; | 
|     cursor?: string; | 
|     clip?: boolean; | 
|     data?: (ScatterDataItemOption | OptionDataValue | OptionDataValue[])[] | ArrayLike<number>; | 
| } | 
|   | 
| interface PieItemStyleOption<TCbParams = never> extends ItemStyleOption<TCbParams> { | 
|     borderRadius?: (number | string)[] | number | string; | 
| } | 
| interface PieCallbackDataParams extends CallbackDataParams { | 
|     percent: number; | 
| } | 
| interface PieStateOption<TCbParams = never> { | 
|     itemStyle?: PieItemStyleOption<TCbParams>; | 
|     label?: PieLabelOption; | 
|     labelLine?: PieLabelLineOption; | 
| } | 
| interface PieLabelOption extends Omit<SeriesLabelOption, 'rotate' | 'position'> { | 
|     rotate?: number | boolean | 'radial' | 'tangential'; | 
|     alignTo?: 'none' | 'labelLine' | 'edge'; | 
|     edgeDistance?: string | number; | 
|     /** | 
|      * @deprecated Use `edgeDistance` instead | 
|      */ | 
|     margin?: string | number; | 
|     bleedMargin?: number; | 
|     distanceToLabelLine?: number; | 
|     position?: SeriesLabelOption['position'] | 'outer' | 'inner' | 'center' | 'outside'; | 
| } | 
| interface PieLabelLineOption extends LabelLineOption { | 
|     /** | 
|      * Max angle between labelLine and surface normal. | 
|      * 0 - 180 | 
|      */ | 
|     maxSurfaceAngle?: number; | 
| } | 
| interface ExtraStateOption { | 
|     emphasis?: { | 
|         focus?: DefaultEmphasisFocus; | 
|         scale?: boolean; | 
|         scaleSize?: number; | 
|     }; | 
| } | 
| interface PieDataItemOption extends OptionDataItemObject<OptionDataValueNumeric>, PieStateOption, StatesOptionMixin<PieStateOption, ExtraStateOption> { | 
|     cursor?: string; | 
| } | 
| interface PieSeriesOption extends Omit<SeriesOption<PieStateOption<PieCallbackDataParams>, ExtraStateOption>, 'labelLine'>, PieStateOption<PieCallbackDataParams>, Omit<CircleLayoutOptionMixin, 'center'>, BoxLayoutOptionMixin, SeriesEncodeOptionMixin { | 
|     type?: 'pie'; | 
|     roseType?: 'radius' | 'area'; | 
|     center?: string | number | (string | number)[]; | 
|     clockwise?: boolean; | 
|     startAngle?: number; | 
|     endAngle?: number | 'auto'; | 
|     padAngle?: number; | 
|     minAngle?: number; | 
|     minShowLabelAngle?: number; | 
|     selectedOffset?: number; | 
|     avoidLabelOverlap?: boolean; | 
|     percentPrecision?: number; | 
|     stillShowZeroSum?: boolean; | 
|     animationType?: 'expansion' | 'scale'; | 
|     animationTypeUpdate?: 'transition' | 'expansion'; | 
|     showEmptyCircle?: boolean; | 
|     emptyCircleStyle?: PieItemStyleOption; | 
|     data?: (OptionDataValueNumeric | OptionDataValueNumeric[] | PieDataItemOption)[]; | 
| } | 
|   | 
| declare type RadarSeriesDataValue = OptionDataValue[]; | 
| interface RadarStatesMixin { | 
|     emphasis?: DefaultStatesMixinEmphasis; | 
| } | 
| interface RadarSeriesStateOption<TCbParams = never> { | 
|     lineStyle?: LineStyleOption; | 
|     areaStyle?: AreaStyleOption; | 
|     label?: SeriesLabelOption; | 
|     itemStyle?: ItemStyleOption<TCbParams>; | 
| } | 
| interface RadarSeriesDataItemOption extends SymbolOptionMixin, RadarSeriesStateOption<CallbackDataParams>, StatesOptionMixin<RadarSeriesStateOption<CallbackDataParams>, RadarStatesMixin>, OptionDataItemObject<RadarSeriesDataValue> { | 
| } | 
| interface RadarSeriesOption extends SeriesOption<RadarSeriesStateOption, RadarStatesMixin>, RadarSeriesStateOption, SymbolOptionMixin<CallbackDataParams>, SeriesEncodeOptionMixin { | 
|     type?: 'radar'; | 
|     coordinateSystem?: 'radar'; | 
|     radarIndex?: number; | 
|     radarId?: string; | 
|     data?: (RadarSeriesDataItemOption | RadarSeriesDataValue)[]; | 
| } | 
|   | 
| interface CurveLineStyleOption extends LineStyleOption { | 
|     curveness?: number; | 
| } | 
| interface TreeSeriesStateOption<TCbParams = never> { | 
|     itemStyle?: ItemStyleOption<TCbParams>; | 
|     /** | 
|      * Line style of the edge between node and it's parent. | 
|      */ | 
|     lineStyle?: CurveLineStyleOption; | 
|     label?: SeriesLabelOption; | 
| } | 
| interface TreeStatesMixin { | 
|     emphasis?: { | 
|         focus?: DefaultEmphasisFocus | 'ancestor' | 'descendant' | 'relative'; | 
|         scale?: boolean; | 
|     }; | 
| } | 
| interface TreeSeriesNodeItemOption extends SymbolOptionMixin<CallbackDataParams>, TreeSeriesStateOption<CallbackDataParams>, StatesOptionMixin<TreeSeriesStateOption<CallbackDataParams>, TreeStatesMixin>, OptionDataItemObject<OptionDataValue> { | 
|     children?: TreeSeriesNodeItemOption[]; | 
|     collapsed?: boolean; | 
|     link?: string; | 
|     target?: string; | 
| } | 
| /** | 
|  * Configuration of leaves nodes. | 
|  */ | 
| interface TreeSeriesLeavesOption extends TreeSeriesStateOption, StatesOptionMixin<TreeSeriesStateOption, TreeStatesMixin> { | 
| } | 
| interface TreeSeriesOption extends SeriesOption<TreeSeriesStateOption, TreeStatesMixin>, TreeSeriesStateOption, SymbolOptionMixin<CallbackDataParams>, BoxLayoutOptionMixin, RoamOptionMixin { | 
|     type?: 'tree'; | 
|     layout?: 'orthogonal' | 'radial'; | 
|     edgeShape?: 'polyline' | 'curve'; | 
|     /** | 
|      * Available when edgeShape is polyline | 
|      */ | 
|     edgeForkPosition?: string | number; | 
|     nodeScaleRatio?: number; | 
|     /** | 
|      * The orient of orthoginal layout, can be setted to 'LR', 'TB', 'RL', 'BT'. | 
|      * and the backward compatibility configuration 'horizontal = LR', 'vertical = TB'. | 
|      */ | 
|     orient?: 'LR' | 'TB' | 'RL' | 'BT' | 'horizontal' | 'vertical'; | 
|     expandAndCollapse?: boolean; | 
|     /** | 
|      * The initial expanded depth of tree | 
|      */ | 
|     initialTreeDepth?: number; | 
|     leaves?: TreeSeriesLeavesOption; | 
|     data?: TreeSeriesNodeItemOption[]; | 
| } | 
|   | 
| declare type TreemapSeriesDataValue = number | number[]; | 
| interface BreadcrumbItemStyleOption extends ItemStyleOption { | 
|     textStyle?: LabelOption; | 
| } | 
| interface TreemapSeriesLabelOption extends SeriesLabelOption { | 
|     formatter?: string | ((params: CallbackDataParams) => string); | 
| } | 
| interface TreemapSeriesItemStyleOption<TCbParams = never> extends ItemStyleOption<TCbParams> { | 
|     borderRadius?: number | number[]; | 
|     colorAlpha?: number; | 
|     colorSaturation?: number; | 
|     borderColorSaturation?: number; | 
|     gapWidth?: number; | 
| } | 
| interface TreePathInfo { | 
|     name: string; | 
|     dataIndex: number; | 
|     value: TreemapSeriesDataValue; | 
| } | 
| interface TreemapSeriesCallbackDataParams extends CallbackDataParams { | 
|     /** | 
|      * @deprecated | 
|      */ | 
|     treePathInfo?: TreePathInfo[]; | 
|     treeAncestors?: TreePathInfo[]; | 
| } | 
| interface ExtraStateOption$1 { | 
|     emphasis?: { | 
|         focus?: DefaultEmphasisFocus | 'descendant' | 'ancestor'; | 
|     }; | 
| } | 
| interface TreemapStateOption<TCbParams = never> { | 
|     itemStyle?: TreemapSeriesItemStyleOption<TCbParams>; | 
|     label?: TreemapSeriesLabelOption; | 
|     upperLabel?: TreemapSeriesLabelOption; | 
| } | 
| interface TreemapSeriesVisualOption { | 
|     /** | 
|      * Which dimension will be applied with the visual properties. | 
|      */ | 
|     visualDimension?: number | string; | 
|     /** | 
|      * @deprecated Use colorBy instead | 
|      */ | 
|     colorMappingBy?: 'value' | 'index' | 'id'; | 
|     visualMin?: number; | 
|     visualMax?: number; | 
|     colorAlpha?: number[] | 'none'; | 
|     colorSaturation?: number[] | 'none'; | 
|     /** | 
|      * A node will not be shown when its area size is smaller than this value (unit: px square). | 
|      */ | 
|     visibleMin?: number; | 
|     /** | 
|      * Children will not be shown when area size of a node is smaller than this value (unit: px square). | 
|      */ | 
|     childrenVisibleMin?: number; | 
| } | 
| interface TreemapSeriesLevelOption extends TreemapSeriesVisualOption, TreemapStateOption, StatesOptionMixin<TreemapStateOption, ExtraStateOption$1> { | 
|     color?: ColorString[] | 'none'; | 
|     decal?: DecalObject[] | 'none'; | 
| } | 
| interface TreemapSeriesNodeItemOption extends TreemapSeriesVisualOption, TreemapStateOption, StatesOptionMixin<TreemapStateOption, ExtraStateOption$1> { | 
|     id?: OptionId; | 
|     name?: OptionName; | 
|     value?: TreemapSeriesDataValue; | 
|     children?: TreemapSeriesNodeItemOption[]; | 
|     color?: ColorString[] | 'none'; | 
|     decal?: DecalObject[] | 'none'; | 
|     cursor?: string; | 
| } | 
| interface TreemapSeriesOption extends SeriesOption<TreemapStateOption<TreemapSeriesCallbackDataParams>, ExtraStateOption$1>, TreemapStateOption<TreemapSeriesCallbackDataParams>, BoxLayoutOptionMixin, RoamOptionMixin, TreemapSeriesVisualOption { | 
|     type?: 'treemap'; | 
|     /** | 
|      * configuration in echarts2 | 
|      * @deprecated | 
|      */ | 
|     size?: (number | string)[]; | 
|     /** | 
|      * If sort in desc order. | 
|      * Default to be desc. asc has strange effect | 
|      */ | 
|     sort?: boolean | 'asc' | 'desc'; | 
|     /** | 
|      * Size of clipped window when zooming. 'origin' or 'fullscreen' | 
|      */ | 
|     clipWindow?: 'origin' | 'fullscreen'; | 
|     squareRatio?: number; | 
|     /** | 
|      * Nodes on depth from root are regarded as leaves. | 
|      * Count from zero (zero represents only view root). | 
|      */ | 
|     leafDepth?: number; | 
|     drillDownIcon?: string; | 
|     /** | 
|      * Be effective when using zoomToNode. Specify the proportion of the | 
|      * target node area in the view area. | 
|      */ | 
|     zoomToNodeRatio?: number; | 
|     /** | 
|      * Leaf node click behaviour: 'zoomToNode', 'link', false. | 
|      * If leafDepth is set and clicking a node which has children but | 
|      * be on left depth, the behaviour would be changing root. Otherwise | 
|      * use behaviour defined above. | 
|      */ | 
|     nodeClick?: 'zoomToNode' | 'link' | false; | 
|     breadcrumb?: BoxLayoutOptionMixin & { | 
|         show?: boolean; | 
|         height?: number; | 
|         emptyItemWidth?: number; | 
|         itemStyle?: BreadcrumbItemStyleOption; | 
|         emphasis?: { | 
|             disabled?: boolean; | 
|             focus?: DefaultEmphasisFocus; | 
|             blurScope?: BlurScope; | 
|             itemStyle?: BreadcrumbItemStyleOption; | 
|         }; | 
|     }; | 
|     levels?: TreemapSeriesLevelOption[]; | 
|     data?: TreemapSeriesNodeItemOption[]; | 
| } | 
|   | 
| declare type GraphDataValue = OptionDataValue | OptionDataValue[]; | 
| interface GraphEdgeLineStyleOption extends LineStyleOption { | 
|     curveness?: number; | 
| } | 
| interface GraphNodeStateOption<TCbParams = never> { | 
|     itemStyle?: ItemStyleOption<TCbParams>; | 
|     label?: SeriesLabelOption; | 
| } | 
| interface ExtraEmphasisState { | 
|     focus?: DefaultEmphasisFocus | 'adjacency'; | 
| } | 
| interface GraphNodeStatesMixin { | 
|     emphasis?: ExtraEmphasisState; | 
| } | 
| interface GraphEdgeStatesMixin { | 
|     emphasis?: ExtraEmphasisState; | 
| } | 
| interface GraphNodeItemOption extends SymbolOptionMixin, GraphNodeStateOption, StatesOptionMixin<GraphNodeStateOption, GraphNodeStatesMixin> { | 
|     id?: string; | 
|     name?: string; | 
|     value?: GraphDataValue; | 
|     /** | 
|      * Fixed x position | 
|      */ | 
|     x?: number; | 
|     /** | 
|      * Fixed y position | 
|      */ | 
|     y?: number; | 
|     /** | 
|      * If this node is fixed during force layout. | 
|      */ | 
|     fixed?: boolean; | 
|     /** | 
|      * Index or name of category | 
|      */ | 
|     category?: number | string; | 
|     draggable?: boolean; | 
|     cursor?: string; | 
| } | 
| interface GraphEdgeStateOption { | 
|     lineStyle?: GraphEdgeLineStyleOption; | 
|     label?: SeriesLineLabelOption; | 
| } | 
| interface GraphEdgeItemOption extends GraphEdgeStateOption, StatesOptionMixin<GraphEdgeStateOption, GraphEdgeStatesMixin>, GraphEdgeItemObject<OptionDataValueNumeric> { | 
|     value?: number; | 
|     /** | 
|      * Symbol of both line ends | 
|      */ | 
|     symbol?: string | string[]; | 
|     symbolSize?: number | number[]; | 
|     ignoreForceLayout?: boolean; | 
| } | 
| interface GraphCategoryItemOption extends SymbolOptionMixin, GraphNodeStateOption, StatesOptionMixin<GraphNodeStateOption, GraphNodeStatesMixin> { | 
|     name?: string; | 
|     value?: OptionDataValue; | 
| } | 
| interface GraphSeriesOption extends SeriesOption<GraphNodeStateOption<CallbackDataParams>, GraphNodeStatesMixin>, SeriesOnCartesianOptionMixin, SeriesOnPolarOptionMixin, SeriesOnCalendarOptionMixin, SeriesOnGeoOptionMixin, SeriesOnSingleOptionMixin, SymbolOptionMixin<CallbackDataParams>, RoamOptionMixin, BoxLayoutOptionMixin { | 
|     type?: 'graph'; | 
|     coordinateSystem?: string; | 
|     legendHoverLink?: boolean; | 
|     layout?: 'none' | 'force' | 'circular'; | 
|     data?: (GraphNodeItemOption | GraphDataValue)[]; | 
|     nodes?: (GraphNodeItemOption | GraphDataValue)[]; | 
|     edges?: GraphEdgeItemOption[]; | 
|     links?: GraphEdgeItemOption[]; | 
|     categories?: GraphCategoryItemOption[]; | 
|     /** | 
|      * @deprecated | 
|      */ | 
|     focusNodeAdjacency?: boolean; | 
|     /** | 
|      * Symbol size scale ratio in roam | 
|      */ | 
|     nodeScaleRatio?: 0.6; | 
|     draggable?: boolean; | 
|     edgeSymbol?: string | string[]; | 
|     edgeSymbolSize?: number | number[]; | 
|     edgeLabel?: SeriesLineLabelOption; | 
|     label?: SeriesLabelOption; | 
|     itemStyle?: ItemStyleOption<CallbackDataParams>; | 
|     lineStyle?: GraphEdgeLineStyleOption; | 
|     emphasis?: { | 
|         focus?: Exclude<GraphNodeItemOption['emphasis'], undefined>['focus']; | 
|         scale?: boolean | number; | 
|         label?: SeriesLabelOption; | 
|         edgeLabel?: SeriesLabelOption; | 
|         itemStyle?: ItemStyleOption; | 
|         lineStyle?: LineStyleOption; | 
|     }; | 
|     blur?: { | 
|         label?: SeriesLabelOption; | 
|         edgeLabel?: SeriesLabelOption; | 
|         itemStyle?: ItemStyleOption; | 
|         lineStyle?: LineStyleOption; | 
|     }; | 
|     select?: { | 
|         label?: SeriesLabelOption; | 
|         edgeLabel?: SeriesLabelOption; | 
|         itemStyle?: ItemStyleOption; | 
|         lineStyle?: LineStyleOption; | 
|     }; | 
|     circular?: { | 
|         rotateLabel?: boolean; | 
|     }; | 
|     force?: { | 
|         initLayout?: 'circular' | 'none'; | 
|         repulsion?: number | number[]; | 
|         gravity?: number; | 
|         friction?: number; | 
|         edgeLength?: number | number[]; | 
|         layoutAnimation?: boolean; | 
|     }; | 
|     /** | 
|      * auto curveness for multiple edge, invalid when `lineStyle.curveness` is set | 
|      */ | 
|     autoCurveness?: boolean | number | number[]; | 
| } | 
|   | 
| declare type GaugeColorStop = [number, ColorString]; | 
| interface LabelFormatter$1 { | 
|     (value: number): string; | 
| } | 
| interface PointerOption { | 
|     icon?: string; | 
|     show?: boolean; | 
|     /** | 
|      * If pointer shows above title and detail | 
|      */ | 
|     showAbove?: boolean; | 
|     keepAspect?: boolean; | 
|     itemStyle?: ItemStyleOption; | 
|     /** | 
|      * Can be percent | 
|      */ | 
|     offsetCenter?: (number | string)[]; | 
|     length?: number | string; | 
|     width?: number; | 
| } | 
| interface AnchorOption { | 
|     show?: boolean; | 
|     showAbove?: boolean; | 
|     size?: number; | 
|     icon?: string; | 
|     offsetCenter?: (number | string)[]; | 
|     keepAspect?: boolean; | 
|     itemStyle?: ItemStyleOption; | 
| } | 
| interface ProgressOption { | 
|     show?: boolean; | 
|     overlap?: boolean; | 
|     width?: number; | 
|     roundCap?: boolean; | 
|     clip?: boolean; | 
|     itemStyle?: ItemStyleOption; | 
| } | 
| interface TitleOption$1 extends LabelOption { | 
|     /** | 
|      * [x, y] offset | 
|      */ | 
|     offsetCenter?: (number | string)[]; | 
|     formatter?: LabelFormatter$1 | string; | 
|     /** | 
|      * If do value animtion. | 
|      */ | 
|     valueAnimation?: boolean; | 
| } | 
| interface DetailOption extends LabelOption { | 
|     /** | 
|      * [x, y] offset | 
|      */ | 
|     offsetCenter?: (number | string)[]; | 
|     formatter?: LabelFormatter$1 | string; | 
|     /** | 
|      * If do value animtion. | 
|      */ | 
|     valueAnimation?: boolean; | 
| } | 
| interface GaugeStatesMixin { | 
|     emphasis?: DefaultStatesMixinEmphasis; | 
| } | 
| interface GaugeStateOption<TCbParams = never> { | 
|     itemStyle?: ItemStyleOption<TCbParams>; | 
| } | 
| interface GaugeDataItemOption extends GaugeStateOption, StatesOptionMixin<GaugeStateOption<CallbackDataParams>, GaugeStatesMixin> { | 
|     name?: string; | 
|     value?: OptionDataValueNumeric; | 
|     pointer?: PointerOption; | 
|     progress?: ProgressOption; | 
|     title?: TitleOption$1; | 
|     detail?: DetailOption; | 
| } | 
| interface GaugeSeriesOption extends SeriesOption<GaugeStateOption, GaugeStatesMixin>, GaugeStateOption<CallbackDataParams>, CircleLayoutOptionMixin, SeriesEncodeOptionMixin { | 
|     type?: 'gauge'; | 
|     radius?: number | string; | 
|     startAngle?: number; | 
|     endAngle?: number; | 
|     clockwise?: boolean; | 
|     min?: number; | 
|     max?: number; | 
|     splitNumber?: number; | 
|     itemStyle?: ItemStyleOption; | 
|     axisLine?: { | 
|         show?: boolean; | 
|         roundCap?: boolean; | 
|         lineStyle?: Omit<LineStyleOption, 'color'> & { | 
|             color?: GaugeColorStop[]; | 
|         }; | 
|     }; | 
|     progress?: ProgressOption; | 
|     splitLine?: { | 
|         show?: boolean; | 
|         /** | 
|          * Can be percent | 
|          */ | 
|         length?: number; | 
|         distance?: number; | 
|         lineStyle?: LineStyleOption; | 
|     }; | 
|     axisTick?: { | 
|         show?: boolean; | 
|         splitNumber?: number; | 
|         /** | 
|          * Can be percent | 
|          */ | 
|         length?: number | string; | 
|         distance?: number; | 
|         lineStyle?: LineStyleOption; | 
|     }; | 
|     axisLabel?: Omit<LabelOption, 'rotate'> & { | 
|         formatter?: LabelFormatter$1 | string; | 
|         rotate?: 'tangential' | 'radial' | number; | 
|     }; | 
|     pointer?: PointerOption; | 
|     anchor?: AnchorOption; | 
|     title?: TitleOption$1; | 
|     detail?: DetailOption; | 
|     data?: (OptionDataValueNumeric | GaugeDataItemOption)[]; | 
| } | 
|   | 
| declare type FunnelLabelOption = Omit<SeriesLabelOption, 'position'> & { | 
|     position?: LabelOption['position'] | 'outer' | 'inner' | 'center' | 'rightTop' | 'rightBottom' | 'leftTop' | 'leftBottom'; | 
| }; | 
| interface FunnelStatesMixin { | 
|     emphasis?: DefaultStatesMixinEmphasis; | 
| } | 
| interface FunnelCallbackDataParams extends CallbackDataParams { | 
|     percent: number; | 
| } | 
| interface FunnelStateOption<TCbParams = never> { | 
|     itemStyle?: ItemStyleOption<TCbParams>; | 
|     label?: FunnelLabelOption; | 
|     labelLine?: LabelLineOption; | 
| } | 
| interface FunnelDataItemOption extends FunnelStateOption, StatesOptionMixin<FunnelStateOption, FunnelStatesMixin>, OptionDataItemObject<OptionDataValueNumeric> { | 
|     itemStyle?: ItemStyleOption & { | 
|         width?: number | string; | 
|         height?: number | string; | 
|     }; | 
| } | 
| interface FunnelSeriesOption extends SeriesOption<FunnelStateOption<FunnelCallbackDataParams>, FunnelStatesMixin>, FunnelStateOption<FunnelCallbackDataParams>, BoxLayoutOptionMixin, SeriesEncodeOptionMixin { | 
|     type?: 'funnel'; | 
|     min?: number; | 
|     max?: number; | 
|     /** | 
|      * Absolute number or percent string | 
|      */ | 
|     minSize?: number | string; | 
|     maxSize?: number | string; | 
|     sort?: 'ascending' | 'descending' | 'none'; | 
|     orient?: LayoutOrient; | 
|     gap?: number; | 
|     funnelAlign?: HorizontalAlign | VerticalAlign; | 
|     data?: (OptionDataValueNumeric | OptionDataValueNumeric[] | FunnelDataItemOption)[]; | 
| } | 
|   | 
| declare type ParallelSeriesDataValue = OptionDataValue[]; | 
| interface ParallelStatesMixin { | 
|     emphasis?: DefaultStatesMixinEmphasis; | 
| } | 
| interface ParallelStateOption<TCbParams = never> { | 
|     lineStyle?: LineStyleOption<(TCbParams extends never ? never : (params: TCbParams) => ZRColor) | ZRColor>; | 
|     label?: SeriesLabelOption; | 
| } | 
| interface ParallelSeriesDataItemOption extends ParallelStateOption, StatesOptionMixin<ParallelStateOption, ParallelStatesMixin> { | 
|     value?: ParallelSeriesDataValue; | 
| } | 
| interface ParallelSeriesOption extends SeriesOption<ParallelStateOption<CallbackDataParams>, ParallelStatesMixin>, ParallelStateOption<CallbackDataParams>, SeriesEncodeOptionMixin { | 
|     type?: 'parallel'; | 
|     coordinateSystem?: string; | 
|     parallelIndex?: number; | 
|     parallelId?: string; | 
|     inactiveOpacity?: number; | 
|     activeOpacity?: number; | 
|     smooth?: boolean | number; | 
|     realtime?: boolean; | 
|     tooltip?: SeriesTooltipOption; | 
|     parallelAxisDefault?: ParallelAxisOption; | 
|     data?: (ParallelSeriesDataValue | ParallelSeriesDataItemOption)[]; | 
| } | 
|   | 
| declare type FocusNodeAdjacency = boolean | 'inEdges' | 'outEdges' | 'allEdges'; | 
| interface SankeyNodeStateOption<TCbParams = never> { | 
|     label?: SeriesLabelOption; | 
|     itemStyle?: ItemStyleOption<TCbParams>; | 
| } | 
| interface SankeyEdgeStateOption { | 
|     lineStyle?: SankeyEdgeStyleOption; | 
| } | 
| interface SankeyBothStateOption<TCbParams> extends SankeyNodeStateOption<TCbParams>, SankeyEdgeStateOption { | 
| } | 
| interface SankeyEdgeStyleOption extends LineStyleOption { | 
|     curveness?: number; | 
| } | 
| interface ExtraStateOption$2 { | 
|     emphasis?: { | 
|         focus?: DefaultEmphasisFocus | 'adjacency' | 'trajectory'; | 
|     }; | 
| } | 
| interface SankeyNodeItemOption extends SankeyNodeStateOption, StatesOptionMixin<SankeyNodeStateOption, ExtraStateOption$2>, OptionDataItemObject<OptionDataValue> { | 
|     id?: string; | 
|     localX?: number; | 
|     localY?: number; | 
|     depth?: number; | 
|     draggable?: boolean; | 
|     focusNodeAdjacency?: FocusNodeAdjacency; | 
| } | 
| interface SankeyEdgeItemOption extends SankeyEdgeStateOption, StatesOptionMixin<SankeyEdgeStateOption, ExtraStateOption$2>, GraphEdgeItemObject<OptionDataValueNumeric> { | 
|     focusNodeAdjacency?: FocusNodeAdjacency; | 
|     edgeLabel?: SeriesLabelOption; | 
| } | 
| interface SankeyLevelOption extends SankeyNodeStateOption, SankeyEdgeStateOption { | 
|     depth: number; | 
| } | 
| interface SankeySeriesOption extends SeriesOption<SankeyBothStateOption<CallbackDataParams>, ExtraStateOption$2>, SankeyBothStateOption<CallbackDataParams>, BoxLayoutOptionMixin { | 
|     type?: 'sankey'; | 
|     /** | 
|      * color will be linear mapped. | 
|      */ | 
|     color?: ColorString[]; | 
|     coordinateSystem?: 'view'; | 
|     orient?: LayoutOrient; | 
|     /** | 
|      * The width of the node | 
|      */ | 
|     nodeWidth?: number; | 
|     /** | 
|      * The vertical distance between two nodes | 
|      */ | 
|     nodeGap?: number; | 
|     /** | 
|      * Control if the node can move or not | 
|      */ | 
|     draggable?: boolean; | 
|     /** | 
|      * Will be allEdges if true. | 
|      * @deprecated | 
|      */ | 
|     focusNodeAdjacency?: FocusNodeAdjacency; | 
|     /** | 
|      * The number of iterations to change the position of the node | 
|      */ | 
|     layoutIterations?: number; | 
|     nodeAlign?: 'justify' | 'left' | 'right'; | 
|     data?: SankeyNodeItemOption[]; | 
|     nodes?: SankeyNodeItemOption[]; | 
|     edges?: SankeyEdgeItemOption[]; | 
|     links?: SankeyEdgeItemOption[]; | 
|     levels?: SankeyLevelOption[]; | 
|     edgeLabel?: SeriesLabelOption & { | 
|         position?: 'inside'; | 
|     }; | 
| } | 
|   | 
| declare type BoxplotDataValue = OptionDataValueNumeric[]; | 
| interface BoxplotStateOption<TCbParams = never> { | 
|     itemStyle?: ItemStyleOption<TCbParams>; | 
|     label?: SeriesLabelOption; | 
| } | 
| interface BoxplotDataItemOption extends BoxplotStateOption, StatesOptionMixin<BoxplotStateOption, ExtraStateOption$3> { | 
|     value: BoxplotDataValue; | 
| } | 
| interface ExtraStateOption$3 { | 
|     emphasis?: { | 
|         focus?: DefaultEmphasisFocus; | 
|         scale?: boolean; | 
|     }; | 
| } | 
| interface BoxplotSeriesOption extends SeriesOption<BoxplotStateOption<CallbackDataParams>, ExtraStateOption$3>, BoxplotStateOption<CallbackDataParams>, SeriesOnCartesianOptionMixin, SeriesEncodeOptionMixin { | 
|     type?: 'boxplot'; | 
|     coordinateSystem?: 'cartesian2d'; | 
|     layout?: LayoutOrient; | 
|     /** | 
|      * [min, max] can be percent of band width. | 
|      */ | 
|     boxWidth?: (string | number)[]; | 
|     data?: (BoxplotDataValue | BoxplotDataItemOption)[]; | 
| } | 
|   | 
| declare type CandlestickDataValue = OptionDataValue[]; | 
| interface CandlestickItemStyleOption extends ItemStyleOption { | 
|     color0?: ZRColor; | 
|     borderColor0?: ColorString; | 
|     borderColorDoji?: ZRColor; | 
| } | 
| interface CandlestickStateOption { | 
|     itemStyle?: CandlestickItemStyleOption; | 
|     label?: SeriesLabelOption; | 
| } | 
| interface CandlestickDataItemOption extends CandlestickStateOption, StatesOptionMixin<CandlestickStateOption, ExtraStateOption$4> { | 
|     value: CandlestickDataValue; | 
| } | 
| interface ExtraStateOption$4 { | 
|     emphasis?: { | 
|         focus?: DefaultEmphasisFocus; | 
|         scale?: boolean; | 
|     }; | 
| } | 
| interface CandlestickSeriesOption extends SeriesOption<CandlestickStateOption, ExtraStateOption$4>, CandlestickStateOption, SeriesOnCartesianOptionMixin, SeriesLargeOptionMixin, SeriesEncodeOptionMixin { | 
|     type?: 'candlestick'; | 
|     coordinateSystem?: 'cartesian2d'; | 
|     layout?: LayoutOrient; | 
|     clip?: boolean; | 
|     barMaxWidth?: number | string; | 
|     barMinWidth?: number | string; | 
|     barWidth?: number | string; | 
|     data?: (CandlestickDataValue | CandlestickDataItemOption)[]; | 
| } | 
|   | 
| interface RippleEffectOption { | 
|     period?: number; | 
|     /** | 
|      * Scale of ripple | 
|      */ | 
|     scale?: number; | 
|     brushType?: 'fill' | 'stroke'; | 
|     color?: ZRColor; | 
|     /** | 
|      * ripple number | 
|      */ | 
|     number?: number; | 
| } | 
| interface SymbolDrawStateOption { | 
|     itemStyle?: ItemStyleOption; | 
|     label?: LabelOption; | 
| } | 
| interface SymbolDrawItemModelOption extends SymbolOptionMixin<object>, StatesOptionMixin<SymbolDrawStateOption, { | 
|     emphasis?: { | 
|         focus?: DefaultEmphasisFocus; | 
|         scale?: boolean | number; | 
|     }; | 
| }>, SymbolDrawStateOption { | 
|     cursor?: string; | 
|     rippleEffect?: RippleEffectOption; | 
| } | 
|   | 
| declare type ScatterDataValue = OptionDataValue | OptionDataValue[]; | 
| interface EffectScatterStatesOptionMixin { | 
|     emphasis?: { | 
|         focus?: DefaultEmphasisFocus; | 
|         scale?: boolean | number; | 
|     }; | 
| } | 
| interface EffectScatterStateOption<TCbParams = never> { | 
|     itemStyle?: ItemStyleOption<TCbParams>; | 
|     label?: SeriesLabelOption; | 
| } | 
| interface EffectScatterDataItemOption extends SymbolOptionMixin, EffectScatterStateOption, StatesOptionMixin<EffectScatterStateOption, EffectScatterStatesOptionMixin> { | 
|     name?: string; | 
|     value?: ScatterDataValue; | 
|     rippleEffect?: SymbolDrawItemModelOption['rippleEffect']; | 
| } | 
| interface EffectScatterSeriesOption extends SeriesOption<EffectScatterStateOption<CallbackDataParams>, EffectScatterStatesOptionMixin>, EffectScatterStateOption<CallbackDataParams>, SeriesOnCartesianOptionMixin, SeriesOnPolarOptionMixin, SeriesOnCalendarOptionMixin, SeriesOnGeoOptionMixin, SeriesOnSingleOptionMixin, SymbolOptionMixin<CallbackDataParams>, SeriesEncodeOptionMixin { | 
|     type?: 'effectScatter'; | 
|     coordinateSystem?: string; | 
|     effectType?: 'ripple'; | 
|     /** | 
|      * When to show the effect | 
|      */ | 
|     showEffectOn?: 'render' | 'emphasis'; | 
|     clip?: boolean; | 
|     /** | 
|      * Ripple effect config | 
|      */ | 
|     rippleEffect?: SymbolDrawItemModelOption['rippleEffect']; | 
|     data?: (EffectScatterDataItemOption | ScatterDataValue)[]; | 
| } | 
|   | 
| interface LineDrawStateOption { | 
|     lineStyle?: LineStyleOption; | 
|     label?: LineLabelOption; | 
| } | 
| interface LineDrawModelOption extends LineDrawStateOption, StatesOptionMixin<LineDrawStateOption, { | 
|     emphasis?: { | 
|         focus?: DefaultEmphasisFocus; | 
|     }; | 
| }> { | 
|     effect?: { | 
|         show?: boolean; | 
|         period?: number; | 
|         delay?: number | ((idx: number) => number); | 
|         /** | 
|          * If move with constant speed px/sec | 
|          * period will be ignored if this property is > 0, | 
|          */ | 
|         constantSpeed?: number; | 
|         symbol?: string; | 
|         symbolSize?: number | number[]; | 
|         loop?: boolean; | 
|         roundTrip?: boolean; | 
|         /** | 
|          * Length of trail, 0 - 1 | 
|          */ | 
|         trailLength?: number; | 
|         /** | 
|          * Default to be same with lineStyle.color | 
|          */ | 
|         color?: ColorString; | 
|     }; | 
| } | 
|   | 
| declare type LinesCoords = number[][]; | 
| declare type LinesValue = OptionDataValue | OptionDataValue[]; | 
| interface LinesLineStyleOption<TClr> extends LineStyleOption<TClr> { | 
|     curveness?: number; | 
| } | 
| interface LinesStatesMixin { | 
|     emphasis?: DefaultStatesMixinEmphasis; | 
| } | 
| interface LinesStateOption<TCbParams = never> { | 
|     lineStyle?: LinesLineStyleOption<(TCbParams extends never ? never : (params: TCbParams) => ZRColor) | ZRColor>; | 
|     label?: SeriesLineLabelOption; | 
| } | 
| interface LinesDataItemOption extends LinesStateOption, StatesOptionMixin<LinesStateOption, LinesStatesMixin> { | 
|     name?: string; | 
|     fromName?: string; | 
|     toName?: string; | 
|     symbol?: string[] | string; | 
|     symbolSize?: number[] | number; | 
|     coords?: LinesCoords; | 
|     value?: LinesValue; | 
|     effect?: LineDrawModelOption['effect']; | 
| } | 
| interface LinesSeriesOption extends SeriesOption<LinesStateOption, LinesStatesMixin>, LinesStateOption<CallbackDataParams>, SeriesOnCartesianOptionMixin, SeriesOnGeoOptionMixin, SeriesOnPolarOptionMixin, SeriesOnCalendarOptionMixin, SeriesLargeOptionMixin { | 
|     type?: 'lines'; | 
|     coordinateSystem?: string; | 
|     symbol?: string[] | string; | 
|     symbolSize?: number[] | number; | 
|     effect?: LineDrawModelOption['effect']; | 
|     /** | 
|      * If lines are polyline | 
|      * polyline not support curveness, label, animation | 
|      */ | 
|     polyline?: boolean; | 
|     /** | 
|      * If clip the overflow. | 
|      * Available when coordinateSystem is cartesian or polar. | 
|      */ | 
|     clip?: boolean; | 
|     data?: LinesDataItemOption[] | ArrayLike<number>; | 
|     dimensions?: DimensionDefinitionLoose | DimensionDefinitionLoose[]; | 
| } | 
|   | 
| declare type HeatmapDataValue = OptionDataValue[]; | 
| interface HeatmapStateOption<TCbParams = never> { | 
|     itemStyle?: ItemStyleOption<TCbParams> & { | 
|         borderRadius?: number | number[]; | 
|     }; | 
|     label?: SeriesLabelOption; | 
| } | 
| interface FunnelStatesMixin$1 { | 
|     emphasis?: DefaultStatesMixinEmphasis; | 
| } | 
| interface HeatmapDataItemOption extends HeatmapStateOption, StatesOptionMixin<HeatmapStateOption, FunnelStatesMixin$1> { | 
|     value: HeatmapDataValue; | 
| } | 
| interface HeatmapSeriesOption extends SeriesOption<HeatmapStateOption<CallbackDataParams>, FunnelStatesMixin$1>, HeatmapStateOption<CallbackDataParams>, SeriesOnCartesianOptionMixin, SeriesOnGeoOptionMixin, SeriesOnCalendarOptionMixin, SeriesEncodeOptionMixin { | 
|     type?: 'heatmap'; | 
|     coordinateSystem?: 'cartesian2d' | 'geo' | 'calendar'; | 
|     blurSize?: number; | 
|     pointSize?: number; | 
|     maxOpacity?: number; | 
|     minOpacity?: number; | 
|     data?: (HeatmapDataItemOption | HeatmapDataValue)[]; | 
| } | 
|   | 
| interface PictorialBarStateOption { | 
|     itemStyle?: ItemStyleOption; | 
|     label?: SeriesLabelOption; | 
| } | 
| interface PictorialBarSeriesSymbolOption { | 
|     /** | 
|      * Customized bar shape | 
|      */ | 
|     symbol?: string; | 
|     /** | 
|      * Can be ['100%', '100%'], null means auto. | 
|      * The percent will be relative to category width. If no repeat. | 
|      * Will be relative to symbolBoundingData. | 
|      */ | 
|     symbolSize?: (number | string)[] | number | string; | 
|     symbolRotate?: number; | 
|     /** | 
|      * Default to be auto | 
|      */ | 
|     symbolPosition?: 'start' | 'end' | 'center'; | 
|     /** | 
|      * Can be percent offset relative to the symbolSize | 
|      */ | 
|     symbolOffset?: (number | string)[] | number | string; | 
|     /** | 
|      * start margin and end margin. Can be a number or a percent string relative to symbolSize. | 
|      * Auto margin by default. | 
|      */ | 
|     symbolMargin?: (number | string)[] | number | string; | 
|     /** | 
|      * true: means auto calculate repeat times and cut by data. | 
|      * a number: specifies repeat times, and do not cut by data. | 
|      * 'fixed': means auto calculate repeat times but do not cut by data. | 
|      * | 
|      * Otherwise means no repeat | 
|      */ | 
|     symbolRepeat?: boolean | number | 'fixed'; | 
|     /** | 
|      * From start to end or end to start. | 
|      */ | 
|     symbolRepeatDirection?: 'start' | 'end'; | 
|     symbolClip?: boolean; | 
|     /** | 
|      * It will define the size of graphic elements. | 
|      */ | 
|     symbolBoundingData?: number | number[]; | 
|     symbolPatternSize?: number; | 
| } | 
| interface ExtraStateOption$5 { | 
|     emphasis?: { | 
|         focus?: DefaultEmphasisFocus; | 
|         scale?: boolean; | 
|     }; | 
| } | 
| interface PictorialBarDataItemOption extends PictorialBarSeriesSymbolOption, AnimationOptionMixin, PictorialBarStateOption, StatesOptionMixin<PictorialBarStateOption, ExtraStateOption$5>, OptionDataItemObject<OptionDataValue> { | 
|     z?: number; | 
|     cursor?: string; | 
| } | 
| interface PictorialBarSeriesOption extends BaseBarSeriesOption<PictorialBarStateOption, ExtraStateOption$5>, PictorialBarStateOption, PictorialBarSeriesSymbolOption, SeriesStackOptionMixin, SeriesEncodeOptionMixin { | 
|     type?: 'pictorialBar'; | 
|     coordinateSystem?: 'cartesian2d'; | 
|     data?: (PictorialBarDataItemOption | OptionDataValue | OptionDataValue[])[]; | 
|     clip?: boolean; | 
| } | 
|   | 
| interface ThemeRiverSeriesLabelOption extends SeriesLabelOption { | 
|     margin?: number; | 
| } | 
| declare type ThemerRiverDataItem = [OptionDataValueDate, OptionDataValueNumeric, string]; | 
| interface ThemeRiverStatesMixin { | 
|     emphasis?: DefaultStatesMixinEmphasis; | 
| } | 
| interface ThemeRiverStateOption<TCbParams = never> { | 
|     label?: ThemeRiverSeriesLabelOption; | 
|     itemStyle?: ItemStyleOption<TCbParams>; | 
| } | 
| interface ThemeRiverSeriesOption extends SeriesOption<ThemeRiverStateOption<CallbackDataParams>, ThemeRiverStatesMixin>, ThemeRiverStateOption<CallbackDataParams>, SeriesOnSingleOptionMixin, BoxLayoutOptionMixin { | 
|     type?: 'themeRiver'; | 
|     color?: ZRColor[]; | 
|     coordinateSystem?: 'singleAxis'; | 
|     /** | 
|      * gap in axis's orthogonal orientation | 
|      */ | 
|     boundaryGap?: (string | number)[]; | 
|     /** | 
|      * [date, value, name] | 
|      */ | 
|     data?: ThemerRiverDataItem[]; | 
| } | 
|   | 
| interface SunburstItemStyleOption<TCbParams = never> extends ItemStyleOption<TCbParams> { | 
|     borderRadius?: (number | string)[] | number | string; | 
| } | 
| interface SunburstLabelOption extends Omit<SeriesLabelOption<SunburstDataParams>, 'rotate' | 'position'> { | 
|     rotate?: 'radial' | 'tangential' | number; | 
|     minAngle?: number; | 
|     silent?: boolean; | 
|     position?: SeriesLabelOption['position'] | 'outside'; | 
| } | 
| interface SunburstDataParams extends CallbackDataParams { | 
|     treePathInfo: { | 
|         name: string; | 
|         dataIndex: number; | 
|         value: SunburstSeriesNodeItemOption['value']; | 
|     }[]; | 
| } | 
| interface SunburstStatesMixin { | 
|     emphasis?: { | 
|         focus?: DefaultEmphasisFocus | 'descendant' | 'ancestor' | 'relative'; | 
|     }; | 
| } | 
| interface SunburstStateOption<TCbParams = never> { | 
|     itemStyle?: SunburstItemStyleOption<TCbParams>; | 
|     label?: SunburstLabelOption; | 
| } | 
| interface SunburstSeriesNodeItemOption extends SunburstStateOption<SunburstDataParams>, StatesOptionMixin<SunburstStateOption<SunburstDataParams>, SunburstStatesMixin>, OptionDataItemObject<OptionDataValue> { | 
|     nodeClick?: 'rootToNode' | 'link' | false; | 
|     link?: string; | 
|     target?: string; | 
|     children?: SunburstSeriesNodeItemOption[]; | 
|     collapsed?: boolean; | 
|     cursor?: string; | 
| } | 
| interface SunburstSeriesLevelOption extends SunburstStateOption<SunburstDataParams>, StatesOptionMixin<SunburstStateOption<SunburstDataParams>, SunburstStatesMixin> { | 
|     radius?: (number | string)[]; | 
|     /** | 
|      * @deprecated use radius instead | 
|      */ | 
|     r?: number | string; | 
|     /** | 
|      * @deprecated use radius instead | 
|      */ | 
|     r0?: number | string; | 
|     highlight?: { | 
|         itemStyle?: SunburstItemStyleOption; | 
|         label?: SunburstLabelOption; | 
|     }; | 
| } | 
| interface SortParam { | 
|     dataIndex: number; | 
|     depth: number; | 
|     height: number; | 
|     getValue(): number; | 
| } | 
| interface SunburstSeriesOption extends SeriesOption<SunburstStateOption<SunburstDataParams>, SunburstStatesMixin>, SunburstStateOption<SunburstDataParams>, SunburstColorByMixin, CircleLayoutOptionMixin { | 
|     type?: 'sunburst'; | 
|     clockwise?: boolean; | 
|     startAngle?: number; | 
|     minAngle?: number; | 
|     /** | 
|      * If still show when all data zero. | 
|      */ | 
|     stillShowZeroSum?: boolean; | 
|     /** | 
|      * Policy of highlighting pieces when hover on one | 
|      * Valid values: 'none' (for not downplay others), 'descendant', | 
|      * 'ancestor', 'self' | 
|      */ | 
|     nodeClick?: 'rootToNode' | 'link' | false; | 
|     renderLabelForZeroData?: boolean; | 
|     data?: SunburstSeriesNodeItemOption[]; | 
|     levels?: SunburstSeriesLevelOption[]; | 
|     animationType?: 'expansion' | 'scale'; | 
|     sort?: 'desc' | 'asc' | ((a: SortParam, b: SortParam) => number); | 
| } | 
|   | 
| interface GraphicComponentBaseElementOption extends Partial<Pick<Element, TransformProp | 'silent' | 'ignore' | 'textConfig' | 'draggable' | ElementEventNameWithOn>>,  | 
| /** | 
|  * left/right/top/bottom: (like 12, '22%', 'center', default undefined) | 
|  * If left/right is set, shape.x/shape.cx/position will not be used. | 
|  * If top/bottom is set, shape.y/shape.cy/position will not be used. | 
|  * This mechanism is useful when you want to position a group/element | 
|  * against the right side or the center of this container. | 
|  */ | 
| Partial<Pick<BoxLayoutOptionMixin, 'left' | 'right' | 'top' | 'bottom'>> { | 
|     /** | 
|      * element type, mandatory. | 
|      * Only can be omit if call setOption not at the first time and perform merge. | 
|      */ | 
|     type?: string; | 
|     id?: OptionId; | 
|     name?: string; | 
|     parentId?: OptionId; | 
|     parentOption?: GraphicComponentElementOption; | 
|     children?: GraphicComponentElementOption[]; | 
|     hv?: [boolean, boolean]; | 
|     /** | 
|      * bounding: (enum: 'all' (default) | 'raw') | 
|      * Specify how to calculate boundingRect when locating. | 
|      * 'all': Get uioned and transformed boundingRect | 
|      *     from both itself and its descendants. | 
|      *     This mode simplies confining a group of elements in the bounding | 
|      *     of their ancester container (e.g., using 'right: 0'). | 
|      * 'raw': Only use the boundingRect of itself and before transformed. | 
|      *     This mode is similar to css behavior, which is useful when you | 
|      *     want an element to be able to overflow its container. (Consider | 
|      *     a rotated circle needs to be located in a corner.) | 
|      */ | 
|     bounding?: 'raw' | 'all'; | 
|     /** | 
|      * info: custom info. enables user to mount some info on elements and use them | 
|      * in event handlers. Update them only when user specified, otherwise, remain. | 
|      */ | 
|     info?: GraphicExtraElementInfo; | 
|     clipPath?: Omit<GraphicComponentZRPathOption, 'clipPath'> | false; | 
|     textContent?: Omit<GraphicComponentTextOption, 'clipPath'>; | 
|     textConfig?: ElementTextConfig; | 
|     $action?: 'merge' | 'replace' | 'remove'; | 
|     tooltip?: CommonTooltipOption<unknown>; | 
|     enterAnimation?: AnimationOption$1; | 
|     updateAnimation?: AnimationOption$1; | 
|     leaveAnimation?: AnimationOption$1; | 
| } | 
| interface GraphicComponentDisplayableOption extends GraphicComponentBaseElementOption, Partial<Pick<Displayable, 'zlevel' | 'z' | 'z2' | 'invisible' | 'cursor'>> { | 
|     style?: ZRStyleProps; | 
|     z2?: number; | 
| } | 
| interface GraphicComponentGroupOption extends GraphicComponentBaseElementOption, TransitionOptionMixin<GroupProps> { | 
|     type?: 'group'; | 
|     /** | 
|      * width/height: (can only be pixel value, default 0) | 
|      * Is only used to specify container (group) size, if needed. And | 
|      * cannot be a percentage value (like '33%'). See the reason in the | 
|      * layout algorithm below. | 
|      */ | 
|     width?: number; | 
|     height?: number; | 
|     children: GraphicComponentElementOption[]; | 
|     keyframeAnimation?: ElementKeyframeAnimationOption<GroupProps> | ElementKeyframeAnimationOption<GroupProps>[]; | 
| } | 
| interface GraphicComponentZRPathOption extends GraphicComponentDisplayableOption, TransitionOptionMixin<PathProps> { | 
|     shape?: PathProps['shape'] & TransitionOptionMixin<PathProps['shape']>; | 
|     style?: PathStyleProps & TransitionOptionMixin<PathStyleProps>; | 
|     keyframeAnimation?: ElementKeyframeAnimationOption<PathProps> | ElementKeyframeAnimationOption<PathProps>[]; | 
| } | 
| interface GraphicComponentImageOption extends GraphicComponentDisplayableOption, TransitionOptionMixin<ImageProps> { | 
|     type?: 'image'; | 
|     style?: ImageStyleProps & TransitionOptionMixin<ImageStyleProps>; | 
|     keyframeAnimation?: ElementKeyframeAnimationOption<ImageProps> | ElementKeyframeAnimationOption<ImageProps>[]; | 
| } | 
| interface GraphicComponentTextOption extends Omit<GraphicComponentDisplayableOption, 'textContent' | 'textConfig'>, TransitionOptionMixin<TextProps> { | 
|     type?: 'text'; | 
|     style?: TextStyleProps & TransitionOptionMixin<TextStyleProps>; | 
|     keyframeAnimation?: ElementKeyframeAnimationOption<TextProps> | ElementKeyframeAnimationOption<TextProps>[]; | 
| } | 
| declare type GraphicComponentElementOption = GraphicComponentGroupOption | GraphicComponentZRPathOption | GraphicComponentImageOption | GraphicComponentTextOption; | 
| declare type GraphicExtraElementInfo = Dictionary<unknown>; | 
| declare type GraphicComponentLooseOption = (GraphicComponentOption | GraphicComponentElementOption) & { | 
|     mainType?: 'graphic'; | 
| }; | 
| interface GraphicComponentOption extends ComponentOption, AnimationOptionMixin { | 
|     elements?: GraphicComponentElementOption[]; | 
| } | 
|   | 
| declare const ICON_TYPES: readonly ["rect", "polygon", "lineX", "lineY", "keep", "clear"]; | 
| declare type IconType = typeof ICON_TYPES[number]; | 
| interface ToolboxBrushFeatureOption extends ToolboxFeatureOption { | 
|     type?: IconType[]; | 
|     icon?: { | 
|         [key in IconType]?: string; | 
|     }; | 
|     title?: { | 
|         [key in IconType]?: string; | 
|     }; | 
| } | 
|   | 
| interface ToolboxDataViewFeatureOption extends ToolboxFeatureOption { | 
|     readOnly?: boolean; | 
|     optionToContent?: (option: ECUnitOption) => string | HTMLElement; | 
|     contentToOption?: (viewMain: HTMLDivElement, oldOption: ECUnitOption) => ECUnitOption; | 
|     icon?: string; | 
|     title?: string; | 
|     lang?: string[]; | 
|     backgroundColor?: ColorString; | 
|     textColor?: ColorString; | 
|     textareaColor?: ColorString; | 
|     textareaBorderColor?: ColorString; | 
|     buttonColor?: ColorString; | 
|     buttonTextColor?: ColorString; | 
| } | 
|   | 
| declare const ICON_TYPES$1: readonly ["zoom", "back"]; | 
| declare type IconType$1 = typeof ICON_TYPES$1[number]; | 
| interface ToolboxDataZoomFeatureOption extends ToolboxFeatureOption { | 
|     type?: IconType$1[]; | 
|     icon?: { | 
|         [key in IconType$1]?: string; | 
|     }; | 
|     title?: { | 
|         [key in IconType$1]?: string; | 
|     }; | 
|     filterMode?: 'filter' | 'weakFilter' | 'empty' | 'none'; | 
|     xAxisIndex?: ModelFinderIndexQuery; | 
|     yAxisIndex?: ModelFinderIndexQuery; | 
|     xAxisId?: ModelFinderIdQuery; | 
|     yAxisId?: ModelFinderIdQuery; | 
|     brushStyle?: ItemStyleOption; | 
| } | 
|   | 
| declare const ICON_TYPES$2: readonly ["line", "bar", "stack"]; | 
| declare const TITLE_TYPES: readonly ["line", "bar", "stack", "tiled"]; | 
| declare type IconType$2 = typeof ICON_TYPES$2[number]; | 
| declare type TitleType = typeof TITLE_TYPES[number]; | 
| interface ToolboxMagicTypeFeatureOption extends ToolboxFeatureOption { | 
|     type?: IconType$2[]; | 
|     /** | 
|      * Icon group | 
|      */ | 
|     icon?: { | 
|         [key in IconType$2]?: string; | 
|     }; | 
|     title?: { | 
|         [key in TitleType]?: string; | 
|     }; | 
|     option?: { | 
|         [key in IconType$2]?: SeriesOption; | 
|     }; | 
|     /** | 
|      * Map of seriesType: seriesIndex | 
|      */ | 
|     seriesIndex?: { | 
|         line?: number; | 
|         bar?: number; | 
|     }; | 
| } | 
|   | 
| interface ToolboxRestoreFeatureOption extends ToolboxFeatureOption { | 
|     icon?: string; | 
|     title?: string; | 
| } | 
|   | 
| interface ToolboxSaveAsImageFeatureOption extends ToolboxFeatureOption { | 
|     icon?: string; | 
|     title?: string; | 
|     type?: 'png' | 'jpeg'; | 
|     backgroundColor?: ZRColor; | 
|     connectedBackgroundColor?: ZRColor; | 
|     name?: string; | 
|     excludeComponents?: string[]; | 
|     pixelRatio?: number; | 
|     lang?: string[]; | 
| } | 
|   | 
| interface ToolboxComponentOption extends ToolboxOption { | 
|     feature?: { | 
|         brush?: ToolboxBrushFeatureOption; | 
|         dataView?: ToolboxDataViewFeatureOption; | 
|         dataZoom?: ToolboxDataZoomFeatureOption; | 
|         magicType?: ToolboxMagicTypeFeatureOption; | 
|         restore?: ToolboxRestoreFeatureOption; | 
|         saveAsImage?: ToolboxSaveAsImageFeatureOption; | 
|         [key: string]: ToolboxFeatureOption | { | 
|             [key: string]: any; | 
|         } | undefined; | 
|     }; | 
| } | 
|   | 
| declare type DataZoomComponentOption = SliderDataZoomOption | InsideDataZoomOption; | 
|   | 
| declare type VisualMapComponentOption = ContinousVisualMapOption | PiecewiseVisualMapOption; | 
|   | 
| declare type LegendComponentOption = LegendOption | ScrollableLegendOption; | 
|   | 
| declare type SeriesInjectedOption = { | 
|     markArea?: MarkAreaOption; | 
|     markLine?: MarkLineOption; | 
|     markPoint?: MarkPointOption; | 
|     tooltip?: SeriesTooltipOption; | 
| }; | 
| declare type LineSeriesOption$1 = LineSeriesOption & SeriesInjectedOption; | 
| declare type BarSeriesOption$1 = BarSeriesOption & SeriesInjectedOption; | 
| declare type ScatterSeriesOption$1 = ScatterSeriesOption & SeriesInjectedOption; | 
| declare type PieSeriesOption$1 = PieSeriesOption & SeriesInjectedOption; | 
| declare type RadarSeriesOption$1 = RadarSeriesOption & SeriesInjectedOption; | 
| declare type MapSeriesOption$1 = MapSeriesOption & SeriesInjectedOption; | 
| declare type TreeSeriesOption$1 = TreeSeriesOption & SeriesInjectedOption; | 
| declare type TreemapSeriesOption$1 = TreemapSeriesOption & SeriesInjectedOption; | 
| declare type GraphSeriesOption$1 = GraphSeriesOption & SeriesInjectedOption; | 
| declare type GaugeSeriesOption$1 = GaugeSeriesOption & SeriesInjectedOption; | 
| declare type FunnelSeriesOption$1 = FunnelSeriesOption & SeriesInjectedOption; | 
| declare type ParallelSeriesOption$1 = ParallelSeriesOption & SeriesInjectedOption; | 
| declare type SankeySeriesOption$1 = SankeySeriesOption & SeriesInjectedOption; | 
| declare type BoxplotSeriesOption$1 = BoxplotSeriesOption & SeriesInjectedOption; | 
| declare type CandlestickSeriesOption$1 = CandlestickSeriesOption & SeriesInjectedOption; | 
| declare type EffectScatterSeriesOption$1 = EffectScatterSeriesOption & SeriesInjectedOption; | 
| declare type LinesSeriesOption$1 = LinesSeriesOption & SeriesInjectedOption; | 
| declare type HeatmapSeriesOption$1 = HeatmapSeriesOption & SeriesInjectedOption; | 
| declare type PictorialBarSeriesOption$1 = PictorialBarSeriesOption & SeriesInjectedOption; | 
| declare type ThemeRiverSeriesOption$1 = ThemeRiverSeriesOption & SeriesInjectedOption; | 
| declare type SunburstSeriesOption$1 = SunburstSeriesOption & SeriesInjectedOption; | 
| declare type CustomSeriesOption$1 = CustomSeriesOption & SeriesInjectedOption; | 
| /** | 
|  * A map from series 'type' to series option | 
|  * It's used for declaration merging in echarts extensions. | 
|  * For example: | 
|  * ```ts | 
|  * import echarts from 'echarts'; | 
|  * declare module 'echarts/types/dist/echarts' { | 
|  *   interface RegisteredSeriesOption { | 
|  *     wordCloud: WordCloudSeriesOption | 
|  *   } | 
|  * } | 
|  * ``` | 
|  */ | 
| interface RegisteredSeriesOption { | 
|     line: LineSeriesOption$1; | 
|     bar: BarSeriesOption$1; | 
|     scatter: ScatterSeriesOption$1; | 
|     pie: PieSeriesOption$1; | 
|     radar: RadarSeriesOption$1; | 
|     map: MapSeriesOption$1; | 
|     tree: TreeSeriesOption$1; | 
|     treemap: TreemapSeriesOption$1; | 
|     graph: GraphSeriesOption$1; | 
|     gauge: GaugeSeriesOption$1; | 
|     funnel: FunnelSeriesOption$1; | 
|     parallel: ParallelSeriesOption$1; | 
|     sankey: SankeySeriesOption$1; | 
|     boxplot: BoxplotSeriesOption$1; | 
|     candlestick: CandlestickSeriesOption$1; | 
|     effectScatter: EffectScatterSeriesOption$1; | 
|     lines: LinesSeriesOption$1; | 
|     heatmap: HeatmapSeriesOption$1; | 
|     pictorialBar: PictorialBarSeriesOption$1; | 
|     themeRiver: ThemeRiverSeriesOption$1; | 
|     sunburst: SunburstSeriesOption$1; | 
|     custom: CustomSeriesOption$1; | 
| } | 
| declare type Values<T> = T[keyof T]; | 
| declare type SeriesOption$1 = Values<RegisteredSeriesOption>; | 
| interface EChartsOption extends ECBasicOption { | 
|     dataset?: DatasetOption | DatasetOption[]; | 
|     aria?: AriaOption; | 
|     title?: TitleOption | TitleOption[]; | 
|     grid?: GridOption | GridOption[]; | 
|     radar?: RadarOption | RadarOption[]; | 
|     polar?: PolarOption | PolarOption[]; | 
|     geo?: GeoOption | GeoOption[]; | 
|     angleAxis?: AngleAxisOption | AngleAxisOption[]; | 
|     radiusAxis?: RadiusAxisOption | RadiusAxisOption[]; | 
|     xAxis?: XAXisOption | XAXisOption[]; | 
|     yAxis?: YAXisOption | YAXisOption[]; | 
|     singleAxis?: SingleAxisOption | SingleAxisOption[]; | 
|     parallel?: ParallelCoordinateSystemOption | ParallelCoordinateSystemOption[]; | 
|     parallelAxis?: ParallelAxisOption | ParallelAxisOption[]; | 
|     calendar?: CalendarOption | CalendarOption[]; | 
|     toolbox?: ToolboxComponentOption | ToolboxComponentOption[]; | 
|     tooltip?: TooltipOption | TooltipOption[]; | 
|     axisPointer?: AxisPointerOption | AxisPointerOption[]; | 
|     brush?: BrushOption | BrushOption[]; | 
|     timeline?: TimelineOption | SliderTimelineOption; | 
|     legend?: LegendComponentOption | (LegendComponentOption)[]; | 
|     dataZoom?: DataZoomComponentOption | (DataZoomComponentOption)[]; | 
|     visualMap?: VisualMapComponentOption | (VisualMapComponentOption)[]; | 
|     graphic?: GraphicComponentLooseOption | GraphicComponentLooseOption[]; | 
|     series?: SeriesOption$1 | SeriesOption$1[]; | 
|     options?: EChartsOption[]; | 
|     baseOption?: EChartsOption; | 
| } | 
|   | 
| export { AngleAxisOption as AngleAxisComponentOption, AnimationDelayCallback, AnimationDelayCallbackParam as AnimationDelayCallbackParams, AnimationDurationCallback, AriaOption as AriaComponentOption, Axis, AxisPointerOption as AxisPointerComponentOption, BarSeriesOption$1 as BarSeriesOption, BoxplotSeriesOption$1 as BoxplotSeriesOption, BrushOption as BrushComponentOption, CalendarOption as CalendarComponentOption, CandlestickSeriesOption$1 as CandlestickSeriesOption, ChartView, ZRColor as Color, ComponentModel, ComponentView, ComposeOption, ContinousVisualMapOption as ContinousVisualMapComponentOption, CustomSeriesOption$1 as CustomSeriesOption, CustomSeriesRenderItem, CustomSeriesRenderItemAPI, CustomSeriesRenderItemParams, CustomSeriesRenderItemReturn, DataZoomComponentOption, DatasetOption as DatasetComponentOption, CallbackDataParams as DefaultLabelFormatterCallbackParams, DownplayPayload, ECElementEvent, EChartsType as ECharts, ECBasicOption as EChartsCoreOption, EChartsInitOpts, EChartsOption, EChartsType, EffectScatterSeriesOption$1 as EffectScatterSeriesOption, ElementEvent, FunnelSeriesOption$1 as FunnelSeriesOption, GaugeSeriesOption$1 as GaugeSeriesOption, GeoOption as GeoComponentOption, GraphSeriesOption$1 as GraphSeriesOption, GraphicComponentLooseOption as GraphicComponentOption, GridOption as GridComponentOption, HeatmapSeriesOption$1 as HeatmapSeriesOption, HighlightPayload, ImagePatternObject, InsideDataZoomOption as InsideDataZoomComponentOption, LabelFormatterCallback, LabelLayoutOptionCallback, LabelLayoutOptionCallbackParams, LegendComponentOption, LineSeriesOption$1 as LineSeriesOption, LinearGradientObject, LinesSeriesOption$1 as LinesSeriesOption, SeriesData as List, MapSeriesOption$1 as MapSeriesOption, MarkAreaOption as MarkAreaComponentOption, MarkLineOption as MarkLineComponentOption, MarkPointOption as MarkPointComponentOption, Model, PRIORITY, ParallelCoordinateSystemOption as ParallelComponentOption, ParallelSeriesOption$1 as ParallelSeriesOption, PatternObject, Payload, PictorialBarSeriesOption$1 as PictorialBarSeriesOption, PieSeriesOption$1 as PieSeriesOption, PiecewiseVisualMapOption as PiecewiseVisualMapComponentOption, LegendOption as PlainLegendComponentOption, PolarOption as PolarComponentOption, RadarOption as RadarComponentOption, RadarSeriesOption$1 as RadarSeriesOption, RadialGradientObject, RadiusAxisOption as RadiusAxisComponentOption, RegisteredSeriesOption, ResizeOpts, SVGPatternObject, SankeySeriesOption$1 as SankeySeriesOption, ScatterSeriesOption$1 as ScatterSeriesOption, ScrollableLegendOption as ScrollableLegendComponentOption, SelectChangedPayload, SeriesModel, SeriesOption$1 as SeriesOption, SetOptionOpts, SetOptionTransitionOpt, SetOptionTransitionOptItem, SingleAxisOption as SingleAxisComponentOption, SliderDataZoomOption as SliderDataZoomComponentOption, SunburstSeriesOption$1 as SunburstSeriesOption, ThemeRiverSeriesOption$1 as ThemeRiverSeriesOption, TimelineOption as TimelineComponentOption, TitleOption as TitleComponentOption, ToolboxComponentOption, TooltipFormatterCallback as TooltipComponentFormatterCallback, TopLevelFormatterParams as TooltipComponentFormatterCallbackParams, TooltipOption as TooltipComponentOption, TooltipPositionCallback as TooltipComponentPositionCallback, TooltipPositionCallbackParams as TooltipComponentPositionCallbackParams, TreeSeriesOption$1 as TreeSeriesOption, TreemapSeriesOption$1 as TreemapSeriesOption, VisualMapComponentOption, XAXisOption as XAXisComponentOption, YAXisOption as YAXisComponentOption, color_d as color, connect, dataTool, dependencies, disConnect, disconnect, dispose$1 as dispose, env, extendChartView, extendComponentModel, extendComponentView, extendSeriesModel, format_d as format, getCoordinateSystemDimensions, getInstanceByDom, getInstanceById, getMap, graphic_d as graphic, helper_d as helper, init$1 as init, brushSingle as innerDrawElementOnCanvas, matrix_d as matrix, number_d as number, parseGeoJSON, parseGeoJSON as parseGeoJson, registerAction, registerCoordinateSystem, registerLayout, registerLoading, registerLocale, registerMap, registerPostInit, registerPostUpdate, registerPreprocessor, registerProcessor, registerTheme, registerTransform, registerUpdateLifecycle, registerVisual, setCanvasCreator, setPlatformAPI, throttle, time_d as time, use, util_d$1 as util, vector_d as vector, version$1 as version, util_d as zrUtil, zrender_d as zrender }; |