import { Source } from '../Source.js'; 
 | 
import { DimensionName, OptionEncode, DimensionIndex, SeriesEncodableModel } from '../../util/types.js'; 
 | 
import { DatasetModel } from '../../component/dataset/install.js'; 
 | 
import SeriesModel from '../../model/Series.js'; 
 | 
import GlobalModel from '../../model/Global.js'; 
 | 
import { CoordDimensionDefinition } from './createDimensions.js'; 
 | 
export declare const BE_ORDINAL: { 
 | 
    Must: number; 
 | 
    Might: number; 
 | 
    Not: number; 
 | 
}; 
 | 
declare type BeOrdinalValue = (typeof BE_ORDINAL)[keyof typeof BE_ORDINAL]; 
 | 
declare type SeriesEncodeInternal = { 
 | 
    [key in keyof OptionEncode]: DimensionIndex[]; 
 | 
}; 
 | 
/** 
 | 
 * MUST be called before mergeOption of all series. 
 | 
 */ 
 | 
export declare function resetSourceDefaulter(ecModel: GlobalModel): void; 
 | 
/** 
 | 
 * [The strategy of the arrengment of data dimensions for dataset]: 
 | 
 * "value way": all axes are non-category axes. So series one by one take 
 | 
 *     several (the number is coordSysDims.length) dimensions from dataset. 
 | 
 *     The result of data arrengment of data dimensions like: 
 | 
 *     | ser0_x | ser0_y | ser1_x | ser1_y | ser2_x | ser2_y | 
 | 
 * "category way": at least one axis is category axis. So the the first data 
 | 
 *     dimension is always mapped to the first category axis and shared by 
 | 
 *     all of the series. The other data dimensions are taken by series like 
 | 
 *     "value way" does. 
 | 
 *     The result of data arrengment of data dimensions like: 
 | 
 *     | ser_shared_x | ser0_y | ser1_y | ser2_y | 
 | 
 * 
 | 
 * @return encode Never be `null/undefined`. 
 | 
 */ 
 | 
export declare function makeSeriesEncodeForAxisCoordSys(coordDimensions: (DimensionName | CoordDimensionDefinition)[], seriesModel: SeriesModel, source: Source): SeriesEncodeInternal; 
 | 
/** 
 | 
 * Work for data like [{name: ..., value: ...}, ...]. 
 | 
 * 
 | 
 * @return encode Never be `null/undefined`. 
 | 
 */ 
 | 
export declare function makeSeriesEncodeForNameBased(seriesModel: SeriesModel, source: Source, dimCount: number): SeriesEncodeInternal; 
 | 
/** 
 | 
 * @return If return null/undefined, indicate that should not use datasetModel. 
 | 
 */ 
 | 
export declare function querySeriesUpstreamDatasetModel(seriesModel: SeriesEncodableModel): DatasetModel; 
 | 
/** 
 | 
 * @return Always return an array event empty. 
 | 
 */ 
 | 
export declare function queryDatasetUpstreamDatasetModels(datasetModel: DatasetModel): DatasetModel[]; 
 | 
/** 
 | 
 * The rule should not be complex, otherwise user might not 
 | 
 * be able to known where the data is wrong. 
 | 
 * The code is ugly, but how to make it neat? 
 | 
 */ 
 | 
export declare function guessOrdinal(source: Source, dimIndex: DimensionIndex): BeOrdinalValue; 
 | 
export {}; 
 |