import { type VariantProps } from 'class-variance-authority';
import type * as React from 'react';
import { type LoadingIndicatorVariant } from '@/components/atoms/display/LoadingIndicator';
declare const loadingOverlayVariants: (props?: ({
    fill?: "content" | "container" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
declare const overlayBackdropVariants: (props?: ({
    blur?: "none" | "sm" | "md" | null | undefined;
    background?: "transparent" | "solid" | "light" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
export interface LoadingOverlayProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof loadingOverlayVariants>, VariantProps<typeof overlayBackdropVariants> {
    /** Whether the loading overlay is visible */
    loading?: boolean;
    /** Size of the loading indicator */
    size?: 'sm' | 'md' | 'lg' | 'xl';
    /** Variant of the loading indicator */
    variant?: LoadingIndicatorVariant;
    /** Whether to show loading text */
    showText?: boolean;
    /** Custom loading text */
    text?: string;
    /** Color of the spinner */
    color?: string;
    /** Content to wrap */
    children: React.ReactNode;
}
/**
 * LoadingOverlay - Wraps arbitrary content with a loading overlay
 *
 * Shows a semi-transparent overlay with a LoadingIndicator when loading is true.
 * The content remains visible but non-interactive during loading.
 *
 * @example
 * ```tsx
 * <LoadingOverlay loading={isLoading}>
 *   <Card>Your content here</Card>
 * </LoadingOverlay>
 * ```
 */
declare function LoadingOverlay({ loading, size, variant, showText, text, color, fill, blur, background, className, children, ...props }: LoadingOverlayProps): import("react/jsx-runtime").JSX.Element;
declare namespace LoadingOverlay {
    var displayName: string;
}
export { LoadingOverlay, loadingOverlayVariants, overlayBackdropVariants };
