import './index.css';
import { FcrIconType } from '../icon/type';
export type ToastType = 'error' | 'warn' | 'info' | 'normal';
export type ToastSize = 'small' | 'large';
interface ToastProps {
    /**
     * 消息提示框类型，可选值为 'error'(错误) | 'warn'(警告) | 'info'（消息） | 'normal'（普通）
     */
    /** @en
     * The type of toast, can be set to 'error' | 'warn' | 'info' | 'normal'.
     */
    type: ToastType;
    /**
     * 消息提示内容
     */
    /** @en
     * The content of toast.
     */
    content: string;
    /**
     * 消息是否显示关闭按钮
     */
    /** @en
     * wheter a close button is visible on right of the toast or not.
     */
    closable?: boolean;
    /**
     * 消息内容前显示的图标
     */
    /** @en
     *
     */
    icon?: FcrIconType;
    /**
     * 消息中的额外操作选项
     */
    /** @en
     * Size of the input box:
     * medium
     * large
     */
    action?: {
        /**
         * 消息中的额外操作选项文案
         */
        /** @en
         * Size of the input box:
         * medium
         * large
         */
        text: string;
        /**
         * 消息中的额外操作选项点击回调
         */
        /** @en
         * Size of the input box:
         * medium
         * large
         */
        onClick: () => void;
    };
    /**
     * 点击关闭按钮的回调
     */
    /** @en
     * Size of the input box:
     * medium
     * large
     */
    onClose?: () => void;
    size?: ToastSize;
}
export declare const FcrToast: (props: ToastProps) => import("react").JSX.Element;
export declare const FcrToastTransitionGroup: (props: {
    onEnded?: () => void;
    duration?: number;
    position?: "top" | "bottom";
} & ToastProps) => import("react").JSX.Element;
export interface ToastConfig {
    id?: string;
    persist?: boolean;
    toastProps: ToastProps;
    duration?: number;
    customRootClass?: string;
}
export declare const TOAST_ROOT_CLASS_NAME = "fcr-toast-root";
export declare class FcrToastApi {
    private static get _presistToastContainer();
    private static get _singleToastContainer();
    private static get _toastRoot();
    private static customRootClass?;
    private static _maxPresistToastRenderCount;
    private static _presistToastRenderCount;
    private static _presistToasts;
    private static _singleToast;
    private static _singleToastContainerCls;
    private static _presistToastContainerCls;
    private static _unmountToast;
    private static _preCheck;
    private static _createToastContainer;
    private static _removeToastContainer;
    private static _scanRenderableToast;
    private static _render;
    static open(config: ToastConfig): void;
    static destroyAll(): void;
}
export declare class FcrToastApiFactory {
    private _toastPlacement;
    private _renderContainer;
    constructor({ toastPlacement, renderContainer, }: {
        toastPlacement: 'top' | 'bottom';
        renderContainer: HTMLElement;
    });
    private get _toastContainer();
    private get _toastContainerCls();
    private _toast;
    private _unmountToast;
    private _createToastContainer;
    private _removeToastContainer;
    private _render;
    open(config: ToastConfig): void;
}
export {};
