import React from 'react'; import { StyleProp, ViewStyle } from 'react-native'; /** * Options for configuring `LoadingModal`. * * @interface LoadingModalOptions * * **Modal Control:** * @property {boolean} isVisible Toggles the visibility of the loading overlay. * * **Appearance:** * @property {string} [backgroundColor='rgba(0, 0, 0, 0.5)'] Backdrop color. * @property {string} [displayColor='black'] Spinner and label color. * @property {StyleProp} [style] Additional styling for the overlay container. * * **Advanced Render Overrides:** * @property {(options: { defaultContent: JSX.Element; dimensions: { width: number; height: number } }) => JSX.Element} [renderContent] * Override the spinner/text content. * @property {(options: { defaultContainer: JSX.Element; dimensions: { width: number; height: number } }) => JSX.Element} [renderContainer] * Override the surrounding container implementation. */ export interface LoadingModalOptions { isVisible: boolean; backgroundColor?: string; displayColor?: string; style?: StyleProp; renderContent?: (options: { defaultContent: JSX.Element; dimensions: { width: number; height: number; }; }) => JSX.Element; renderContainer?: (options: { defaultContainer: JSX.Element; dimensions: { width: number; height: number; }; }) => JSX.Element; } export type LoadingModalType = (options: LoadingModalOptions) => JSX.Element; /** * LoadingModal presents a centered activity indicator with optional status text. It is ideal for * blocking interactions while asynchronous work completes and can be themed or overridden for * custom visuals. * * ### Key Features * - Lightweight overlay with spinner and message. * - Easily themed via `backgroundColor`, `displayColor`, and `StyleProp`. * - Supports render overrides for custom loading UX. * * ### Accessibility * - Spinner conveys ongoing progress; pair with additional messaging when possible. * * @param {LoadingModalOptions} props Modal configuration. * @returns {JSX.Element} Rendered loading modal. * * @example Simple loading overlay. * ```tsx * * ``` * * @example Custom content override. * ```tsx * ( * * {defaultContent} * Syncing data… * * )} * /> * ``` */ declare const LoadingModal: React.FC; export default LoadingModal;