import * as React from 'react';
import { CSSTransitionProps } from '../csstransition/CSSTransition';
export type ToastSeverityType = 'success' | 'info' | 'warn' | 'error' | 'default';
type ToastMessageType = ToastMessage | ToastMessage[];
type ToastPositionType = 'center' | 'top' | 'bottom' | 'left' | 'right' | 'top-center' | 'top-left' | 'top-right' | 'bottom-center' | 'bottom-left' | 'bottom-right';
type ToastAppendToType = 'self' | HTMLElement | undefined | null;
export interface ToastMessage {
    severity?: ToastSeverityType;
    summary?: React.ReactNode;
    detail?: React.ReactNode;
    content?: React.ReactNode;
    closable?: boolean;
    sticky?: boolean;
    life?: number;
    className?: string;
    style?: object;
    contentClassName?: string;
    contentStyle?: object;
}
export interface ToastProps extends Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, 'ref'> {
    baseZIndex?: number;
    position?: ToastPositionType;
    transitionOptions?: CSSTransitionProps;
    appendTo?: ToastAppendToType;
    onClick?(message: ToastMessage): void;
    onRemove?(message: ToastMessage): void;
    onShow?(): void;
    onHide?(): void;
    children?: React.ReactNode;
}
export interface ToastMessageProps extends Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, 'ref'> {
    messageInfo?: any;
    onClick?(message: ToastMessage): void;
    onClose?: (messageInfo: any) => void;
    onMouseEnter?: React.MouseEventHandler<HTMLDivElement>;
    onMouseLeave: React.MouseEventHandler<HTMLDivElement>;
    children?: React.ReactNode;
}
export declare class Toast extends React.Component<ToastProps, any> {
    show(message: ToastMessageType): void;
    clear(): void;
    replace(message: ToastMessageType): void;
    getElement(): HTMLDivElement;
}
export {};
