import type { ReactNode, ReactElement } from 'react'; export type MarqueTickerItemData = { type: 'element'; content: ReactElement; } | { type: 'text'; content: string | React.ReactNode; }; export type SlotRender = ReactNode | (() => ReactNode); export type Timer = ReturnType | null; export interface MarqueeTickerProps { items?: Array; itemHeight: string; style?: React.CSSProperties; className?: string; singleLine?: boolean; interval?: number; speed?: number; paused?: boolean; autoMarquee?: boolean; marqueeSpeed?: number; marqueeDelayBeforeScroll?: number; marqueeDelayAfterScroll?: number; prefix?: SlotRender; suffix?: SlotRender; children?: React.ReactElement | Array>; } export interface MarqueeTickerItemProps { style?: React.CSSProperties; className?: string; onClick?: (event: React.MouseEvent) => void; children: ReactNode; } export interface MarqueeMaskProps { children: React.ReactNode; style?: React.CSSProperties; } export interface MarqueeTextProps { children: React.ReactNode; style?: React.CSSProperties; }