import * as React from 'react';
import type { ModalProps, ModalState, SharedStylePropsArg, CloseSource } from './types';
import type { SyntheticEvent } from 'react';
declare class Modal extends React.Component<ModalProps, ModalState> {
    static defaultProps: Partial<ModalProps>;
    animateOutTimer: ReturnType<typeof setTimeout> | undefined | null;
    animateStartTimer: ReturnType<typeof requestAnimationFrame> | undefined | null;
    dialogContainerRef: React.RefObject<HTMLElement>;
    lastFocus: HTMLElement | undefined | null;
    lastMountNodeOverflowStyle: string | undefined | null;
    rootRef: React.RefObject<HTMLElement>;
    state: {
        isVisible: boolean;
        mounted: boolean;
        isFocusVisible: boolean;
    };
    componentDidMount(): void;
    componentWillUnmount(): void;
    componentDidUpdate(prevProps: ModalProps, prevState: ModalState): void;
    handleFocus: (event: SyntheticEvent) => void;
    handleBlur: (event: SyntheticEvent) => void;
    disableMountNodeScroll(): void;
    resetMountNodeScroll(): void;
    onEscape: () => void;
    onDocumentClick: (e: MouseEvent) => void;
    onBackdropClick: () => void;
    onCloseClick: () => void;
    clearTimers(): void;
    didOpen(): void;
    didClose(): void;
    triggerClose(source?: CloseSource): void;
    animateOutComplete: () => void;
    getSharedProps(): Omit<SharedStylePropsArg, 'children'>;
    getMountNode(): HTMLElement;
    getChildren(): React.ReactNode;
    renderModal(renderedContent: React.ReactNode): React.JSX.Element;
    render(): React.JSX.Element;
}
export default Modal;
