import { type ReactNode } from 'react';
/**
 * Crosshair mode:
 * - `'x'` — vertical line only (most common for time series)
 * - `'y'` — horizontal line only
 * - `'xy'` — both axes
 * - `false` — no crosshair lines
 */
export type ChartCrosshairMode = 'x' | 'y' | 'xy' | false;
export interface ChartTooltipProps {
    /**
     * Custom render function for tooltip content.
     * Receives the nearest data point and its index.
     * Return `null` to hide the tooltip card while keeping crosshair visible.
     *
     * @default Renders all keys as "key: value" lines
     */
    render?: (datum: Record<string, unknown>, index: number) => ReactNode;
    /**
     * Crosshair line display mode.
     * - `'x'` — vertical crosshair line (default)
     * - `'y'` — horizontal crosshair line
     * - `'xy'` — both axes
     * - `false` — no crosshair lines, tooltip only
     *
     * @default 'x'
     */
    crosshair?: ChartCrosshairMode;
    /**
     * Whether to show axis value labels on the crosshair lines.
     * Only relevant when `crosshair` is not `false`.
     *
     * @default false
     */
    crosshairLabels?: boolean;
    /**
     * Whether to snap to the nearest data point (true) or follow
     * the pointer freely (false). Snap mode finds the closest datum
     * by x-distance and positions the tooltip at that point.
     *
     * @default true
     */
    snap?: boolean;
    /**
     * Format function for x-axis crosshair label.
     */
    xFormat?: (value: number | string | null) => string;
    /**
     * Format function for y-axis crosshair label.
     */
    yFormat?: (value: number) => string;
    /**
     * Color for crosshair lines.
     * @default 'var(--color-border-emphasized)'
     */
    crosshairColor?: string;
    /**
     * Whether to show a dot indicator at the snapped data point.
     * @default true
     */
    dot?: boolean;
}
/**
 * Chart tooltip with integrated crosshair.
 *
 * Renders crosshair lines within the SVG and a floating tooltip card
 * in the top layer (via Popover API, portaled outside the SVG).
 *
 * @example
 * ```
 * <ChartTooltip />
 * <ChartTooltip crosshair="xy" crosshairLabels />
 * <ChartTooltip crosshair={false} />
 * <ChartTooltip render={(d) => <span>{d.month}: ${d.revenue}</span>} />
 * ```
 */
export declare function ChartTooltip({ render, crosshair, crosshairLabels, snap, xFormat, yFormat, crosshairColor, dot, }: ChartTooltipProps): import("react").JSX.Element;
//# sourceMappingURL=ChartTooltip.d.ts.map