import { HTMLAttributes, SyntheticEvent, ReactElement, ReactNode, PureComponent } from 'react';
import PropTypes from 'prop-types';
import { CombinePropsAndAttributes } from '../../helpers';
interface ISelfProps {
    active?: boolean;
    centered?: boolean;
    closeButton?: ReactElement<any>;
    transitionDuration?: number;
    children: ReactNode;
    wrapContent?(content: ReactElement<any>): ReactNode;
    onClose?(event: SyntheticEvent | KeyboardEvent): any;
}
export declare type IProps = CombinePropsAndAttributes<ISelfProps, HTMLAttributes<HTMLDivElement>>;
export declare function setAppElement(appElementSource: any): void;
export default class Modal extends PureComponent<IProps> {
    static propTypes: {
        onClose: PropTypes.Requireable<(...args: any[]) => any>;
        active: PropTypes.Requireable<boolean>;
        centered: PropTypes.Requireable<boolean>;
        closeButton: PropTypes.Requireable<PropTypes.ReactElementLike>;
        children: PropTypes.Validator<PropTypes.ReactNodeLike>;
        transitionDuration: PropTypes.Requireable<number>;
        wrapContent: PropTypes.Requireable<(...args: any[]) => any>;
    };
    static defaultProps: {
        active: boolean;
        centered: boolean;
        closeButton: JSX.Element;
        transitionDuration: number;
    };
    private unblockScroll;
    private unsubscribeKeyDown;
    private ariaShow;
    render(): any;
    private wrapContent;
    componentDidMount(): void;
    componentWillUnmount(): void;
    componentDidUpdate({ active: prevActive }: IProps): void;
    private onIgnoredEvent;
    private onEscPress;
    private toggleEffects;
    private removeEffects;
}
export {};
//# sourceMappingURL=Modal.d.ts.map