import * as React from "react"; export type ToastTone = "default" | "success" | "info" | "warning" | "danger" | "loading"; export type ToastItem = { id: string; title?: React.ReactNode; description?: React.ReactNode; tone?: ToastTone; action?: React.ReactNode; duration?: number; dismissible?: boolean; group?: React.ReactNode; }; export type CreateToastInput = Omit & { id?: string; }; export type ToastShortcutInput = React.ReactNode | CreateToastInput; export type ToastPromiseMessages = { loading: ToastShortcutInput; success: ToastShortcutInput | ((data: TData) => ToastShortcutInput); error: ToastShortcutInput | ((error: unknown) => ToastShortcutInput); }; export type ToastContextValue = { toasts: ToastItem[]; addToast: (toast: CreateToastInput) => string; updateToast: (id: string, toast: Partial>) => void; dismissToast: (id: string) => void; clearToasts: () => void; success: (toast: ToastShortcutInput) => string; info: (toast: ToastShortcutInput) => string; warning: (toast: ToastShortcutInput) => string; error: (toast: ToastShortcutInput) => string; loading: (toast: ToastShortcutInput) => string; promise: (promise: Promise, messages: ToastPromiseMessages) => Promise; }; export type ToastProviderProps = React.PropsWithChildren<{ defaultDuration?: number; maxToasts?: number; pauseOnHover?: boolean; position?: "top-right" | "top-left" | "bottom-right" | "bottom-left" | "top-center" | "bottom-center"; }>; declare function ToastProvider({ children, defaultDuration, maxToasts, pauseOnHover, position, }: ToastProviderProps): React.JSX.Element; declare function useToast(): ToastContextValue; export { ToastProvider, useToast };