/**
* @fileoverview Animated connection beam between two DOM elements.
* @author Saasflareâ„¢
* Draws an SVG path between two ref-targeted elements with a pulsing
* gradient animation. Perfect for architecture/integration diagrams.
* @module packages/ui/components/ui/animated/beam
* @package ui
*
* @component
* @example
* import { AnimatedBeam } from '@saasflare/ui';
* const containerRef = useRef(null);
* const fromRef = useRef(null);
* const toRef = useRef(null);
*
*
*/
import { type RefObject } from "react";
import { type SaasflareComponentProps } from "../../../providers";
/** Props for the AnimatedBeam component. */
export interface AnimatedBeamProps extends SaasflareComponentProps {
/** Ref to the container element (provides coordinate space). */
containerRef: RefObject;
/** Ref to the source element. */
fromRef: RefObject;
/** Ref to the target element. */
toRef: RefObject;
/** Beam stroke color. Default: `"var(--primary)"` */
color?: string;
/** Beam stroke width. Default: `2` */
strokeWidth?: number;
/** Curvature offset for the bezier curve. Default: `50` */
curvature?: number;
/** Pulse animation duration in seconds. Default: `3` */
duration?: number;
/** Additional class names for the SVG. */
className?: string;
}
/**
* Animated SVG beam connecting two DOM elements.
*
* - Calculates path dynamically from element positions
* - Uses a gradient dash animation for the pulse effect
* - Recalculates on resize
* - Renders a static line when `animated` is false (prop or provider) or
* reduced motion is preferred
*
* @component
* @package ui
*/
export declare function AnimatedBeam({ containerRef, fromRef, toRef, color, strokeWidth, curvature, duration, className, surface, radius, animated, iconWeight, }: AnimatedBeamProps): import("react/jsx-runtime").JSX.Element | null;