import { MouseEventHandler, ReactNode } from 'react'; export interface CommonToastProps { /** * The heading to display on the toast. Use this for a brief overview of the * reason for the toast. */ heading: ReactNode; /** * The body of the toast. This is where you can elaborate with more * information about the toast. */ children?: ReactNode; /** * The type of message the toast is displaying. Will change the color and * icon of the toast. * @default "info" */ message?: 'info' | 'success' | 'warning' | 'error' | 'loading'; /** * Adds an action button to the toast. Will position to the left of the close * button if `onClose` was provided. */ action?: { text: ReactNode; onClick: MouseEventHandler; }; } export interface AddToast extends CommonToastProps { /** * If true, toast will have a close button. * @default true */ closable?: boolean; /** * If provided, will set a timeout for the toast to disappear. This will * override the `defaultTimeout` prop from `ToastProvider`. Give a value of * 0 to prevent the toast from timing out. * @default defaultTimeout */ timeout?: number; } export interface ToastContextValue { /** * Add a toast with parameters outlined by the `AddToast` object. * @param toast Adds this toast to the end of the queue. * @returns The ID of the added toast to use for early removal. */ add(toast: AddToast): number; /** * Remove a toast by ID. If no ID provided, removes the current toast. * @param toastId The ID of the toast to remove. */ remove(toastId?: number): void; /** * Modify a toast by providing the ID, then a partial toast object with fields * you wish to update. * @param toastId The ID of the toast to update. * @param toUpdate The toast fields to update. */ modify(toastId: number, toUpdate: Partial): void; /** * Returns true if toast exists in the queue. * @param toastId The ID of the toast to check. */ exists(toastId: number): boolean; } export declare const ToastContext: import("react").Context; /** * Returns the toast context object for managing toasts. */ export declare function useToast(): ToastContextValue;