import type { IPoint, Datum, StateValueType } from '../../typings';
import type { IModelLayoutOption } from '../../model/interface';
import { PolarSeries } from '../polar/polar';
import type { IArcMark, IMark, IPathMark, ITextMark } from '../../mark/interface';
import { MarkTypeEnum } from '../../mark/interface/type';
import type { IArcSeries, SeriesMarkMap } from '../interface';
import { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface/type';
import type { IBasePieSeriesSpec, IPieSeriesSpec } from './interface';
import { SeriesData } from '../base/series-data';
import { PieSeriesSpecTransformer } from './pie-transformer';
export declare class BasePieSeries<T extends IBasePieSeriesSpec> extends PolarSeries<T> implements IArcSeries {
    static readonly transformerConstructor: any;
    readonly transformerConstructor: typeof PieSeriesSpecTransformer;
    protected _pieMarkName: SeriesMarkNameEnum;
    protected _pieMarkType: MarkTypeEnum;
    static readonly mark: SeriesMarkMap;
    protected _viewDataLabel: SeriesData;
    getCenter: () => IPoint;
    protected _centerOffset: number;
    protected _cornerRadius: number;
    protected _startAngle: number;
    protected _endAngle: number;
    protected _padAngle: number;
    protected _pieMark: IArcMark | null;
    protected _labelMark: ITextMark | null;
    protected _labelLineMark: IPathMark | null;
    protected _showEmptyCircle: boolean;
    protected _emptyArcMark: IArcMark | null;
    protected _showAllZero: boolean;
    protected _supportNegative: boolean;
    protected _buildMarkAttributeContext(): void;
    setAttrFromSpec(): void;
    initData(): void;
    compileData(): void;
    initMark(): void;
    private startAngleScale;
    private endAngleScale;
    protected _computeLayoutRadius(): number;
    initMarkStyle(): void;
    initInteraction(): void;
    protected initTooltip(): void;
    initMarkStyleWithSpec(mark?: IMark, spec?: any, key?: string): void;
    initLabelMarkStyle(textMark: ITextMark): void;
    afterInitMark(): void;
    initEvent(): void;
    initGroups(): void;
    onLayoutEnd(ctx: IModelLayoutOption): void;
    getDimensionField(): string[];
    getMeasureField(): string[];
    private viewDataLabelUpdate;
    protected generateRadiusStyle(spec: any): any;
    computeCenter(datum: Datum): IPoint;
    getRadius(state?: StateValueType): number;
    getInnerRadius(state?: StateValueType): number;
    computeRadius(r: number, k?: number): number;
    computeDatumRadius(datum: Datum, state?: string): number;
    _compareSpec(spec: T, prevSpec: T, ignoreCheckKeys?: {
        [key: string]: true;
    }): {
        change: boolean;
        reMake: boolean;
        reRender: boolean;
        reSize: boolean;
        reCompile: boolean;
    };
    computeDatumInnerRadius(datum: Datum, state?: string): number;
    dataToPosition(datum: Datum, checkInViewData?: boolean): IPoint | null;
    dataToCentralPosition: (datum: Datum) => IPoint | null;
    initAnimation(): void;
    getDefaultShapeType(): string;
    getGroupFields(): string[];
    getStackGroupFields(): string[];
    getStackValueField(): string;
    protected _noAnimationDataKey(datum: Datum, index: number): number;
    getActiveMarks(): IMark[];
}
export declare class PieSeries<T extends IPieSeriesSpec = IPieSeriesSpec> extends BasePieSeries<T> implements IArcSeries {
    static readonly type: string;
    type: SeriesTypeEnum;
}
export declare const registerPieSeries: () => void;
