import type { ReactNode } from "react";

export type ToastVariant = "info" | "success" | "warning" | "error";

export type ToastPosition =
  | "top-left"
  | "top-center"
  | "top-right"
  | "bottom-left"
  | "bottom-center"
  | "bottom-right";

export type ToastOptions = {
  /** Title of the toast */
  title?: string;
  /** Description/body text of the toast */
  description?: ReactNode;
  /** Duration in milliseconds before auto-dismiss */
  duration?: number;
  /** Action button configuration */
  action?: {
    label: string;
    onClick: () => void;
  };
  /** Cancel button configuration */
  cancel?: {
    label: string;
    onClick?: () => void;
  };
  /** Callback when toast is dismissed */
  onDismiss?: () => void;
  /** Callback when toast auto-closes */
  onAutoClose?: () => void;
  /** Whether to show the close button (defaults to Toaster's closeButton prop) */
  showCloseButton?: boolean;
};
