import * as react from 'react'; import { HTMLAttributes, ReactNode } from 'react'; type MarqueeDirection = "left" | "right"; interface MarqueeProps extends HTMLAttributes { /** Item nodes — each child is one strip item (alternative to `items`) */ children?: ReactNode; /** Data-driven items (alternative to children) — strings or nodes */ items?: ReactNode[]; /** * Scroll speed in px/s — keeps perceived speed constant regardless of * content width. Ignored when `duration` is set. Default: 40 */ speed?: number; /** Explicit seconds per loop (overrides `speed`) */ duration?: number; /** Scroll direction. Default: "left" */ direction?: MarqueeDirection; /** Pause the animation while hovered. Default: false */ pauseOnHover?: boolean; /** Controlled pause — `true` freezes the strip. Default: false */ paused?: boolean; /** Gap between items (number = px). Default: 40 */ gap?: number | string; /** * Masked fade at the strip edges: `true` (48px, default), `false` to * disable, or a number/CSS length for a custom fade width */ fade?: boolean | number | string; /** Optional node rendered between items */ separator?: ReactNode; /** * Tilt the whole strip in degrees (e.g. `-1` for the torn, off-axis band * look). The strip widens slightly to stay edge-to-edge. Default: 0 */ angle?: number; /** * Decorative strips are `aria-hidden` (default). Set `false` to expose the * content to assistive tech — the duplicated loop copy stays hidden either * way. Default: true */ decorative?: boolean; className?: string; } declare const Marquee: react.ForwardRefExoticComponent>; export { Marquee, type MarqueeDirection, type MarqueeProps };