import * as React from 'react';
import * as RechartsPrimitive from 'recharts';
/**
 * Chart — shadcn-style wrapper over Recharts + 本 DS token
 *
 * 結構對齊 shadcn chart(ChartContainer / ChartTooltipContent / ChartLegendContent),
 * 但所有視覺(tooltip / legend / grid / axis)改用本 DS token。
 *
 * ── Color mapping ──
 * ChartConfig.{key}.color 接受 2 種形式:
 *   1. CSS var 字串('var(--chart-1)' 等)
 *   2. 任何合法 CSS color
 * 預設建議使用 --chart-1..5(本 DS 提供的 5 色類別 token)
 *
 * ── 視覺 token ──
 * Tooltip: bg-surface-raised / border-border / shadow-[elevation-200] / rounded-md
 * Legend text: text-fg-secondary / text-caption
 * Grid: stroke-divider
 * Axis tick: text-fg-muted / text-caption
 */
export type ChartConfig = {
    [k in string]: {
        label?: React.ReactNode;
        icon?: React.ComponentType;
    } & ({
        color?: string;
        theme?: never;
    } | {
        color?: never;
        theme: Record<'light' | 'dark', string>;
    });
};
interface ChartContainerProps extends React.ComponentProps<'div'> {
    config: ChartConfig;
    children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];
}
declare const ChartContainer: React.ForwardRefExoticComponent<Omit<ChartContainerProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
declare function ChartStyle({ id, config }: {
    id: string;
    config: ChartConfig;
}): import("react/jsx-runtime").JSX.Element | null;
declare const ChartTooltip: typeof RechartsPrimitive.Tooltip;
type RechartsTooltipPayloadItem = {
    value?: string | number;
    name?: string | number;
    dataKey?: string | number;
    color?: string;
    payload?: unknown;
    [key: string]: unknown;
};
interface ChartTooltipContentProps extends Omit<React.ComponentProps<'div'>, 'color'> {
    active?: boolean;
    payload?: RechartsTooltipPayloadItem[];
    label?: unknown;
    labelFormatter?: (value: unknown, payload: RechartsTooltipPayloadItem[]) => React.ReactNode;
    labelClassName?: string;
    formatter?: (value: unknown, name: unknown, item: RechartsTooltipPayloadItem, index: number, payload: unknown) => React.ReactNode;
    color?: string;
    hideLabel?: boolean;
    hideIndicator?: boolean;
    indicator?: 'line' | 'dot' | 'dashed';
    nameKey?: string;
    labelKey?: string;
}
declare const ChartTooltipContent: React.ForwardRefExoticComponent<Omit<ChartTooltipContentProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
declare const ChartLegend: React.MemoExoticComponent<(outsideProps: RechartsPrimitive.LegendProps) => React.ReactPortal | null>;
type RechartsLegendPayloadItem = {
    value?: unknown;
    dataKey?: string | number;
    color?: string;
    payload?: unknown;
    [key: string]: unknown;
};
interface ChartLegendContentProps extends React.ComponentProps<'div'> {
    payload?: RechartsLegendPayloadItem[];
    verticalAlign?: 'top' | 'middle' | 'bottom';
    hideIcon?: boolean;
    nameKey?: string;
}
declare const ChartLegendContent: React.ForwardRefExoticComponent<Omit<ChartLegendContentProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
export declare const chartMeta: {
    readonly component: "Chart";
    readonly family: null;
    readonly variants: {};
    readonly sizes: {};
    readonly states: readonly ["default"];
    readonly tokens: {
        readonly bg: readonly ["bg-surface-raised", "bg-transparent"];
        readonly fg: readonly ["text-fg-muted", "text-fg-secondary", "text-foreground"];
        readonly ring: readonly [];
    };
};
export { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, ChartStyle, };
//# sourceMappingURL=chart.d.ts.map