import type { ReactNode } from "react";
export type ToastTone = "info" | "success" | "warning" | "error";
export interface ToastOptions {
    tone?: ToastTone;
    title?: string;
    /** Auto-dismiss duration in ms. Pass `Infinity` (or `0`) to require manual dismissal. Defaults to 5000. */
    durationMs?: number;
}
export interface ToastEntry {
    id: number;
    message: string;
    tone: ToastTone;
    title?: string;
    durationMs: number;
}
export interface ToastContextValue {
    toast: (message: string, options?: ToastOptions) => number;
    dismiss: (id: number) => void;
}
export type ToastSwipeDirection = "right" | "left" | "up" | "down";
export interface ToastProviderProps {
    children: ReactNode;
    /** Default auto-dismiss duration applied when a toast doesn't override it. Defaults to 5000ms. */
    defaultDurationMs?: number;
    /** Swipe gesture direction for dismissal. Defaults to "right". */
    swipeDirection?: ToastSwipeDirection;
    /** Distance in pixels the user must swipe to dismiss. Defaults to 50. */
    swipeThreshold?: number;
    /** Tailwind classes applied to the toast viewport (positioning container). */
    viewportClassName?: string;
}
