| import { PathStyleProps } from 'zrender/lib/graphic/Path.js'; | 
| import Model from '../model/Model.js'; | 
| import DataDiffer from './DataDiffer.js'; | 
| import { DataProvider } from './helper/dataProvider.js'; | 
| import { DimensionSummary } from './helper/dimensionHelper.js'; | 
| import SeriesDimensionDefine from './SeriesDimensionDefine.js'; | 
| import { ArrayLike, Dictionary, FunctionPropertyNames } from 'zrender/lib/core/types.js'; | 
| import Element from 'zrender/lib/Element.js'; | 
| import { DimensionIndex, DimensionName, DimensionLoose, OptionDataItem, ParsedValue, ParsedValueNumeric, SeriesDataType, OptionSourceData, DecalObject, OrdinalNumber } from '../util/types.js'; | 
| import type Graph from './Graph.js'; | 
| import type Tree from './Tree.js'; | 
| import type { VisualMeta } from '../component/visualMap/VisualMapModel.js'; | 
| import { Source } from './Source.js'; | 
| import { LineStyleProps } from '../model/mixin/lineStyle.js'; | 
| import DataStore, { DimValueGetter } from './DataStore.js'; | 
| import { SeriesDataSchema } from './helper/SeriesDataSchema.js'; | 
| 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<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<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; | 
| export 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; | 
| } | 
| export 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<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<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<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<ParsedValue>) => ParsedValueNumeric, sampleIndex: (frameValues: ArrayLike<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; | 
|     }[]; | 
| } | 
| export default SeriesData; |