import * as React from 'react';
import { ConfigConsumerProps } from '../config-provider';
import ErrorBoundary from './ErrorBoundary';
export interface AlertProps {
    /**
     * Type of Alert styles, options:`success`, `info`, `warning`, `error`
     */
    type?: 'success' | 'info' | 'warning' | 'error';
    greyBackground?: boolean;
    noBackground?: boolean;
    /** Whether Alert can be closed */
    closable?: boolean;
    /** Close text to show */
    closeText?: React.ReactNode;
    /** Content of Alert */
    message: React.ReactNode;
    /** Additional content of Alert */
    description?: React.ReactNode;
    /** Callback when close Alert */
    onClose?: React.MouseEventHandler<HTMLButtonElement>;
    /** Trigger when animation ending of Alert */
    afterClose?: () => void;
    /** Whether to show icon */
    showIcon?: boolean;
    /** https://www.w3.org/TR/2014/REC-html5-20141028/dom.html#aria-role-attribute */
    role?: string;
    style?: React.CSSProperties;
    prefixCls?: string;
    className?: string;
    banner?: boolean;
    icon?: React.ReactNode;
    onMouseEnter?: React.MouseEventHandler<HTMLDivElement>;
    onMouseLeave?: React.MouseEventHandler<HTMLDivElement>;
    onClick?: React.MouseEventHandler<HTMLDivElement>;
}
export interface AlertState {
    closing: boolean;
    closed: boolean;
}
export default class Alert extends React.Component<AlertProps, AlertState> {
    static ErrorBoundary: typeof ErrorBoundary;
    state: {
        closing: boolean;
        closed: boolean;
    };
    handleClose: (e: React.MouseEvent<HTMLButtonElement>) => void;
    animationEnd: () => void;
    getShowIcon(): boolean | undefined;
    getType(): "error" | "success" | "warning" | "info";
    getClosable(): boolean | undefined;
    getIconType(): React.FC<import("../icon/_base").IconBaseProps>;
    renderIconNode({ prefixCls }: {
        prefixCls: string;
    }): JSX.Element;
    renderCloseIcon({ prefixCls }: {
        prefixCls: string;
    }): JSX.Element | null;
    renderAlert: ({ getPrefixCls, direction }: ConfigConsumerProps) => JSX.Element | null;
    render(): JSX.Element;
}
