import * as react_jsx_runtime from 'react/jsx-runtime';
import * as React from 'react';
import * as RechartsPrimitive from 'recharts';
import { LegendPayload, TooltipContentProps } from 'recharts';

declare const THEMES: {
    readonly light: "";
    readonly dark: ".dark";
};
type ChartConfig = {
    [k in string]: {
        label?: React.ReactNode;
        icon?: React.ComponentType;
    } & ({
        color?: string;
        theme?: never;
    } | {
        color?: never;
        theme: Record<keyof typeof THEMES, string>;
    });
};
declare function ChartContainer({ id, className, children, config, debounce, ...props }: React.ComponentProps<"div"> & {
    config: ChartConfig;
    children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
    /** Forwarded to Recharts `ResponsiveContainer.debounce` (ms). */
    debounce?: number;
}): react_jsx_runtime.JSX.Element;
declare const ChartStyle: ({ id, config }: {
    id: string;
    config: ChartConfig;
}) => react_jsx_runtime.JSX.Element | null;
declare const ChartTooltip: typeof RechartsPrimitive.Tooltip;
/**
 * Returns props for `<ChartTooltip />` keyboard parity.
 *
 * Usage — pass `key` explicitly (React requires it outside the spread):
 * ```tsx
 * const sync = chartTooltipKeyboardSyncProps(activeIndex)
 * <ChartTooltip key={sync.key} {...sync.props} />
 * ```
 */
declare function chartTooltipKeyboardSyncProps(keyboardActiveIndex: number | null): {
    key: string;
    props: {
        defaultIndex?: number;
    };
};
type ChartTooltipContentProps = React.ComponentProps<"div"> & {
    active?: boolean;
    payload?: TooltipContentProps["payload"];
    label?: TooltipContentProps["label"];
    labelFormatter?: TooltipContentProps["labelFormatter"];
    labelClassName?: string;
    formatter?: TooltipContentProps["formatter"];
    color?: string;
    hideLabel?: boolean;
    hideIndicator?: boolean;
    indicator?: "line" | "dot" | "dashed";
    nameKey?: string;
    labelKey?: string;
};
declare function ChartTooltipContent({ active, payload, className, indicator, hideLabel, hideIndicator, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey, }: ChartTooltipContentProps): react_jsx_runtime.JSX.Element | null;
declare const ChartLegend: React.MemoExoticComponent<(outsideProps: RechartsPrimitive.LegendProps) => React.ReactPortal | null>;
type ChartLegendContentProps = React.ComponentProps<"div"> & {
    payload?: ReadonlyArray<LegendPayload>;
    verticalAlign?: RechartsPrimitive.LegendProps["verticalAlign"];
    hideIcon?: boolean;
    nameKey?: string;
};
declare function ChartLegendContent({ className, hideIcon, payload, verticalAlign, nameKey, }: ChartLegendContentProps): react_jsx_runtime.JSX.Element | null;

export { type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, chartTooltipKeyboardSyncProps };
