| import { Source } from '../Source.js'; | 
| import { ArrayLike } from 'zrender/lib/core/types.js'; | 
| import { DimensionName, DimensionIndex, OptionSourceData, OptionDataItem, OptionDataValue, SourceFormat, SeriesLayoutBy, ParsedValue, DimensionLoose, NullUndefined } from '../../util/types.js'; | 
| import SeriesData from '../SeriesData.js'; | 
| export 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<ParsedValue>[], extent: number[][]): void; | 
|     appendData?(newData: ArrayLike<OptionDataItem>): void; | 
|     clean?(): void; | 
| } | 
| export interface DefaultDataProvider { | 
|     fillStorage?(start: number, end: number, out: ArrayLike<ParsedValue>[], extent: number[][]): void; | 
| } | 
| /** | 
|  * If normal array used, mutable chunk size is supported. | 
|  * If typed array used, chunk size must be fixed. | 
|  */ | 
| export declare class DefaultDataProvider implements DataProvider { | 
|     private _source; | 
|     private _data; | 
|     private _offset; | 
|     private _dimSize; | 
|     pure: boolean; | 
|     persistent: boolean; | 
|     static protoInitialize: void; | 
|     constructor(sourceParam: Source | OptionSourceData, dimSize?: number); | 
|     getSource(): Source; | 
|     count(): number; | 
|     getItem(idx: number, out?: ArrayLike<OptionDataValue>): OptionDataItem; | 
|     appendData(newData: OptionSourceData): void; | 
|     clean(): void; | 
|     private static internalField; | 
| } | 
| declare type RawSourceItemGetter = (rawData: OptionSourceData, startIndex: number, dimsDef: { | 
|     name?: DimensionName; | 
| }[], idx: number, out?: ArrayLike<OptionDataValue>) => OptionDataItem | ArrayLike<OptionDataValue>; | 
| export declare function getRawSourceItemGetter(sourceFormat: SourceFormat, seriesLayoutBy: SeriesLayoutBy): RawSourceItemGetter; | 
| declare type RawSourceDataCounter = (rawData: OptionSourceData, startIndex: number, dimsDef: { | 
|     name?: DimensionName; | 
| }[]) => number; | 
| export declare function getRawSourceDataCounter(sourceFormat: SourceFormat, seriesLayoutBy: SeriesLayoutBy): RawSourceDataCounter; | 
| declare type RawSourceValueGetter = (dataItem: OptionDataItem, dimIndex: DimensionIndex, property: DimensionName) => OptionDataValue; | 
| export declare function getRawSourceValueGetter(sourceFormat: SourceFormat): RawSourceValueGetter; | 
| export declare function retrieveRawValue(data: SeriesData, dataIndex: number, dim?: DimensionLoose | NullUndefined): OptionDataValue | OptionDataItem; | 
| /** | 
|  * Compatible with some cases (in pie, map) like: | 
|  * data: [{name: 'xx', value: 5, selected: true}, ...] | 
|  * where only sourceFormat is 'original' and 'objectRows' supported. | 
|  * | 
|  * // TODO | 
|  * Supported detail options in data item when using 'arrayRows'. | 
|  * | 
|  * @param data | 
|  * @param dataIndex | 
|  * @param attr like 'selected' | 
|  */ | 
| export declare function retrieveRawAttr(data: SeriesData, dataIndex: number, attr: string): any; | 
| export {}; |