import SeriesModel from '../../model/Series.js'; 
 | 
import { SeriesOption, CallbackDataParams, CircleLayoutOptionMixin, LabelLineOption, ItemStyleOption, BoxLayoutOptionMixin, OptionDataValueNumeric, SeriesEncodeOptionMixin, OptionDataItemObject, StatesOptionMixin, SeriesLabelOption, DefaultEmphasisFocus } from '../../util/types.js'; 
 | 
import type SeriesData from '../../data/SeriesData.js'; 
 | 
interface PieItemStyleOption<TCbParams = never> extends ItemStyleOption<TCbParams> { 
 | 
    borderRadius?: (number | string)[] | number | string; 
 | 
} 
 | 
export interface PieCallbackDataParams extends CallbackDataParams { 
 | 
    percent: number; 
 | 
} 
 | 
export interface PieStateOption<TCbParams = never> { 
 | 
    itemStyle?: PieItemStyleOption<TCbParams>; 
 | 
    label?: PieLabelOption; 
 | 
    labelLine?: PieLabelLineOption; 
 | 
} 
 | 
interface PieLabelOption extends Omit<SeriesLabelOption, 'rotate' | 'position'> { 
 | 
    rotate?: number | boolean | 'radial' | 'tangential'; 
 | 
    alignTo?: 'none' | 'labelLine' | 'edge'; 
 | 
    edgeDistance?: string | number; 
 | 
    /** 
 | 
     * @deprecated Use `edgeDistance` instead 
 | 
     */ 
 | 
    margin?: string | number; 
 | 
    bleedMargin?: number; 
 | 
    distanceToLabelLine?: number; 
 | 
    position?: SeriesLabelOption['position'] | 'outer' | 'inner' | 'center' | 'outside'; 
 | 
} 
 | 
interface PieLabelLineOption extends LabelLineOption { 
 | 
    /** 
 | 
     * Max angle between labelLine and surface normal. 
 | 
     * 0 - 180 
 | 
     */ 
 | 
    maxSurfaceAngle?: number; 
 | 
} 
 | 
interface ExtraStateOption { 
 | 
    emphasis?: { 
 | 
        focus?: DefaultEmphasisFocus; 
 | 
        scale?: boolean; 
 | 
        scaleSize?: number; 
 | 
    }; 
 | 
} 
 | 
export interface PieDataItemOption extends OptionDataItemObject<OptionDataValueNumeric>, PieStateOption, StatesOptionMixin<PieStateOption, ExtraStateOption> { 
 | 
    cursor?: string; 
 | 
} 
 | 
export interface PieSeriesOption extends Omit<SeriesOption<PieStateOption<PieCallbackDataParams>, ExtraStateOption>, 'labelLine'>, PieStateOption<PieCallbackDataParams>, Omit<CircleLayoutOptionMixin, 'center'>, BoxLayoutOptionMixin, SeriesEncodeOptionMixin { 
 | 
    type?: 'pie'; 
 | 
    roseType?: 'radius' | 'area'; 
 | 
    center?: string | number | (string | number)[]; 
 | 
    clockwise?: boolean; 
 | 
    startAngle?: number; 
 | 
    endAngle?: number | 'auto'; 
 | 
    padAngle?: number; 
 | 
    minAngle?: number; 
 | 
    minShowLabelAngle?: number; 
 | 
    selectedOffset?: number; 
 | 
    avoidLabelOverlap?: boolean; 
 | 
    percentPrecision?: number; 
 | 
    stillShowZeroSum?: boolean; 
 | 
    animationType?: 'expansion' | 'scale'; 
 | 
    animationTypeUpdate?: 'transition' | 'expansion'; 
 | 
    showEmptyCircle?: boolean; 
 | 
    emptyCircleStyle?: PieItemStyleOption; 
 | 
    data?: (OptionDataValueNumeric | OptionDataValueNumeric[] | PieDataItemOption)[]; 
 | 
} 
 | 
declare class PieSeriesModel extends SeriesModel<PieSeriesOption> { 
 | 
    static type: "series.pie"; 
 | 
    /** 
 | 
     * @overwrite 
 | 
     */ 
 | 
    init(option: PieSeriesOption): void; 
 | 
    /** 
 | 
     * @overwrite 
 | 
     */ 
 | 
    mergeOption(): void; 
 | 
    /** 
 | 
     * @overwrite 
 | 
     */ 
 | 
    getInitialData(this: PieSeriesModel): SeriesData; 
 | 
    /** 
 | 
     * @overwrite 
 | 
     */ 
 | 
    getDataParams(dataIndex: number): PieCallbackDataParams; 
 | 
    private _defaultLabelLine; 
 | 
    static defaultOption: Omit<PieSeriesOption, 'type'>; 
 | 
} 
 | 
export default PieSeriesModel; 
 |