import { Component, ReactNode } from 'react';
import { ImageType } from '../Dialog';
import { ProgressProps } from '../Progress';
import '../../helpers/base.less';
import './ProgressDialog.less';
export interface ProgressDialogProps {
    /**
     * Toggles visibility.
     * @since 1.2.0
     */
    isOpen?: boolean;
    /**
     * Banner. Renders in front of content as wide as dialog.
     * @since 1.2.0
     */
    banner?: ImageType;
    /**
     * Image. Renders into content.
     * @since 1.2.0
     */
    image?: ImageType;
    /**
     * Title
     * @since 1.2.0
     */
    title?: ReactNode;
    /**
     * Description of the `ProgressDialog`.
     * @since 1.2.0
     */
    description?: ReactNode;
    /**
     * Actions which will be shown in Dialog header.
     * @since 1.2.0
     */
    actions?: ReactNode;
    /**
     * Whether the dialog should be canceled with the cancel button.
     * @since 1.2.0
     */
    cancelable?: boolean;
    /**
     * The interval of time to auto close dialog when it successfully finished.
     * Set `null` for disable auto close.
     * @since 1.2.0
     */
    autoCloseTimeout?: number | null;
    /**
     * On cancel event handler.
     * @since 1.2.0
     */
    onCancel?: () => void;
    /**
     * On close event handler.
     * @since 1.2.0
     */
    onClose?: () => void;
    /**
     * On finish event handler.
     * @since 1.2.0
     */
    onFinish?: () => void;
    /**
     * On fail event handler.
     * @since 1.2.0
     */
    onFail?: () => void;
    /**
     * Content of the `ProgressDialog`.
     * @since 1.2.0
     */
    children?: ReactNode;
    /**
     * @ignore
     */
    className?: string;
    /**
     * @ignore
     */
    baseClassName?: string;
}
declare type ProgressDialogState = {
    isOpen: boolean;
    isFinished: boolean;
    isFailed: boolean;
};
/**
 * `ProgressDialog` is a [Dialog](#!/Dialog) combined with of [Progress](#!/Progress) component.
 * @since 1.2.0
 */
declare class ProgressDialog extends Component<ProgressDialogProps, ProgressDialogState> {
    static defaultProps: {
        isOpen: boolean;
        banner: null;
        image: null;
        title: null;
        description: null;
        actions: null;
        cancelable: boolean;
        autoCloseTimeout: number;
        onCancel: null;
        onClose: null;
        onFinish: null;
        onFail: null;
        children: null;
        className: null;
        baseClassName: string;
    };
    static getDerivedStateFromProps({ isOpen }: ProgressDialogState): {
        isOpen: boolean;
    };
    state: {
        isOpen: boolean;
        isFinished: boolean;
        isFailed: boolean;
    };
    componentDidUpdate(_: ProgressDialogProps, prevState: ProgressDialogState): void;
    componentWillUnmount(): void;
    private closeTimeout;
    clearCloseTimeout(): void;
    handleStatusChange: ProgressProps['onStatusChange'];
    handleClose: () => void;
    render(): JSX.Element;
}
export default ProgressDialog;
