import React from 'react'; export type ToastType = 'default' | 'info' | 'success' | 'warning' | 'error' | 'custom'; export type ToastPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-center' | 'bottom-center'; export type ToastLayout = 'stack' | 'normal'; export type RichColorsMode = 'soft' | 'solid' | 'minimal'; export type ToastSize = 'sm' | 'md' | 'lg'; export interface ToastAction { label: string; onClick: () => void; style?: 'default' | 'primary' | 'secondary' | 'danger'; className?: string; } export interface ToastInput { placeholder: string; onSubmit: (value: string) => void; submitClassName?: string; className?: string; } export type ToastPriority = 'low' | 'normal' | 'high'; export type ToastStatus = 'idle' | 'loading' | 'success' | 'error'; export interface ToastProps { id: string; content: React.ReactNode; description?: React.ReactNode; type: ToastType; status?: ToastStatus; duration?: number; icon?: React.ReactNode; actions?: ToastAction[]; input?: ToastInput; onClose?: () => void; onClick?: () => void; progress?: number; theme?: 'light' | 'dark' | 'custom'; customStyles?: React.CSSProperties; soundEffect?: string; className?: string; showCloseButton?: boolean; swipeClose?: boolean; showProgressBar?: boolean; priority?: ToastPriority; size?: ToastSize; expandable?: boolean; expanded?: boolean; groupId?: string; customComponent?: React.ComponentType<{ toast: ToastProps; dismiss: () => void; }>; unstyled?: boolean; invert?: boolean; cancel?: { label: string; onClick?: () => void; }; } export interface ToastContextValue { addToast: (toast: Omit) => string; removeToast: (id: string) => void; updateToast: (id: string, updates: Partial>) => void; clearAllToasts: () => void; position: ToastPosition; setPosition: (position: ToastPosition) => void; layout: ToastLayout; setLayout: (layout: ToastLayout) => void; showCloseButton?: boolean; swipeDirection?: SwipeDirection; showProgressBar?: boolean; color?: boolean; richColors?: boolean | RichColorsMode; size?: ToastSize; } export interface ToastProviderProps { children?: React.ReactNode; position?: ToastPosition; defaultPosition?: ToastPosition; layout?: ToastLayout; defaultLayout?: ToastLayout; maxToasts?: number; containerClassName?: string; showCloseButton?: boolean; swipeDirection?: SwipeDirection; showProgressBar?: boolean; color?: boolean; duration?: number; defaultDuration?: number; expand?: boolean; richColors?: boolean | RichColorsMode; size?: ToastSize; closeButton?: boolean; gap?: number; offset?: string | number; toastOptions?: Partial>; theme?: 'light' | 'dark' | 'system'; } export interface ToastTheme { background: string; text: string; border: string; progressBar: string; } export interface ToastGroupOptions { groupId: string; groupTitle: string; } export type SwipeDirection = 'left' | 'right' | 'up' | 'down';