import type { Datum } from "./datumTypes";
/**
 * Coordinate resolution helpers for annotations.
 *
 * Resolves data coordinates to pixel positions, respecting anchor modes
 * (fixed, latest, sticky), pointId matching, and bounds checking for
 * streaming charts where data scrolls off-screen.
 *
 * Dependencies: types (AnnotationContext)
 * Consumed by: annotationRules.tsx (all annotation type renderers)
 */
import type { AnnotationContext } from "../../realtime/types";
export declare function resolveX(ann: Datum, context: AnnotationContext): number | null;
export declare function resolveY(ann: Datum, context: AnnotationContext): number | null;
/**
 * Resolve annotation position respecting anchor mode.
 * - "fixed" (default): resolve from annotation's own fields
 * - "latest": resolve from the most recent datum in the buffer
 * - "sticky": resolve from annotation fields; if not found, use cached position
 */
export declare function resolveAnchoredPosition(ann: Datum, index: number, context: AnnotationContext): {
    x: number;
    y: number;
} | null;
/**
 * Returns true if a point annotation is within the visible chart area.
 * Used to hide data-anchored annotations that have scrolled off-screen.
 */
export declare function isInBounds(px: number, py: number, context: AnnotationContext, margin?: number): boolean;
