
"use client";
import { UniversalToastProps } from "../../../types/dist/index.js";
import { IconPropsWithSVGProps } from "../../../tokens/types.js";
import { TextProps } from "../../Text.js";
import { ButtonProps } from "../Button.js";
import { PressableProps } from "../Pressable.js";
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
import { ToastContentProps } from "react-toastify";

//#region src/components/client/Toast/Toast.d.ts
type DataAttributes = {
  [name: `data-${string}`]: string;
};
type ReactToastifyContext = Pick<ToastContentProps, 'closeToast'>;
interface ToastProps extends UniversalToastProps, Partial<ReactToastifyContext> {
  id?: string;
  slotProps?: {
    actionButton?: Partial<ButtonProps & DataAttributes>;
    startIcon?: Partial<IconPropsWithSVGProps & DataAttributes>;
    closeIconContainer?: Partial<PressableProps & DataAttributes>;
    closeIcon?: Partial<IconPropsWithSVGProps & DataAttributes>;
    label?: Partial<TextProps & DataAttributes>;
  };
}
/**
 * **⚙️️ A single Toast notification.
 *
 * @componentType Client component
 *
 * @description
 * Toasts are short, non-blocking notifications that appear temporarily to communicate system feedback (success, warning, error, info). They may include an optional action and a dismiss control.
 *
 * Toasts should never interrupt a user’s task flow. If the user must make a decision or cannot proceed until they acknowledge the message, use a Dialog instead.
 *
 * @see
 * Check out the {@link https://uds.build/docs/components/toast Toast Docs} for more info
 *
 * @example
 * ```tsx
 * 'use client';
 * import { Toast } from "@yahoo/uds";
 *
 * <Toast variant="info" message="This is a toast" />
 *```
 *
 * @related [Tooltip](https://uds.build/docs/components/tooltip), [Popover](https://uds.build/docs/components/popover)
 **/
declare const Toast: {
  ({
    message,
    onClickCloseButton,
    size: sizeProp,
    variant: variantProp,
    actionButton,
    onClickActionButton,
    startIcon,
    closeIcon,
    closeToast,
    slotProps,
    className,
    id,
    reduceMotion: forceReduceMotion
  }: ToastProps): _$react_jsx_runtime0.JSX.Element;
  displayName: string;
};
//#endregion
export { Toast, type ToastProps };