import type { DataSet } from './data-set';
import type { ITransformOptions } from './transform';
import type { DATAVIEW_TYPE } from './constants';
import type { IParserOptions } from './parser';
export interface IDataViewOptions {
    name?: string | number;
    history?: boolean;
    diffKeys?: string[];
    fields?: IFields;
}
export interface IFieldsMeta {
    type?: 'ordinal' | 'linear';
    domain?: any[];
    sortIndex?: number;
    sortReverse?: boolean;
    [key: string]: unknown;
}
export interface IFields {
    [key: string]: IFieldsMeta;
}
export declare const DataViewDiffRank = "_data-view-diff-rank";
export declare class DataView {
    dataSet: DataSet;
    options?: IDataViewOptions;
    isDataView: boolean;
    type: DATAVIEW_TYPE;
    name: string | number;
    target: any;
    parseOption: IParserOptions;
    transformsArr: Array<ITransformOptions>;
    isRunning: boolean;
    rawData: any;
    history: boolean;
    historyData: any[];
    parserData: any;
    latestData: any;
    protected _fields: IFields;
    private _diffData;
    private _diffKeys;
    _diffMap: Map<string, any>;
    _diffRank: number;
    latestDataAUD: {
        add: any;
        update: any;
        del: any;
    };
    constructor(dataSet: DataSet, options?: IDataViewOptions);
    parse(data: any, options?: IParserOptions, emit?: boolean): DataView;
    transform(options: ITransformOptions, execute?: boolean): DataView;
    private isLastTransform;
    sortTransform(): void;
    private executeTransform;
    private resetTransformData;
    reRunAllTransform: (opt?: {
        pushHistory: boolean;
        emitMessage: boolean;
    }) => this;
    enableDiff(keys: string[]): void;
    disableDiff(): void;
    resetDiff(): void;
    protected diffLastData(): void;
    private cloneParseData;
    parseNewData(data: any, options?: IParserOptions): void;
    updateRawData(data: any, options?: IParserOptions): void;
    markRunning: () => void;
    getFields(): any;
    setFields(f: IFields, foreMerge?: boolean): void;
    destroy(): void;
}
export declare function isDataView(obj: any): obj is DataView;
