import { Axis, type AxisLabelFormatType, type CreateItemsSeriesOptions, type IRenderContext, ItemsSeries, type OxyColor, type OxyRect, type ScreenPoint, TrackerHitResult, type TrackerStringFormatterArgs } from '..'; /** * Represents a slice of a `PieSeries`. */ export interface PieSlice { /** * The fill color of the slice. */ fill?: OxyColor; /** * The label of the slice. */ label: string; /** * The value of the slice. */ value: number; /** * Whether the slice is exploded from the pie chart. */ isExploded?: boolean; } export interface PieSeriesTrackerStringFormatterArgs extends TrackerStringFormatterArgs { readonly item?: PieSlice; readonly percent?: number; } export type PieSeriesTrackerStringFormatterType = (args: PieSeriesTrackerStringFormatterArgs) => string | undefined; export interface CreatePieSeriesOptions extends CreateItemsSeriesOptions { angleIncrement?: number; angleSpan?: number; areInsideLabelsAngled?: boolean; colorField?: string; diameter?: number; explodedDistance?: number; innerDiameter?: number; insideLabelColor?: OxyColor; insideLabelFormatter?: AxisLabelFormatType; insideLabelPosition?: number; isExplodedField?: string; labelField?: string; outsideLabelFormatter?: AxisLabelFormatType; slices?: PieSlice[]; startAngle?: number; stroke?: OxyColor; strokeThickness?: number; tickDistance?: number; tickHorizontalLength?: number; tickLabelDistance?: number; tickRadialLength?: number; valueField?: string; trackerStringFormatter?: PieSeriesTrackerStringFormatterType; } export declare const DefaultPieSeriesOptions: CreatePieSeriesOptions; export declare const ExtendedDefaultPieSeriesOptions: { angleIncrement?: number | undefined; angleSpan?: number | undefined; areInsideLabelsAngled?: boolean | undefined; colorField?: string | undefined; diameter?: number | undefined; explodedDistance?: number | undefined; innerDiameter?: number | undefined; insideLabelColor?: string | undefined; insideLabelFormatter?: import('..').AxisStringFormatterType | undefined; insideLabelPosition?: number | undefined; isExplodedField?: string | undefined; labelField?: string | undefined; outsideLabelFormatter?: import('..').AxisStringFormatterType | undefined; slices?: PieSlice[] | undefined; startAngle?: number | undefined; stroke?: string | undefined; strokeThickness?: number | undefined; tickDistance?: number | undefined; tickHorizontalLength?: number | undefined; tickLabelDistance?: number | undefined; tickRadialLength?: number | undefined; valueField?: string | undefined; trackerStringFormatter?: import('..').TrackerStringFormatterType | PieSeriesTrackerStringFormatterType | undefined; itemsSource?: any[] | undefined; background?: string | undefined; isVisible?: boolean | undefined; title?: string | undefined; legendKey?: string | undefined; seriesGroupName?: string | undefined; renderInLegend?: boolean | undefined; trackerKey?: string | undefined; font?: string | undefined; fontSize?: number | undefined; fontWeight?: number | undefined; tag?: any; textColor?: string | undefined; edgeRenderingMode?: import('..').EdgeRenderingMode | undefined; toolTip?: string | undefined; selectable?: boolean | undefined; selectionMode?: import('..').SelectionMode | undefined; }; export type PieLabelFormatType = (slice: PieSlice, percent: number) => string; /** Represents a series for pie/circle/doughnut charts. */ export declare class PieSeries extends ItemsSeries { /** * The default tracker formatter */ static DefaultTrackerStringFormatter: PieSeriesTrackerStringFormatterType; static DefaultOutsideLabelFormatter: (slice: PieSlice, percent: number) => string; static DefaultInsideLabelFormatter: (slice: PieSlice, percent: number) => string; /** The actual points of the slices. */ private _slicePoints; /** The total value of all the pie slices. */ private _total; /** Initializes a new instance of the PieSeries class. */ constructor(opt?: CreatePieSeriesOptions); getElementName(): string; /** Gets or sets the angle increment. */ angleIncrement: number; /** Gets or sets the angle span. */ angleSpan: number; /** Gets or sets a value indicating whether inside labels are angled. */ areInsideLabelsAngled: boolean; /** Gets or sets the name of the property containing the color. */ colorField?: string; /** Gets or sets the diameter. */ diameter: number; /** Gets or sets the exploded distance. */ explodedDistance: number; /** Gets or sets the inner diameter. */ innerDiameter: number; /** Gets or sets the color of the inside labels. */ insideLabelColor: OxyColor; /** Gets or sets the inside label format. */ insideLabelFormatter?: PieLabelFormatType; /** Gets or sets the inside label position. */ insideLabelPosition: number; /** Gets or sets the is exploded field. */ isExplodedField?: string; /** Gets or sets the label field. */ labelField?: string; /** Gets or sets the outside label format. */ outsideLabelFormatter?: PieLabelFormatType; /** Gets or sets the slices. */ slices: PieSlice[]; /** Gets or sets the start angle. */ startAngle: number; /** Gets or sets the stroke color. */ stroke: OxyColor; /** Gets or sets the stroke thickness. */ strokeThickness: number; /** Gets or sets the distance from the edge of the pie slice to the tick line. */ tickDistance: number; /** Gets or sets the length of the horizontal part of the tick. */ tickHorizontalLength: number; /** Gets or sets the distance from the tick line to the outside label. */ tickLabelDistance: number; /** Gets or sets the length of the radial part of the tick line. */ tickRadialLength: number; /** Gets or sets the name of the property containing the value. */ valueField?: string; /** * A format function used for the tracker. The default depends on the series. * The arguments for the formatter may be different for each type of series. See the documentation. */ trackerStringFormatter?: PieSeriesTrackerStringFormatterType; /** Gets the point on the series that is nearest the specified point. */ getNearestPoint(point: ScreenPoint, _interpolate: boolean): TrackerHitResult | undefined; /** Renders the series on the specified render context. */ render(rc: IRenderContext): Promise; /** Renders the legend symbol on the specified render context. */ renderLegend(rc: IRenderContext, legendBox: OxyRect): Promise; /** * Checks if this data series requires X/Y axes. * @internal * */ areAxesRequired(): boolean; /** * Ensures that the axes of the series is defined. * @internal * */ ensureAxes(): void; /** * Check if the data series is using the specified axis. * @internal */ isUsing(axis: Axis): boolean; /** * Sets the default values. * @internal */ setDefaultValues(): void; /** * Updates the maximum and minimum values of the axes used by this series. * @internal */ updateAxisMaxMin(): void; /** * Updates the data. * @internal */ updateData(): void; /** * Updates the maximum and minimum values of the series. * @internal * */ updateMaxMin(): void; protected getElementDefaultValues(): any; } //# sourceMappingURL=PieSeries.d.ts.map