import { ReactNode } from 'react'; export type { AthenaToastProviderProps } from '../components/auth/athena-toast-provider.js'; export { AthenaToastProvider } from '../components/auth/athena-toast-provider.js'; export declare const DEFAULT_TOAST_TIMEOUT_MS = 4000; /** * Title/description payload shared by Athena toast helpers. * Prefer these helpers over calling HeroUI `toast.*` directly so timeout and * shape stay consistent across tables, forms, and showcase apps. */ export interface AthenaToastContent { description?: ReactNode; title: ReactNode; } /** Visual variants mapped onto HeroUI toast helpers. */ export type AthenaToastVariant = "default" | "success" | "info" | "warning" | "danger"; export interface AthenaToastOptions extends AthenaToastContent { /** When true, toast stays open until {@link closeToast} / {@link updateToast}. */ isLoading?: boolean; timeout?: number; variant?: AthenaToastVariant; } /** Alias matching common app naming (`AppToastContent`). */ export type AppToastContent = AthenaToastContent; /** * Neutral toast (`variant: "default"`). */ export declare function showToast(content: AthenaToastContent): string; /** * Success toast for completed actions (save, copy, send). */ export declare function showToastSuccess(content: AthenaToastContent): string; /** * Informational toast for non-blocking notices. */ export declare function showToastInfo(content: AthenaToastContent): string; /** * Warning toast for recoverable issues. */ export declare function showToastWarning(content: AthenaToastContent): string; /** * Danger toast for failures and destructive outcomes. */ export declare function showToastDanger(content: AthenaToastContent): string; /** * Indefinite loading toast. Pair with {@link closeToast} or {@link updateToast} * when the work finishes. * * @returns Toast id string for `closeToast` / `updateToast`. */ export declare function showLoadingToast(content: AthenaToastContent): string; /** * Closes a toast previously opened by {@link showLoadingToast} (or any toast id). */ export declare function closeToast(toastId: string): void; /** * Replaces an existing toast (HeroUI has no in-place mutate API). * Closes `toastId` and opens a new toast with the given content/variant. * * @returns The new toast id (loading or timed variant). */ export declare function updateToast(toastId: string, content: AthenaToastOptions): string; /** * Closes every toast currently in the default HeroUI queue. */ export declare function clearToasts(): void; export interface AthenaToastPromiseMessages { error: ReactNode | ((error: Error) => ReactNode); loading: ReactNode; success: ReactNode | ((data: T) => ReactNode); } /** * Promise-bound toast (loading → success/danger). Thin wrapper over HeroUI * `toast.promise` with package-consistent naming. */ export declare function showToastPromise(work: Promise | (() => Promise), messages: AthenaToastPromiseMessages): string;