import { CSSObject } from 'styled-components';
import { IInboxMessagePreview, Brand } from './core';

type ToastPosition = 'top-left' | 'top-right' | 'top-center' | 'bottom-left' | 'bottom-right' | 'bottom-center';
interface Theme {
    body?: CSSObject;
    root?: CSSObject;
    toast?: CSSObject;
    dismiss?: CSSObject;
    message?: {
        clickableContainer?: CSSObject;
        container?: CSSObject;
        contents?: CSSObject;
        icon?: CSSObject;
        textElement?: CSSObject;
        title?: CSSObject;
    };
    progressBar?: CSSObject;
}
export interface ToastProps {
    autoClose?: false | number;
    brand?: Brand;
    defaultIcon?: string | false;
    hideProgressBar?: boolean;
    onClick?: React.MouseEventHandler<Element>;
    openLinksInNewTab?: boolean;
    position?: ToastPosition;
    role?: string;
    theme?: Theme;
    transition?: string;
}
export interface ToastPreview {
    preview?: string;
    title?: string;
}
export type ToastParams = string | IInboxMessagePreview | ToastPreview;
export interface ToastSdk {
    config: ToastProps;
    mergeConfig: (config: ToastProps) => void;
    setConfig: (config: ToastProps) => void;
    toast: (params: ToastParams) => void;
}
export {};
