import type { Datum } from "../charts/shared/datumTypes";
/**
 * Shared hover data utilities for stream frames.
 *
 * Centralizes the common HoverData construction pattern used by
 * XY, Ordinal, and Network stream frames for hover and click events.
 * Geo frame and keyboard navigation use variants with additional
 * property flattening that are handled at the call site.
 */
import type { HoverData } from "../realtime/types";
/**
 * Minimal shape a Stream Frame's internal hover handler needs from a pointer
 * event. React.MouseEvent satisfies this structurally, as does the plain
 * `{clientX, clientY}` object the rAF-coalescing path synthesizes. Using this
 * narrower type on `hoverHandlerRef` (instead of `React.MouseEvent`) prevents
 * downstream code from reading event fields — `currentTarget`, `target`,
 * `preventDefault` — that wouldn't survive the coalescing cast.
 */
export interface HoverPointerCoords {
    clientX: number;
    clientY: number;
}
/**
 * Spread raw datum properties onto HoverData if it's a non-null,
 * non-array object. Class instances (Date, etc.) are included —
 * this matches the historical behavior where all datum fields are
 * accessible directly on the hover object (d.fieldName).
 */
export declare function spreadDatum(rawDatum: any): Datum;
/**
 * Build a HoverData object from a raw datum and pixel coordinates.
 * Spreads plain-object datum properties for backwards compatibility
 * (consumers can access d.fieldName directly in addition to d.data.fieldName).
 */
export declare function buildHoverData(rawDatum: any, x: number, y: number, extra?: Partial<HoverData>): HoverData;
