import * as React from 'react'; import { Box, Dimensions, Theme, SvgDefsAndFill } from '@orbit-nivo/core'; import { OrdinalColorsInstruction, InheritedColorProp } from '@orbit-nivo/colors'; import { LegendProps } from '@orbit-nivo/legends'; export declare type DatumId = string | number; export declare type DatumValue = number; export declare type DatumFormattedValue = string | number; export declare type ValueFormatter = (value: number) => DatumFormattedValue; export interface DefaultRawDatum { id: DatumId; value: DatumValue; } export interface PieArc { index: number; startAngle: number; endAngle: number; angle: number; angleDeg: number; padAngle: number; } export interface ComputedDatum { id: DatumId; label: DatumId; value: DatumValue; formattedValue: DatumFormattedValue; color: string; fill?: string; data: RawDatum; arc: PieArc; } export declare type DatumIdAccessorFunction = (datum: RawDatum) => DatumId; export declare type DatumValueAccessorFunction = (datum: RawDatum) => DatumValue; export declare type LabelAccessorFunction = (datum: ComputedDatum) => string | number; export interface DataProps { data: RawDatum[]; } export interface PieTooltipProps { datum: ComputedDatum; } export declare type MouseEventHandler = (datum: ComputedDatum, event: React.MouseEvent) => void; export declare type PieArcGenerator = (arc: PieArc) => string; export declare type PieLayerId = 'slices' | 'radialLabels' | 'sliceLabels' | 'legends'; export interface PieCustomLayerProps { dataWithArc: ComputedDatum[]; centerX: number; centerY: number; radius: number; innerRadius: number; arcGenerator: PieArcGenerator; } export declare type PieCustomLayer = React.FC>; export declare type PieLayer = PieLayerId | PieCustomLayer; export declare type CommonPieProps = { id: string | DatumIdAccessorFunction; value: string | DatumValueAccessorFunction; valueFormat?: string | ValueFormatter; margin: Box; sortByValue: boolean; innerRadius: number; padAngle: number; cornerRadius: number; startAngle: number; endAngle: number; fit: boolean; colors: OrdinalColorsInstruction, 'color' | 'fill'>>; theme: Theme; borderWidth: number; borderColor: InheritedColorProp>; enableRadialLabels: boolean; radialLabel: string | LabelAccessorFunction; radialLabelsSkipAngle: number; radialLabelsTextXOffset: number; radialLabelsTextColor: InheritedColorProp>; radialLabelsLinkOffset: number; radialLabelsLinkDiagonalLength: number; radialLabelsLinkHorizontalLength: number; radialLabelsLinkStrokeWidth: number; radialLabelsLinkColor: InheritedColorProp>; enableSliceLabels: boolean; sliceLabel: string | LabelAccessorFunction; sliceLabelsRadiusOffset: number; sliceLabelsSkipAngle: number; sliceLabelsTextColor: InheritedColorProp>; isInteractive: boolean; tooltip: React.FC>; legends: LegendProps[]; role: string; }; export declare type PieHandlers = { onClick?: MouseEventHandler; onMouseEnter?: MouseEventHandler; onMouseMove?: MouseEventHandler; onMouseLeave?: MouseEventHandler; }; export declare type PieSvgProps = DataProps & Dimensions & Partial> & SvgDefsAndFill> & PieHandlers & { layers?: PieLayer[]; }; export declare type CompletePieSvgProps = DataProps & Dimensions & CommonPieProps & SvgDefsAndFill> & PieHandlers & { layers: PieLayer[]; }; export declare type PieCanvasProps = DataProps & Dimensions & Partial> & Pick, 'onClick' | 'onMouseMove'> & { pixelRatio?: number; }; export declare type CompletePieCanvasProps = DataProps & Dimensions & CommonPieProps & Pick, 'onClick' | 'onMouseMove'> & { pixelRatio: number; }; export declare type Point = { x: number; y: number; }; export declare type RadialLabelData = { text: string | number; textColor: string; position: Point; align: string; line: [Point, Point, Point]; linkColor: string; datum: ComputedDatum; }; export declare type SliceLabelData = { x: number; y: number; label: string | number; textColor: string; datum: ComputedDatum; }; //# sourceMappingURL=types.d.ts.map