import { DataView } from '@visactor/vdataset';
import type { DataSet, ITransformOptions } from '@visactor/vdataset';
import type { IRegion } from '../../region/interface';
import type { ICompileMarkConfig, IGroupMark, IMark } from '../../mark/interface';
import type { CoordinateType, IInvalidType, IPoint, DataKeyType, Datum, Maybe, ISeriesSpec, IExtensionMarkSpec, IExtensionGroupMarkSpec, EnableMarkType, IGroup, ILayoutType, ILayoutPoint, ILayoutRect } from '../../typings';
import { BaseModel } from '../../model/base-model';
import type { ISeriesOption, ISeries, ISeriesMarkInitOption, ISeriesStackData, ISeriesTooltipHelper, SeriesMarkMap, ISeriesMarkInfo, ISeriesSpecInfo, ISeriesStackDataLeaf, ISeriesStackDataMeta, ISeriesSeriesInfo } from '../interface';
import type { IModelEvaluateOption, IUpdateSpecResult } from '../../model/interface';
import type { AddVChartPropertyContext } from '../../data/transforms/add-property';
import type { IHoverSpec, ISelectSpec } from '../../interaction/interface/spec';
import type { ISeriesMarkAttributeContext } from '../../compile/mark';
import { STATE_VALUE_ENUM } from '../../compile/mark';
import { BaseSeriesSpecTransformer } from './base-series-transformer';
import type { ILabelSpec } from '../../component/label/interface';
import type { StatisticOperations } from '../../data/transforms/interface';
import type { GraphicEventType } from '@visactor/vrender-core';
import type { ICompilableData } from '../../compile/data';
import type { IBaseTriggerOptions } from '../../interaction/interface/trigger';
export declare abstract class BaseSeries<T extends ISeriesSpec> extends BaseModel<T> implements ISeries {
    readonly specKey: string;
    readonly type: string;
    layoutType: ILayoutType;
    readonly modelType: string;
    readonly name: string | undefined;
    static readonly mark: SeriesMarkMap;
    static readonly transformerConstructor: typeof BaseSeriesSpecTransformer;
    readonly transformerConstructor: any;
    getSpecInfo: () => ISeriesSpecInfo;
    protected _option: ISeriesOption;
    readonly coordinate: CoordinateType;
    protected _region: IRegion;
    getRegion(): IRegion;
    private _layoutStartPoint;
    getLayoutStartPoint(): ILayoutPoint;
    private _layoutRect;
    getLayoutRect: () => ILayoutRect;
    protected _rootMark: IGroupMark;
    getRootMark(): IGroupMark;
    protected _seriesMark: Maybe<IMark>;
    getSeriesMark(): IMark;
    protected _layoutLevel: number;
    protected _rawData: DataView;
    getRawData(): DataView;
    protected _rawDataStatistics?: DataView;
    protected _rawStatisticsCache: Record<string, {
        values?: any[];
        min?: number;
        max?: number;
    }>;
    protected _viewDataMap: Map<number, DataView>;
    protected _viewDataFilter: DataView;
    getViewDataFilter(): DataView;
    protected _data: ICompilableData;
    getViewData(): DataView;
    getViewDataProductId(): string;
    protected _viewDataStatistics: DataView;
    getViewDataStatistics(): DataView;
    protected _viewStackData: DataView;
    getViewStackData(): DataView;
    protected _seriesField?: string;
    getSeriesField(): string;
    setSeriesField(field: string): void;
    protected _groups?: IGroup;
    getGroups(): IGroup;
    getStack(): boolean;
    getStackValue(): import("../../typings").StringOrNumber;
    getPercent(): boolean;
    getStackOffsetSilhouette(): boolean;
    protected _dataSet: DataSet;
    protected _tooltipHelper: ISeriesTooltipHelper | undefined;
    get tooltipHelper(): ISeriesTooltipHelper;
    layoutZIndex: number;
    protected _invalidType: IInvalidType;
    getInvalidType(): IInvalidType;
    setInvalidType(t: IInvalidType): void;
    protected _markAttributeContext: ISeriesMarkAttributeContext;
    getMarkAttributeContext(): ISeriesMarkAttributeContext;
    constructor(spec: T, options: ISeriesOption);
    created(): void;
    protected _buildMarkAttributeContext(): void;
    setAttrFromSpec(): void;
    protected getInvalidCheckFields(): string[];
    protected initInvalidDataTransform(): void;
    protected initData(): void;
    protected initGroups(): void;
    protected initStatisticalData(): void;
    getRawDataStatisticsByField(field: string, isNumeric?: boolean): {
        values?: any[];
        min?: number;
        max?: number;
    };
    protected _statisticViewData(): void;
    protected createStatisticalData(dataName: string, rawData: DataView, staticFields?: (dataId: string) => {
        key: string;
        operations: StatisticOperations;
    }[]): DataView;
    private createdStackData;
    protected _noAnimationDataKey(datum: Datum, index: number): unknown | undefined;
    protected generateDefaultDataKey(dataKey: DataKeyType): (datum: Datum, index: number, context: AddVChartPropertyContext) => unknown;
    protected _addDataIndexAndKey(): void;
    updateRawData(d: any): void;
    rawDataUpdate(d: DataView): void;
    viewDataFilterOver(d: DataView): void;
    viewDataUpdate(d: DataView): void;
    viewDataStatisticsUpdate(d: DataView): void;
    getDatumPositionValue(datum: Datum, field: string): any;
    getDatumPositionValues(datum: Datum, fields: string | string[]): any[];
    abstract getStatisticFields(): {
        key: string;
        operations: StatisticOperations;
    }[];
    abstract getGroupFields(): string[];
    abstract dataToPosition(data: Datum, checkInViewData?: boolean): IPoint;
    abstract dataToPositionX(data: Datum): number;
    abstract dataToPositionY(data: Datum): number;
    abstract valueToPosition(value1: any, value2?: any): IPoint;
    abstract initMark(): void;
    abstract initMarkStyle(): void;
    abstract getStackGroupFields(): string[];
    abstract getStackValueField(): string | undefined;
    setValueFieldToStack(): void;
    setValueFieldToPercent(): void;
    setValueFieldToStackOffsetSilhouette(): void;
    abstract getActiveMarks(): IMark[];
    initRootMark(): void;
    private _getExtensionMarkNamePrefix;
    protected _initExtensionMark(options: {
        hasAnimation: boolean;
    }): void;
    private _createExtensionMark;
    protected _updateExtensionMarkSpec(): void;
    getStackData(): ISeriesStackData;
    protected _parseDefaultInteractionConfig(mainMarks?: IMark[]): {
        trigger: Partial<IBaseTriggerOptions>;
        marks: IMark[];
    }[];
    protected _defaultHoverConfig(finalHoverSpec: IHoverSpec): {
        type: string;
        trigger: GraphicEventType;
        triggerOff: GraphicEventType;
        blurState: STATE_VALUE_ENUM;
        highlightState: STATE_VALUE_ENUM;
    };
    protected _defaultSelectConfig(finalSelectSpec: ISelectSpec): {
        type: string;
        trigger: GraphicEventType;
        triggerOff: GraphicEventType;
        reverseState: STATE_VALUE_ENUM;
        state: STATE_VALUE_ENUM;
        isMultiple: boolean;
    };
    protected _parseInteractionConfig(mainMarks?: IMark[]): {
        trigger: Partial<IBaseTriggerOptions>;
        marks: IMark[];
    }[];
    getInteractionTriggers(): {
        trigger: Partial<IBaseTriggerOptions>;
        marks: IMark[];
    }[];
    initAnimation(): void;
    initMarkState(): void;
    initSeriesStyleState(): void;
    afterInitMark(): void;
    getMarksWithoutRoot(): IMark[];
    getMarksInType(type: string | string[]): IMark[];
    getMarkInName(name: string): IMark | undefined;
    getMarkInId(markId: number): IMark | undefined;
    protected initEvent(): void;
    protected _releaseEvent(): void;
    protected initTooltip(): void;
    _compareExtensionMarksSpec(newMarks: (IExtensionMarkSpec<Exclude<EnableMarkType, 'group'>> | IExtensionGroupMarkSpec)[], prevMarks: (IExtensionMarkSpec<Exclude<EnableMarkType, 'group'>> | IExtensionGroupMarkSpec)[], compareResult: IUpdateSpecResult): void;
    _compareLabelSpec(newLabels: ILabelSpec[], prevLabels: ILabelSpec[], compareResult: IUpdateSpecResult): void;
    _compareSpec(spec: T, prevSpec: T, ignoreCheckKeys?: Record<string, boolean>): {
        change: boolean;
        reMake: boolean;
        reRender: boolean;
        reSize: boolean;
        reCompile: boolean;
    };
    _updateSpecData(): void;
    reInit(spec?: T): void;
    onEvaluateEnd(ctx: IModelEvaluateOption): void;
    release(): void;
    setLayoutStartPosition(pos: Partial<IPoint>): void;
    setLayoutRect({ width, height }: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRect>): void;
    getSeriesKeys(): string[];
    getSeriesStyle(datum: Datum): (attribute: string) => unknown;
    protected _getSeriesInfo(field: string, keys: string[]): ISeriesSeriesInfo[];
    getSeriesInfoInField(field: string): ISeriesSeriesInfo[];
    getSeriesInfoList(): ISeriesSeriesInfo[];
    protected _getDefaultColorScale(): any;
    protected _getDataScheme(): import("../..").ColorSchemeItem[] | import("../..").ProgressiveDataScheme<import("../..").ColorSchemeItem>;
    getDefaultColorDomain(): any[];
    getColorAttribute(): {
        scale: any;
        field: string;
    };
    getDimensionField(): string[];
    getMeasureField(): string[];
    protected onMarkPositionUpdate(): void;
    protected onMarkTreePositionUpdate(marks: IMark[]): void;
    protected _createMark<M extends IMark>(markInfo: ISeriesMarkInfo, option?: ISeriesMarkInitOption, config?: ICompileMarkConfig): NonNullable<M>;
    protected _getDataIdKey(): string | ((datum: Datum) => string);
    protected _getSeriesDataKey(datum: Datum): string;
    addViewDataFilter(option: ITransformOptions): void;
    reFilterViewData(): void;
    reTransformViewData(): void;
    fillData(): void;
    compile(): void;
    getDefaultShapeType(): string;
    getFieldAlias(field: string): any;
    protected _getInvalidConnectType(): "none" | "zero" | "connect";
    protected _getInvalidDefined(datum: Datum): boolean;
    protected _getRelatedComponentSpecInfo(specKey: string): import("../../model/interface").IModelSpecInfo<any>[];
    protected _forEachStackGroup(callback: (node: ISeriesStackDataLeaf) => void, node?: ISeriesStackDataMeta): void;
    isDatumInViewData(datum: Datum): any;
    getSeriesFieldValue(datum: Datum, seriesField?: string): any;
}
