import React from 'react';
export type LoadingVariant = 'spinner' | 'progress' | 'skeleton-table' | 'skeleton-cards' | 'skeleton-form' | 'skeleton-text' | 'dots' | 'overlay';
export type LoadingSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
export interface LoadingStateProps {
    variant?: LoadingVariant;
    size?: LoadingSize;
    height?: number | string;
    message?: string;
    submessage?: string;
    progress?: number;
    progressLabel?: string;
    rows?: number;
    columns?: number;
    color?: string;
    withContainer?: boolean;
    animate?: boolean;
}
declare const LoadingState: React.FC<LoadingStateProps>;
export default LoadingState;
export declare const TableLoadingState: React.FC<{
    rows?: number;
    columns?: number;
}>;
export declare const CardsLoadingState: React.FC<{
    count?: number;
    columns?: number;
}>;
export declare const FormLoadingState: React.FC<{
    fields?: number;
}>;
export declare const PageLoadingState: React.FC<{
    message?: string;
}>;
export declare const InlineLoadingState: React.FC<{
    message?: string;
    size?: LoadingSize;
}>;
export declare const useLoadingState: (initialLoading?: boolean) => {
    loading: boolean;
    progress: number;
    startLoading: () => void;
    stopLoading: () => void;
    updateProgress: (value: number) => void;
    setLoading: React.Dispatch<React.SetStateAction<boolean>>;
    setProgress: React.Dispatch<React.SetStateAction<number>>;
};
