import { Component } from 'react';
import { ToastProps } from '../Toast';
import './Toaster.less';
declare type ToastPropsWithKey = ToastProps & {
    key: string;
};
export declare type ToasterProps = {
    /**
     * Toaster position
     * @since 0.0.42
     */
    position?: 'top-end' | 'bottom-end';
    /**
     * @since 0.0.47
     */
    toasts?: ToastPropsWithKey[];
    /**
     * Maximum number of toaster messages that can be displayed at the same time on a screen
     * @since 1.4.1
     */
    maxToastsNumber?: number;
    /**
     * @ignore
     */
    className?: string;
    /**
     * @ignore
     */
    baseClassName?: string;
    /**
     * Triggered when a toast was closed
     * @since 1.6.0
     */
    onToastClose?: (key: string) => void;
};
declare type ToasterState = {
    toasts: ToastPropsWithKey[];
};
/**
 * `Toaster` is used for notifying about events happened in the system. For example, about results of performed operations.
 * @since 0.0.42
 */
export default class Toaster extends Component<ToasterProps, ToasterState> {
    static defaultProps: {
        position: string;
        baseClassName: string;
    };
    static getDerivedStateFromProps({ toasts, maxToastsNumber }: ToasterProps): {
        toasts: ToastPropsWithKey[];
    } | null;
    static create: (props?: {}, container?: HTMLElement) => void;
    state: ToasterState;
    isControlled(): boolean;
    /**
     * Add a new toast
     *
     * `intent` - Visual intent color to apply to component. (Type: `oneOf` 'info', 'success', 'warning', 'danger'. *Required*.)<br>
     * `accent` - Contrast (light) version of the component. (Type: `boolean`. Default: 'undefined'.)<br>
     * `icon` - Name of icon or [Icon](#!/Icon) component. (Type: `oneOfType` 'string', 'object', 'element'. Default: `undefined`.)<br>
     * `message` - Message to display in the body of the toast. (Type: `any`. Default: `undefined`.)<br>
     * `onClose` - onClose handler. (Type: `func`. Default: `undefined`.)<br>
     * `closable` - Show close control (cross mark). (Type: `boolean`. Default: `true`.)<br>
     * `autoClosable` - Whether call `onClose` after 6 seconds or not.
     * Enabled by default when the position is "top-end" and a toast has "success" intent. (Type: `boolean`. Default: 'undefined'.)<br>
     * ---
     * @param {Object} props **Toast props**:
     * @returns {string} New toast key
     * @public
     */
    add(props: ToastProps): string;
    /**
     * Update toast by key
     *
     * @param {string} key
     * @param {Object} props New props
     * @returns {string} Updated toast key
     * @public
     */
    update(key: string, props: ToastProps): string;
    /**
     * Remove toast by key
     *
     * @param {string} key
     * @public
     */
    remove(key: string): void;
    /**
     * Clear all toasts
     *
     * @public
     */
    clear(): void;
    render(): JSX.Element;
}
export {};
