export type ToastType = "success" | "info" | "warning" | "error" | "loading" | ""; export type Position = "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right"; export type SwipeDirection = "up" | "down" | "left" | "right"; export interface ToastAction { label: string; onClick: (e: MouseEvent) => void; } export interface Toast { id: number; type: ToastType; title: string; description: string; html: string; duration: number; dismissible: boolean; promise: boolean | null; action: ToastAction | null; cancel: ToastAction | null; } export interface ToastOptions extends Partial> { richColors?: boolean; closeButton?: boolean; position?: Position; invert?: boolean; onDismiss?: (toast: Toast) => void; onAutoClose?: (toast: Toast) => void; message?: string; } export interface ToastData extends ToastOptions { type?: ToastType; promise?: boolean; } export declare const TIME_BEFORE_UNMOUNT = 200; export interface SonnerToastInit extends Toast { groupKey: string; richColors: boolean; closeButton: boolean; expand: boolean; invert: boolean; onDismiss: ((toast: Toast) => void) | null; onAutoClose: ((toast: Toast) => void) | null; onRemove: (id: number) => void; getAllowedSwipeDirections: () => string[]; } export declare class SonnerToast implements Toast { #private; readonly id: number; readonly el: HTMLLIElement; readonly groupKey: string; type: ToastType; title: string; description: string; html: string; duration: number; dismissible: boolean; promise: boolean | null; action: ToastAction | null; cancel: ToastAction | null; initialHeight: number; offsetBeforeRemove: number; constructor(init: SonnerToastInit); get isRemoving(): boolean; mount(): void; measureHeight(): number; dismiss(): void; updateLayout(index: number, offset: number, visible: boolean, expanded: boolean, totalInGroup: number): void; startTimer(): void; pauseTimer(): void; clearTimer(): void; resetTimer(fallbackDuration: number): void; beginRemoval(offset: number): void; remove(): void; update(data: ToastData, defaultDuration: number): void; }