import type { App } from '../../../App'; import type { Group } from '../../../shapes/Group'; import type { Node } from '../../../Node'; import type { ChartLayout } from '../../chartPrimitives'; export declare function isInteractive(props: Record): boolean; export interface HoverRect { x: number; y: number; width: number; height: number; } export interface HoverParts { tooltip: Node & { visible: boolean; x: number; y: number; width: number; markDirty: () => void; }; tooltipLabel: Node & { text: string; x: number; y: number; textAlign: string; markDirty: () => void; }; hitArea: Node; highlight?: Node & { visible: boolean; x: number; y: number; markDirty: () => void; }; } export declare function createHoverParts(app: App, rect: HoverRect, withHighlight?: boolean): HoverParts; export declare function mountHover(group: Group, app: App, props: Record, rect: HoverRect, onMove: (x: number, y: number) => { label: string; centerX: number; topY: number; highlight?: HoverRect; payload?: unknown; } | null, withHighlight?: boolean): void; /** Index from plot-local X (columns, time series slots). */ export declare function attachIndexXHover(app: App, group: Group, props: Record, layout: ChartLayout, count: number, labelAt: (index: number) => string, highlightAt?: (index: number) => HoverRect, payloadAt?: (index: number) => unknown): void; /** Index from plot-local Y (horizontal bars, row bands). */ export declare function attachIndexYHover(app: App, group: Group, props: Record, layout: ChartLayout, count: number, labelAt: (index: number) => string, highlightAt?: (index: number) => HoverRect): void; /** Vertical bands across full widget height (funnel, pyramid). */ export declare function attachBandYHover(app: App, group: Group, props: Record, width: number, height: number, count: number, labelAt: (index: number) => string): void; /** Pie / doughnut slice by angle from center. */ export declare function attachPolarSliceHover(app: App, group: Group, props: Record, size: number, data: number[], labels?: string[], innerRadius?: number): void; /** Matrix / grid cell hover. */ export declare function attachGridHover(app: App, group: Group, props: Record, width: number, height: number, rows: number, cols: number, valueAt: (row: number, col: number) => string): void; export interface PlotPoint { x: number; y: number; label: string; payload?: unknown; } /** Nearest point in plot space (scatter, bubble, network nodes). */ export declare function attachNearestHover(app: App, group: Group, props: Record, rect: HoverRect, points: PlotPoint[], radius?: number): void; /** Hit-test axis-aligned regions (treemap, gantt, sankey nodes). */ export declare function attachRegionsHover(app: App, group: Group, props: Record, width: number, height: number, regions: { x: number; y: number; width: number; height: number; label: string; payload?: unknown; }[]): void; /** Single-value or static tooltip on hover (bullet, pictogram). */ export declare function attachValueHover(app: App, group: Group, props: Record, width: number, height: number, label: string): void;