import type { IFunnelSeries, SeriesMarkMap } from '../interface';
import type { IOrientType, Datum, StringOrNumber } from '../../typings';
import { BaseSeries } from '../base/base-series';
import type { ILabelMark, IMark, IPolygonMark, IRuleMark, ITextMark } from '../../mark/interface';
import type { IFunnelSeriesSpec, IFunnelSeriesTheme } from './interface';
import { FunnelSeriesSpecTransformer } from './funnel-transformer';
import type { ICompilableData } from '../../compile/data';
export declare class FunnelSeries<T extends IFunnelSeriesSpec = IFunnelSeriesSpec> extends BaseSeries<T> implements IFunnelSeries {
    static readonly type: string;
    type: string;
    protected _funnelMarkName: string;
    protected _funnelMarkType: string;
    protected _transformMarkName: string;
    protected _transformMarkType: string;
    static readonly mark: SeriesMarkMap;
    static readonly builtInTheme: Record<string, IFunnelSeriesTheme>;
    static readonly transformerConstructor: any;
    readonly transformerConstructor: typeof FunnelSeriesSpecTransformer;
    protected _categoryField: string;
    getCategoryField(): string;
    setCategoryField(f: string): string;
    protected _valueField: string;
    getValueField(): string;
    setValueField(f: string): string;
    protected _viewDataTransform: ICompilableData;
    protected _funnelAlign: 'left' | 'center' | 'right' | 'top' | 'bottom';
    protected _funnelOrient: IOrientType;
    protected _shape: 'rect' | 'trapezoid';
    protected _funnelMark: IPolygonMark | null;
    protected _funnelTransformMark: IPolygonMark | null;
    protected _labelMark: ILabelMark | null;
    protected _transformLabelMark: ILabelMark | null;
    protected _funnelOuterLabelMark: {
        label?: ITextMark;
        line?: IRuleMark;
    };
    protected _minLabelLineWidth: number;
    setAttrFromSpec(): void;
    initData(): void;
    compile(): void;
    compileData(): void;
    getStatisticFields(): {
        key: string;
        operations: Array<'max' | 'min' | 'values'>;
    }[];
    protected _statisticViewData(): void;
    initMark(): void;
    protected initTooltip(): void;
    getDimensionField(): string[];
    getMeasureField(): string[];
    getGroupFields(): string[];
    initMarkStyle(): void;
    initLabelMarkStyle(labelMark?: ILabelMark): void;
    initAnimation(): void;
    initGroups(): void;
    getStackGroupFields(): string[];
    getStackValueField(): string;
    protected initEvent(): void;
    getPoints(datum: Datum): {
        x: number;
        y: number;
    }[];
    isTransformLevel(datum: Datum): boolean;
    protected _buildMarkAttributeContext(): void;
    valueToPosition(category: StringOrNumber): {
        x: number;
        y: number;
    };
    dataToPosition(datum: any, checkInViewData?: boolean): {
        x: number;
        y: number;
    };
    dataToPositionX(datum: any): number;
    dataToPositionY(datum: any): number;
    dataToPositionZ(datum: any): number;
    private _getMainAxisLength;
    private _getSecondaryAxisLength;
    private _getPositionByData;
    private _getPolygonPoints;
    private _getPolygonCenter;
    private _adjustPoints;
    private _computeLabelPosition;
    private _computeLabelLimit;
    private _computeOuterLabelPosition;
    private _computeOuterLabelLimit;
    private _computeOuterLabelLinePosition;
    protected _computeMaxSize(): number;
    protected _computeMinSize(): number;
    protected _isHorizontal(): boolean;
    private _isReverse;
    getDefaultShapeType(): string;
    getActiveMarks(): IMark[];
}
export declare const registerFunnelSeries: () => void;
