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;
    fields?: IFields;
}
export interface IFieldsMeta {
    type?: 'ordinal' | 'linear';
    domain?: any[];
    sortIndex?: number;
    sortReverse?: boolean;
    sort?: 'asc' | 'desc';
    [key: string]: unknown;
}
export interface IFields {
    [key: string]: IFieldsMeta;
}
export interface DataViewTransformOptions {
    pushHistory?: boolean;
    emitMessage?: boolean;
    skipEqual?: boolean;
}
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;
    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;
    sortTransform(): void;
    private executeTransform;
    private resetTransformData;
    reRunAllTransform: (opt?: DataViewTransformOptions) => this;
    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;
