/**
 * @license chowa v1.1.3
 *
 * Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn).
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
import * as React from 'react';
import * as PropTypes from 'prop-types';
import AlertModal from './alert-modal';
import ConfirmModal from './confirm-modal';
import PromptModal from './prompt-modal';
import $alert from './$alert';
import $confirm from './$confirm';
import $prompt from './$prompt';
import { MousePos } from './mouse-pos';
export interface ModalProps {
    className?: string;
    style?: React.CSSProperties;
    visible?: boolean;
    closeOnPressEsc?: boolean;
    align?: 'top' | 'middle' | 'bottom';
    justify?: 'start' | 'end' | 'center';
    bordered?: boolean;
    maskClosable?: boolean;
    withMask?: boolean;
    scrollDisabled?: boolean;
    onClose?: () => void;
    mousePos?: MousePos;
    onShow?: () => void;
    onHide?: () => void;
    onEnter?: () => void;
    onLeave?: () => void;
}
export interface ModalState {
    transformOrigin: React.ReactText;
}
declare class Modal extends React.PureComponent<ModalProps, ModalState> {
    static propTypes: {
        className: PropTypes.Requireable<string>;
        style: PropTypes.Requireable<object>;
        visible: PropTypes.Requireable<boolean>;
        closeOnPressEsc: PropTypes.Requireable<boolean>;
        align: PropTypes.Requireable<string>;
        justify: PropTypes.Requireable<string>;
        bordered: PropTypes.Requireable<boolean>;
        maskClosable: PropTypes.Requireable<boolean>;
        withMask: PropTypes.Requireable<boolean>;
        scrollDisabled: PropTypes.Requireable<boolean>;
        onClose: PropTypes.Requireable<(...args: any[]) => any>;
        mousePos: PropTypes.Requireable<object>;
        onShow: PropTypes.Requireable<(...args: any[]) => any>;
        onHide: PropTypes.Requireable<(...args: any[]) => any>;
        onEnter: PropTypes.Requireable<(...args: any[]) => any>;
        onLeave: PropTypes.Requireable<(...args: any[]) => any>;
    };
    static defaultProps: {
        closeOnPressEsc: boolean;
        visible: boolean;
        align: string;
        justify: string;
        bordered: boolean;
        maskClosable: boolean;
        withMask: boolean;
        scrollDisabled: boolean;
    };
    static Header: React.SFC<import("./modal-header").ModalHeaderProps>;
    static Body: React.SFC<import("./modal-body").ModalBodyProps>;
    static Footer: React.SFC<import("./modal-footer").ModalFooterProps>;
    static AlertModal: typeof AlertModal;
    static ConfirmModal: typeof ConfirmModal;
    static PromptModal: typeof PromptModal;
    static $alert: typeof $alert;
    static $confirm: typeof $confirm;
    static $prompt: typeof $prompt;
    private modalElement;
    private hasBindListener;
    constructor(props: ModalProps);
    componentDidUpdate(preProps: ModalProps): void;
    componentWillUnmount(): void;
    private autoBindEscListener;
    private keyboardToClose;
    private onEnterHandler;
    private onLeaveHandler;
    private onMaskClickHandler;
    render(): any[];
}
export default Modal;
