import { default as React } from 'react';
import { GlobalStackableProps, AutoFocusableProps, ExpandedChangeEvent, CollapsibleProps, CollapsibleEventProps, ControllableCollapsibleProps } from '@reusable-ui/core';
import { GenericProps } from '@reusable-ui/generic';
import { BackdropVariant } from './variants/BackdropVariant.js';
export declare const useModalUiStyleSheet: () => import("@cssfn/css-types").CssScopeMap<"main">;
export declare const useBackdropStyleSheet: () => import("@cssfn/css-types").CssScopeMap<"main">;
export declare const useNoScrollbarStyleSheet: () => import("@cssfn/css-types").CssScopeMap<"noScrollbarInline" | "noScrollbarBlock">;
export interface ModalUiComponentProps<TElement extends Element = HTMLElement> extends Pick<React.HTMLAttributes<HTMLElement>, 'tabIndex'> {
    children: React.ReactElement<GenericProps<TElement> | React.HTMLAttributes<HTMLElement> | React.SVGAttributes<SVGElement>>;
}
export type ModalActionType = 'shortcut' | 'backdrop' | 'ui' | {};
export interface ModalExpandedChangeEvent<TData extends any = any> extends ExpandedChangeEvent {
    actionType: ModalActionType;
    data?: TData;
}
export interface ModalProps<TElement extends Element = HTMLElement, TModalExpandedChangeEvent extends ModalExpandedChangeEvent<any> = ModalExpandedChangeEvent<any>> extends Omit<GenericProps<TElement>, 'children'>, GlobalStackableProps, AutoFocusableProps, CollapsibleProps<TModalExpandedChangeEvent>, CollapsibleEventProps, ControllableCollapsibleProps<TModalExpandedChangeEvent>, BackdropVariant, ModalUiComponentProps<Element> {
    lazy?: boolean;
}
declare const Modal: <TElement extends Element = HTMLElement, TModalExpandedChangeEvent extends ModalExpandedChangeEvent<any> = ModalExpandedChangeEvent<any>>(props: ModalProps<TElement, TModalExpandedChangeEvent>) => JSX.Element | null;
export { Modal, Modal as default, };
export interface ModalComponentProps<TElement extends Element = HTMLElement, TModalExpandedChangeEvent extends ModalExpandedChangeEvent<any> = ModalExpandedChangeEvent<any>> {
    modalRef?: React.Ref<TElement>;
    backdropStyle?: ModalProps<TElement, TModalExpandedChangeEvent>['backdropStyle'];
    viewport?: ModalProps<TElement, TModalExpandedChangeEvent>['viewport'];
    modalComponent?: React.ReactComponentElement<any, ModalProps<TElement, TModalExpandedChangeEvent>>;
}
