import Source, { SourceMetaRawOption } from '../Source';
import { SourceFormat, OptionSourceData, SeriesLayoutBy, OptionSourceHeader, DimensionName, DimensionDefinition, DimensionDefinitionLoose, OptionEncode, DimensionIndex, SeriesEncodableModel } from '../../util/types';
import { DatasetModel, DatasetOption } from '../../component/dataset';
import SeriesModel from '../../model/Series';
import GlobalModel from '../../model/Global';
import { CoordDimensionDefinition } from './createDimensions';
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[];
};
export declare function detectSourceFormat(data: DatasetOption['source']): SourceFormat;
export declare function resetSourceDefaulter(ecModel: GlobalModel): void;
export declare function createSource(sourceData: OptionSourceData, thisMetaRawOption: SourceMetaRawOption, sourceFormat: SourceFormat, encodeDefine: OptionEncode): Source;
export declare function inheritSourceMetaRawOption(opt: {
    parent: SourceMetaRawOption;
    thisNew: SourceMetaRawOption;
}): SourceMetaRawOption;
export declare function cloneSourceShallow(source: Source): Source;
export declare function determineSourceDimensions(data: OptionSourceData, sourceFormat: SourceFormat, seriesLayoutBy: SeriesLayoutBy, sourceHeader: OptionSourceHeader, dimensionsDefine: DimensionDefinitionLoose[]): {
    dimensionsDefine: DimensionDefinition[];
    startIndex: number;
    dimensionsDetectCount: number;
};
export declare function makeSeriesEncodeForAxisCoordSys(coordDimensions: (DimensionName | CoordDimensionDefinition)[], seriesModel: SeriesModel, source: Source): SeriesEncodeInternal;
export declare function makeSeriesEncodeForNameBased(seriesModel: SeriesModel, source: Source, dimCount: number): SeriesEncodeInternal;
export declare function querySeriesUpstreamDatasetModel(seriesModel: SeriesEncodableModel): DatasetModel;
export declare function queryDatasetUpstreamDatasetModels(datasetModel: DatasetModel): DatasetModel[];
export declare function guessOrdinal(source: Source, dimIndex: DimensionIndex): BeOrdinalValue;
export {};
