import { Component } from 'react';
import { IMousePosition } from './DialogEl';
import { openDialog, closeDialog } from './open';
import { DialogPosition, IDialogPositionType } from './position';
export interface IDialogProps {
    title?: React.ReactNode;
    children?: React.ReactNode;
    footer?: React.ReactNode;
    visible: boolean;
    closeBtn?: boolean;
    onClose?: (e: KeyboardEvent | MouseEvent | TouchEvent) => void;
    mask?: boolean;
    maskClosable?: boolean;
    className?: string;
    style?: React.CSSProperties;
    position?: IDialogPositionType;
    onOpened?: () => void;
    onClosed?: () => void;
}
export interface IDialogState {
    prevOpen: boolean;
    exiting: boolean;
}
export declare class Dialog extends Component<IDialogProps, IDialogState> {
    static defaultProps: {
        onClose(): void;
        visible: boolean;
        className: string;
        style: {};
        position: DialogPosition;
        title: string;
        closeBtn: boolean;
        mask: boolean;
        maskClosable: boolean;
        footer: any;
    };
    static openDialog: typeof openDialog;
    static closeDialog: typeof closeDialog;
    lastMousePosition: IMousePosition | null;
    constructor(props: IDialogProps);
    onClose: (e: KeyboardEvent | MouseEvent | TouchEvent) => void;
    onExited: () => void;
    static getDerivedStateFromProps(props: IDialogProps, { prevOpen }: IDialogState): Partial<IDialogState> | null;
    render(): JSX.Element;
}
export default Dialog;
