import SeriesModel from '../../model/Series.js'; import { SeriesOption, CallbackDataParams, CircleLayoutOptionMixin, LabelLineOption, ItemStyleOption, BoxLayoutOptionMixin, OptionDataValueNumeric, SeriesEncodeOptionMixin, OptionDataItemObject, StatesOptionMixin, SeriesLabelOption, DefaultEmphasisFocus } from '../../util/types.js'; import SeriesData from '../../data/SeriesData.js'; interface PieItemStyleOption extends ItemStyleOption { borderRadius?: (number | string)[] | number | string; } export interface PieCallbackDataParams extends CallbackDataParams { percent: number; } export interface PieStateOption { itemStyle?: PieItemStyleOption; label?: PieLabelOption; labelLine?: PieLabelLineOption; } interface PieLabelOption extends Omit { 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, PieStateOption, StatesOptionMixin { cursor?: string; } export interface PieSeriesOption extends Omit, ExtraStateOption>, 'labelLine'>, PieStateOption, CircleLayoutOptionMixin, BoxLayoutOptionMixin, SeriesEncodeOptionMixin { type?: 'pie'; roseType?: 'radius' | 'area'; clockwise?: boolean; startAngle?: 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 { static type: "series.pie"; seats: number[]; /** * @overwrite */ init(option: PieSeriesOption): void; /** * @overwrite */ mergeOption(): void; /** * @overwrite */ getInitialData(this: PieSeriesModel): SeriesData; /** * @overwrite */ getDataParams(dataIndex: number): PieCallbackDataParams; private _defaultLabelLine; static defaultOption: Omit; } export default PieSeriesModel;