import React, { ReactNode, ElementType } from 'react';

type Props = React.HTMLAttributes<HTMLElement> & {
    /** Set whether the component should block its children */
    blocking?: boolean;
    /** children to display */
    children?: ReactNode;
    /** CSS class name to pass to component */
    className?: string;
    /** Set whether the blocking component should follow the scroll or stay at a fixed postion */
    keepInView?: boolean;
    /** Loader component to use */
    loader?: JSX.Element;
    /** The message to display. Can also be a component. */
    message?: string | ReactNode;
    /** Control if the children are shown when the component is being blocked */
    renderChildren?: boolean;
    /** tag to render as container element */
    tag?: ElementType;
};
declare function BlockUi({ blocking, children, className, keepInView, loader, message, renderChildren, tag: Tag, ...rest }: Props): JSX.Element;

export { type Props, BlockUi as default };
