import { ReactNode } from 'react'; import { BoxProps } from '../box'; import { FlexProps } from '../flex'; interface IconProps extends Omit { color?: { critical?: BoxProps['color']; positive?: BoxProps['color']; }; } interface ToastStyleProps { message?: BoxProps; description?: BoxProps; toast?: BoxProps; icon?: IconProps; close?: BoxProps; action?: Omit; } export interface ToastAction extends Omit { label: string; onClick: () => void; } export interface ActionProps extends ToastAction { removeToast: () => void; } declare type Tone = 'positive' | 'critical' | 'none'; export interface ToastType { id: string; tone?: Tone; message: string; description?: string; action?: ToastAction; toastProps?: ToastStyleProps; } export interface ToastProps extends ToastType { onClear: (id: string) => void; } export interface ToasterProps extends FlexProps { toasts: ToastType[]; removeToast: (id: string) => void; } export interface ToastState { toasts: ToastType[]; } export declare type AddToast = (toast: ToastType) => void; export interface ToastProviderProps { children: ReactNode; } export {};