import React from "react";
/**
 * Color configuration for the donut chart
 */
export interface DonutChartColors {
    /** Primary color for solid color mode */
    primary?: string;
    /** Gradient start color */
    from?: string;
    /** Gradient end color */
    to?: string;
}
/**
 * Theme overrides for the DonutChart component
 */
export interface DonutChartThemeOverrides {
    /** Base style for the container */
    baseStyle?: string;
    /** Track (background circle) styling */
    track?: string;
    /** Progress arc styling */
    progress?: string;
    /** Text styling */
    text?: {
        /** Main label styling */
        label?: string;
        /** Subtitle styling */
        subtitle?: string;
    };
    /** Default colors */
    colors?: {
        /** Default primary color */
        primary?: string;
        /** Default secondary color for gradients */
        secondary?: string;
        /** Track color */
        track?: string;
    };
}
/**
 * DonutChart component props
 */
export interface DonutChartProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
    /**
     * Visual variant for the donut chart (solid or segmented)
     * @default "solid"
     */
    variant?: "solid" | "segmented";
    /**
     * Percentage value to display (0-100)
     * Values outside this range will be clamped
     */
    percentage: number;
    /**
     * Custom label to display in center
     * If not provided, will show percentage with % symbol
     */
    label?: React.ReactNode;
    /**
     * Subtitle text to display below the main label
     */
    subtitle?: React.ReactNode;
    /**
     * Size of the donut chart
     * Can be a number (pixels) or CSS size string
     * @default 200
     */
    size?: number | string;
    /**
     * Thickness of the donut stroke
     * Progress arc will be 2x this thickness
     * @default 2
     */
    thickness?: number;
    /**
     * Total number of segments when using the segmented variant
     * @default 32
     */
    segmentCount?: number;
    /**
     * Fraction of each segment kept empty to create spacing (0-0.8)
     * Only applies to the segmented variant
     * @default 0.35
     */
    segmentGap?: number;
    /**
     * Whether to show entrance animation
     * @default true
     */
    showAnimation?: boolean;
    /**
     * Color configuration for the chart
     */
    colors?: DonutChartColors;
    /**
     * Component-level theme overrides
     */
    theme?: DonutChartThemeOverrides;
    /**
     * Additional content to display in the center
     * Will be rendered below the label and subtitle
     */
    children?: React.ReactNode;
    /**
     * Additional CSS classes
     */
    className?: string;
}
/**
 * Default theme configuration
 */
export interface DonutChartTheme extends Required<DonutChartThemeOverrides> {
}
/**
 * Animation configuration (internal use)
 */
export interface DonutChartAnimationConfig {
    /** Whether animations are enabled */
    enabled: boolean;
    /** Animation duration in seconds */
    duration: number;
    /** Animation delay in seconds */
    delay: number;
    /** Spring animation stiffness */
    stiffness: number;
    /** Spring animation damping */
    damping: number;
}
