import * as React from "react";
interface FlippingTooltipProps {
    /** X position within the chart area (relative to margin.left) */
    x: number;
    /** Y position within the chart area (relative to margin.top) */
    y: number;
    /** Chart area width (excluding margins) */
    containerWidth: number;
    /** Chart area height (excluding margins) */
    containerHeight: number;
    /** Chart margins */
    margin: {
        left: number;
        top: number;
        right: number;
        bottom: number;
    };
    /** Tooltip content */
    children: React.ReactNode;
    /** CSS class name for the wrapper */
    className?: string;
    /** z-index (default 1) */
    zIndex?: number;
}
/**
 * Viewport-aware tooltip wrapper that flips horizontally and vertically
 * when the tooltip would overflow the chart container.
 *
 * On first render, uses a heuristic (similar to the old 70%/30% thresholds).
 * After measuring the actual tooltip size via ref, repositions precisely to
 * prevent clipping against container edges.
 *
 * Two defensive behaviors:
 *
 *   - **Chrome guarantee.** If the rendered tooltip content lacks the
 *     `semiotic-tooltip` className on its root, the wrapper applies
 *     `defaultTooltipStyle` to itself so the tooltip always has a
 *     visible background, padding, and shadow. Shared tooltip helpers
 *     keep working unchanged (their `semiotic-tooltip` class causes the
 *     wrapper to stay transparent).
 *   - **Non-finite position guard.** Returns `null` when `x` or `y` is
 *     `NaN` / `Infinity`. The frame's hover plumbing can occasionally
 *     produce a non-finite hit-test result during a scale rebuild or
 *     when a custom layout emits a degenerate vertex; without the
 *     guard, React throws `'NaN' is an invalid value for the 'top' css
 *     style property` and the entire frame stops rendering.
 */
export declare function FlippingTooltip({ x, y, containerWidth, containerHeight, margin, children, className, zIndex }: FlippingTooltipProps): React.JSX.Element | null;
export {};
