import * as React from 'react'; import { BaseProps } from "../../../utils/types"; import { OverlayHeaderProps } from "../overlayHeader"; import { FooterOptions } from "../../../common.type"; export declare type ModalDimension = 'small' | 'medium' | 'large'; export interface ModalProps extends BaseProps { backdropClose?: boolean | ((event?: Event, reason?: string) => void); dimension: ModalDimension; open: boolean; onClose?: (event?: Event | React.MouseEvent, reason?: string) => void; headerOptions?: OverlayHeaderProps; header?: React.ReactNode; footer?: React.ReactNode; footerOptions?: FooterOptions; children?: React.ReactNode; seperator?: boolean; closeOnEscape?: boolean; 'aria-labelledby'?: string; } interface ModalState { open: boolean; animate: boolean; zIndex?: number; } declare class Modal extends React.Component { modalRef: React.RefObject; modalContentRef: React.RefObject; previousActiveElement: HTMLElement | null; staticFocusTarget: HTMLElement | null; autoHeadingId: string; element: Element; static defaultProps: { dimension: string; closeOnEscape: boolean; }; constructor(props: ModalProps); onCloseHandler: (event: KeyboardEvent) => void; onFocusTrapKeyDown: (event: KeyboardEvent) => void; activateFocusTrap: () => void; deactivateFocusTrap: () => void; componentDidMount(): void; componentWillUnmount(): void; componentDidUpdate(prevProps: ModalProps): void; onOutsideClickHandler(event: Event): void; render(): React.JSX.Element; } export default Modal;