import * as React from "react";
import { Module } from "@nu-art/ts-common";
import { Color } from "csstype";
import { Stylable, StylableBuilder } from "./dialog-module";
export declare enum ToastType {
    "success" = 0,
    "error" = 1,
    "info" = 2
}
declare type PositionVertical = "bottom" | "top";
declare type PositionHorizontal = "left" | "right" | "center";
export declare type Toast_Model = Stylable & {
    duration: number;
    bgColor: string;
    type: ToastType;
    positionVertical?: PositionVertical;
    positionHorizontal?: PositionHorizontal;
    content: React.ReactNode;
    actions: React.ReactElement[];
};
export interface ToastListener {
    showToast(toast?: Toast_Model): void;
}
export declare class ToastBuilder extends StylableBuilder {
    private bgColor;
    private duration;
    private type;
    private positionVertical;
    private positionHorizontal;
    private actions;
    private content;
    setType(type: ToastType): this;
    setContent(content: React.ReactNode): this;
    setBackground(bgColor: Color): this;
    setDuration(duration: number): this;
    setActions(actions: React.ReactElement[]): this;
    addActions(...actions: React.ReactElement[]): this;
    setVerticalPosition(positionVertical: PositionVertical): this;
    setHorizontalPosition(positionHorizontal: PositionHorizontal): this;
    show(): void;
}
export declare class ToastModule_Class extends Module<{}> {
    private DefaultBuilder;
    private showToast;
    toastError(errorMessage: React.ReactNode, interval?: number): void;
    toastSuccess(successMessage: React.ReactNode, interval?: number): void;
    toastInfo(infoMessage: React.ReactNode, interval?: number): void;
    private toast;
    adjustStringMessage: (_message: string) => string;
    hideToast: (toast?: Toast_Model | undefined) => void;
    private toastImpl;
}
export declare const ToastModule: ToastModule_Class;
export {};
