import { BoxProps, ElementProps, Factory, StylesApiProps } from '../../core';
import { LoaderProps } from '../Loader';
import { OverlayProps } from '../Overlay';
import { TransitionOverride } from '../Transition';
export type LoadingOverlayStylesNames = 'root' | 'loader' | 'overlay';
export type LoadingOverlayCssVariables = {
    root: '--lo-z-index';
};
export interface LoadingOverlayProps extends BoxProps, StylesApiProps<LoadingOverlayFactory>, ElementProps<'div'> {
    /** Props passed down to `Transition` component. Set `duration` to create custom transition or override default transition. */
    transitionProps?: TransitionOverride;
    /** Props passed down to `Loader` component */
    loaderProps?: LoaderProps;
    /** Props passed down to `Overlay` component. Use to customizing blur, opacity, color and other properties. */
    overlayProps?: OverlayProps;
    /** Controls overlay visibility. Typically used with state (useState, useDisclosure). @default false */
    visible?: boolean;
    /** Controls `z-index` of both the overlay and loader. The loader receives `z-index + 1`. @default 400 */
    zIndex?: string | number;
    /** Called when transition starts */
    onEnter?: () => void;
    /** Called when transition ends */
    onEntered?: () => void;
    /** Called when exit transition starts */
    onExit?: () => void;
    /** Called when exit transition ends */
    onExited?: () => void;
}
export type LoadingOverlayFactory = Factory<{
    props: LoadingOverlayProps;
    ref: HTMLDivElement;
    stylesNames: LoadingOverlayStylesNames;
    vars: LoadingOverlayCssVariables;
}>;
export declare const LoadingOverlay: import("../..").MantineComponent<{
    props: LoadingOverlayProps;
    ref: HTMLDivElement;
    stylesNames: LoadingOverlayStylesNames;
    vars: LoadingOverlayCssVariables;
}>;
