import { JSX } from 'react'; import { ReactElement } from 'react'; declare interface AnimateDataType { duration: number; once: boolean; amount: 'some' | 'all' | number; } declare interface AxesClassNameObject { gridLines?: string; labels?: string; title?: string; axis?: string; } declare interface AxesStyleObject { gridLines?: React.CSSProperties; labels?: React.CSSProperties; title?: React.CSSProperties; axis?: React.CSSProperties; } declare interface ClassNameObject { title?: string; footnote?: string; source?: string; description?: string; tooltip?: string; xAxis?: AxesClassNameObject; yAxis?: AxesClassNameObject; legend?: string; graphContainer?: string; graphObjectValues?: string; dataConnectors?: string; mouseOverLine?: string; regLine?: string; dataCards?: string; colorLegend?: string; modal?: string; area?: string; } export declare function DonutChart(props: Props): JSX.Element; declare interface DonutChartDataType { size: number; label: string; data?: object; } declare type Languages = 'en' | 'ar' | 'az' | 'bn' | 'cy' | 'he' | 'hi' | 'ja' | 'ka' | 'km' | 'ko' | 'my' | 'ne' | 'zh' | 'custom'; declare interface NumberFormatOptions { locale?: string; precision?: number; prefix?: string; suffix?: string; padZeros?: PadZerosTypes; } declare type PadZerosTypes = 'all' | 'decimal' | 'none'; declare interface Props { /** Array of data objects */ data: DonutChartDataType[]; /** Title of the graph */ graphTitle?: string | React.ReactNode; /** Description of the graph */ graphDescription?: string | React.ReactNode; /** Footnote for the graph */ footNote?: string | React.ReactNode; /** Source data for the graph */ sources?: SourcesDataType[]; /** Accessibility label */ ariaLabel?: string; /** Array of colors for each segment */ colors?: string[]; /** Domain of colors for the graph */ colorDomain?: string[]; /** Background color of the graph */ backgroundColor?: string | boolean; /** Custom styles for the graph. Each object should be a valid React CSS style object. */ styles?: StyleObject; /** Custom class names */ classNames?: ClassNameObject; /** Width of the graph */ width?: number; /** Height of the graph */ height?: number; /** Minimum height of the graph */ minHeight?: number; /** Relative height scaling factor. This overwrites the height props */ relativeHeight?: number; /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */ padding?: string; /** Radius of the donut chart */ radius?: number; /** Toggle visibility of color scale. This is only applicable if the data props hae color parameter */ showColorScale?: boolean; /** Max width of the color scale as a css property */ colorScaleMaxWidth?: string; /** Stroke width of the arcs and circle of the donut */ strokeWidth?: number; /** Sorting order for data. This is overwritten by labelOrder prop */ sortData?: 'asc' | 'desc'; /** Toggles if the graph animates in when loaded. */ animate?: boolean | AnimateDataType; /** Large text at the center of the donut chart. If the type is an object then the text is the value in the data for the label mentioned in the object */ mainText?: string | { label: string; suffix?: string; prefix?: string; locale?: string; padZeros?: PadZerosTypes; precision?: number; } | ReactElement; /** Small text at the center of the donut chart */ subNote?: string; /** Track color (i.e. the color of the donut chart's background) of the donut chart */ trackColor?: string; /** Enable graph download option as png */ graphDownload?: boolean; /** Enable data download option as a csv */ dataDownload?: boolean; /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */ resetSelectionOnDoubleClick?: boolean; /** Configuration options for controlling number formatting, localization, prefixes/suffixes, precision, and zero padding. */ numberDisplayOptions?: NumberFormatOptions; /** Defines how “NA” values should be displayed/labelled in the graph */ naLabel?: string; /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */ tooltip?: string | ((_d: any) => React.ReactNode); /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */ detailsOnClick?: string | ((_d: any) => React.ReactNode); /** Callback for mouse over event */ onSeriesMouseOver?: (_d: any) => void; /** Callback for mouse click event */ onSeriesMouseClick?: (_d: any) => void; /** Language setting */ language?: Languages; /** Color theme */ theme?: 'light' | 'dark'; /** Unique ID for the graph */ graphID?: string; } declare interface SourcesDataType { source: string; link?: string; } declare interface StyleObject { title?: React.CSSProperties; footnote?: React.CSSProperties; source?: React.CSSProperties; description?: React.CSSProperties; graphContainer?: React.CSSProperties; tooltip?: React.CSSProperties; xAxis?: AxesStyleObject; yAxis?: AxesStyleObject; graphObjectValues?: React.CSSProperties; dataConnectors?: React.CSSProperties; mouseOverLine?: React.CSSProperties; regLine?: React.CSSProperties; dataCards?: React.CSSProperties; modal?: React.CSSProperties; area?: React.CSSProperties; } export { }