import * as React from 'react'; import { Color } from '@syncfusion/react-base'; export { Color }; /** * Specifies the visual style of the spinner animation. */ export declare enum SpinnerType { /** * Specifies a circular stroke animation (default). * Suitable for most use cases and provides a smooth rotating effect. */ Circular = "Circular", /** * Specifies a Cupertino-style spinner with 12 fading dots. * Inspired by iOS loading indicators. */ Cupertino = "Cupertino", /** * Specifies a single circular stroke animation. * This is a slight variation of the default Circular type. */ SingleCircle = "SingleCircle", /** * Specifies a double circle animation with two concentric strokes. * Each circle animates with alternating dash segments. */ DoubleCircle = "DoubleCircle" } export interface SpinnerProps { /** * Specifies optional text displayed next to the spinner. * Recommended for accessibility when the surrounding UI lacks context. * * @default - */ label?: string; /** * Specifies whether the spinner is visible. * When set to false, renders null. * * @default true */ visible?: boolean; /** * Specifies the stroke thickness for circular variants. * Accepts any valid CSS length (e.g., '3px'). * * @default '3px' */ thickness?: string; /** * Specifies the animation duration for spinner effects such as rotation, fade, or pulse. * Accepts values like '1s' or '800ms'. * * @default '1s' */ animationDuration?: string; /** * Specifies whether the spinner should render as a fullscreen fixed overlay with a dimmed backdrop. * * @default false */ overlay?: boolean; /** * Specifies the visual style of the spinner. * Available options (SpinnerType): * - Circular: Single circular stroke with continuous rotation * - Cupertino: Fading tick marks around a circle (iOS-style) * - SingleCircle: Dashed single circle rotating * - DoubleCircle: Two concentric dashed circles animating * * @default SpinnerType.Circular */ type?: SpinnerType; /** * Specifies the spinner size. * - number: interpreted as pixels (e.g., 40 → 40px) * - string: supports 'px' and 'em' units (e.g., '40px', '2em') * * @default 36px */ size?: string | number; /** *Specifies the Color style of the spinner. Options include 'Primary', 'Secondary', 'Warning', 'Success', 'Error', and 'Info'. * * @default Color.Primary */ color?: Color; } /** * Renders the default circular spinner SVG graphic. * * @param props - Spinner visualization settings. */ export interface ISpinner extends SpinnerProps { /** * Ref to the rendered root element. Exposed via forwardRef/useImperativeHandle. * * @private */ element?: HTMLDivElement | null; } type SpinnerComponentProps = SpinnerProps & React.HTMLAttributes; /** * Spinner shows a lightweight loading indicator for pending operations. It supports multiple styles * (Circular, Cupertino, SingleCircle, DoubleCircle), configurable size and thickness, theme colors, and a fullscreen overlay mode. * * Example * ```typescript * import { Spinner, SpinnerType, Color } from "@syncfusion/react-popups"; * * export default function App() { * return (); * } * ``` */ export declare const Spinner: React.ForwardRefExoticComponent>; export default Spinner;