import type { Datum } from "../charts/shared/datumTypes";
import type { ReactNode } from "react";
import type { NetworkLabel } from "./networkTypes";
import type { LegendGroup, GradientLegendConfig } from "../types/legendTypes";
type AnnotationAnchorNode = {
    type: string;
    datum: Datum | null;
    id?: string;
    x?: number;
    y?: number;
    cx?: number;
    cy?: number;
    w?: number;
    h?: number;
};
export interface NetworkSVGOverlayProps {
    width: number;
    height: number;
    totalWidth: number;
    totalHeight: number;
    margin: {
        top: number;
        right: number;
        bottom: number;
        left: number;
    };
    /** Labels from the layout plugin */
    labels: NetworkLabel[];
    /** Chart title */
    title?: string | ReactNode;
    /** Legend configuration */
    legend?: ReactNode | {
        legendGroups: LegendGroup[];
    } | {
        gradient: GradientLegendConfig;
    };
    legendHoverBehavior?: (item: {
        label: string;
    } | null) => void;
    legendClickBehavior?: (item: {
        label: string;
    }) => void;
    legendHighlightedCategory?: string | null;
    legendIsolatedCategories?: Set<string>;
    legendPosition?: "right" | "left" | "top" | "bottom";
    /** User-provided SVG elements on top */
    foregroundGraphics?: ReactNode;
    /** Scene nodes for annotation positioning */
    sceneNodes?: AnnotationAnchorNode[];
    /** Annotations */
    annotations?: Datum[];
    svgAnnotationRules?: (annotation: Datum, index: number, context: {
        width: number;
        height: number;
        sceneNodes?: AnnotationAnchorNode[];
    }) => ReactNode;
    annotationFrame?: number;
}
/**
 * SVG overlay for network charts — renders labels, title, legend, annotations.
 *
 * Unlike XY/ordinal overlays, network charts don't have axes or grid lines.
 * The overlay is positioned absolutely over the canvas.
 */
export declare function NetworkSVGOverlay(props: NetworkSVGOverlayProps): import("react/jsx-runtime").JSX.Element;
export declare namespace NetworkSVGOverlay {
    var displayName: string;
}
export {};
