| import { DatasetModel } from '../../component/dataset/install.js'; | 
| import SeriesModel from '../../model/Series.js'; | 
| import { Source } from '../Source.js'; | 
| import DataStore from '../DataStore.js'; | 
| import { SeriesDataSchema } from './SeriesDataSchema.js'; | 
| /** | 
|  * [REQUIREMENT_MEMO]: | 
|  * (0) `metaRawOption` means `dimensions`/`sourceHeader`/`seriesLayoutBy` in raw option. | 
|  * (1) Keep support the feature: `metaRawOption` can be specified both on `series` and | 
|  * `root-dataset`. Them on `series` has higher priority. | 
|  * (2) Do not support to set `metaRawOption` on a `non-root-dataset`, because it might | 
|  * confuse users: whether those props indicate how to visit the upstream source or visit | 
|  * the transform result source, and some transforms has nothing to do with these props, | 
|  * and some transforms might have multiple upstream. | 
|  * (3) Transforms should specify `metaRawOption` in each output, just like they can be | 
|  * declared in `root-dataset`. | 
|  * (4) At present only support visit source in `SERIES_LAYOUT_BY_COLUMN` in transforms. | 
|  * That is for reducing complexity in transforms. | 
|  * PENDING: Whether to provide transposition transform? | 
|  * | 
|  * [IMPLEMENTAION_MEMO]: | 
|  * "sourceVisitConfig" are calculated from `metaRawOption` and `data`. | 
|  * They will not be calculated until `source` is about to be visited (to prevent from | 
|  * duplicate calcuation). `source` is visited only in series and input to transforms. | 
|  * | 
|  * [DIMENSION_INHERIT_RULE]: | 
|  * By default the dimensions are inherited from ancestors, unless a transform return | 
|  * a new dimensions definition. | 
|  * Consider the case: | 
|  * ```js | 
|  * dataset: [{ | 
|  *     source: [ ['Product', 'Sales', 'Prise'], ['Cookies', 321, 44.21], ...] | 
|  * }, { | 
|  *     transform: { type: 'filter', ... } | 
|  * }] | 
|  * dataset: [{ | 
|  *     dimension: ['Product', 'Sales', 'Prise'], | 
|  *     source: [ ['Cookies', 321, 44.21], ...] | 
|  * }, { | 
|  *     transform: { type: 'filter', ... } | 
|  * }] | 
|  * ``` | 
|  * The two types of option should have the same behavior after transform. | 
|  * | 
|  * | 
|  * [SCENARIO]: | 
|  * (1) Provide source data directly: | 
|  * ```js | 
|  * series: { | 
|  *     encode: {...}, | 
|  *     dimensions: [...] | 
|  *     seriesLayoutBy: 'row', | 
|  *     data: [[...]] | 
|  * } | 
|  * ``` | 
|  * (2) Series refer to dataset. | 
|  * ```js | 
|  * series: [{ | 
|  *     encode: {...} | 
|  *     // Ignore datasetIndex means `datasetIndex: 0` | 
|  *     // and the dimensions defination in dataset is used | 
|  * }, { | 
|  *     encode: {...}, | 
|  *     seriesLayoutBy: 'column', | 
|  *     datasetIndex: 1 | 
|  * }] | 
|  * ``` | 
|  * (3) dataset transform | 
|  * ```js | 
|  * dataset: [{ | 
|  *     source: [...] | 
|  * }, { | 
|  *     source: [...] | 
|  * }, { | 
|  *     // By default from 0. | 
|  *     transform: { type: 'filter', config: {...} } | 
|  * }, { | 
|  *     // Piped. | 
|  *     transform: [ | 
|  *         { type: 'filter', config: {...} }, | 
|  *         { type: 'sort', config: {...} } | 
|  *     ] | 
|  * }, { | 
|  *     id: 'regressionData', | 
|  *     fromDatasetIndex: 1, | 
|  *     // Third-party transform | 
|  *     transform: { type: 'ecStat:regression', config: {...} } | 
|  * }, { | 
|  *     // retrieve the extra result. | 
|  *     id: 'regressionFormula', | 
|  *     fromDatasetId: 'regressionData', | 
|  *     fromTransformResult: 1 | 
|  * }] | 
|  * ``` | 
|  */ | 
| export declare class SourceManager { | 
|     private _sourceHost; | 
|     private _sourceList; | 
|     private _storeList; | 
|     private _upstreamSignList; | 
|     private _versionSignBase; | 
|     private _dirty; | 
|     constructor(sourceHost: DatasetModel | SeriesModel); | 
|     /** | 
|      * Mark dirty. | 
|      */ | 
|     dirty(): void; | 
|     private _setLocalSource; | 
|     /** | 
|      * For detecting whether the upstream source is dirty, so that | 
|      * the local cached source (in `_sourceList`) should be discarded. | 
|      */ | 
|     private _getVersionSign; | 
|     /** | 
|      * Always return a source instance. Otherwise throw error. | 
|      */ | 
|     prepareSource(): void; | 
|     private _createSource; | 
|     private _applyTransform; | 
|     private _isDirty; | 
|     /** | 
|      * @param sourceIndex By default 0, means "main source". | 
|      *                    In most cases there is only one source. | 
|      */ | 
|     getSource(sourceIndex?: number): Source; | 
|     /** | 
|      * | 
|      * Get a data store which can be shared across series. | 
|      * Only available for series. | 
|      * | 
|      * @param seriesDimRequest Dimensions that are generated in series. | 
|      *        Should have been sorted by `storeDimIndex` asc. | 
|      */ | 
|     getSharedDataStore(seriesDimRequest: SeriesDataSchema): DataStore; | 
|     private _innerGetDataStore; | 
|     /** | 
|      * PENDING: Is it fast enough? | 
|      * If no upstream, return empty array. | 
|      */ | 
|     private _getUpstreamSourceManagers; | 
|     private _getSourceMetaRawOption; | 
| } | 
| export declare function disableTransformOptionMerge(datasetModel: DatasetModel): void; |