import { HashMap } from 'zrender/lib/core/util.js'; 
 | 
import { SourceFormat, SeriesLayoutBy, DimensionDefinition, OptionEncodeValue, OptionSourceData, DimensionName, OptionSourceHeader, DimensionDefinitionLoose } from '../util/types.js'; 
 | 
import { DatasetOption } from '../component/dataset/install.js'; 
 | 
/** 
 | 
 * [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" 
 | 
 */ 
 | 
export interface SourceMetaRawOption { 
 | 
    seriesLayoutBy: SeriesLayoutBy; 
 | 
    sourceHeader: OptionSourceHeader; 
 | 
    dimensions: DimensionDefinitionLoose[]; 
 | 
} 
 | 
export 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>; 
 | 
    }); 
 | 
} 
 | 
export declare function isSourceInstance(val: unknown): val is Source; 
 | 
/** 
 | 
 * Create a source from option. 
 | 
 * NOTE: Created source is immutable. Don't change any properties in it. 
 | 
 */ 
 | 
export declare function createSource(sourceData: OptionSourceData, thisMetaRawOption: SourceMetaRawOption, sourceFormat: SourceFormat): Source; 
 | 
/** 
 | 
 * Wrap original series data for some compatibility cases. 
 | 
 */ 
 | 
export declare function createSourceFromSeriesDataOption(data: OptionSourceData): Source; 
 | 
/** 
 | 
 * Clone source but excludes source data. 
 | 
 */ 
 | 
export declare function cloneSourceShallow(source: Source): Source; 
 | 
/** 
 | 
 * Note: An empty array will be detected as `SOURCE_FORMAT_ARRAY_ROWS`. 
 | 
 */ 
 | 
export declare function detectSourceFormat(data: DatasetOption['source']): SourceFormat; 
 | 
export declare function shouldRetrieveDataByName(source: Source): boolean; 
 | 
export {}; 
 |