import { ToastData, ToastLevel } from '../react/primitives/toast';
/**
 * useToast / ToastProvider — React-idiomatic toast API.
 * @countermeasure-platform/web-components/services/toast-react
 *
 * Matches the shadcn `useToast` shape so consumer apps can drop the
 * library in as a replacement for their local hook + provider:
 *
 *   const { toast, dismiss, toasts } = useToast()
 *   const t = toast({ title: 'Saved', description: 'OK', variant: 'success' })
 *   t.dismiss()
 *   t.update({ title: 'Saving' })
 *
 * Visuals are rendered through the existing `<Toast>` primitive at
 * `react/primitives/toast` so the look stays consistent across surfaces.
 *
 * Variant `'destructive'` is treated as an alias of `'error'` so consumers
 * migrating from the local hook (which used the same naming as the legacy
 * Alert variant set) keep working without code churn.
 */
import * as React from 'react';
export type ToastVariant = 'default' | 'destructive' | 'success' | 'info' | 'warning';
export interface ToastOptions {
    title?: React.ReactNode;
    description?: React.ReactNode;
    variant?: ToastVariant;
    action?: React.ReactElement;
    /** Auto-dismiss in ms. Falls back to provider's `duration`. */
    duration?: number;
}
export interface ToasterToast extends ToastOptions {
    id: string;
    open: boolean;
}
export interface ToastReturn {
    id: string;
    dismiss: () => void;
    update: (opts: ToastOptions) => void;
}
export interface UseToastResult {
    toast: (opts: ToastOptions) => ToastReturn;
    dismiss: (id?: string) => void;
    toasts: ToasterToast[];
}
export declare function useToast(): UseToastResult;
export interface ToastProviderProps {
    children: React.ReactNode;
    /** Default auto-dismiss duration in ms. Defaults to 5000. */
    duration?: number;
    /**
     * Direction of swipe-to-dismiss. The viewport renders at bottom-right
     * by default; this prop is captured as a `data-swipe-direction` attribute
     * for downstream tooling and Radix-style touch gestures.
     */
    swipeDirection?: 'right' | 'left' | 'up' | 'down';
    /** Optional className applied to the viewport container. */
    viewportClassName?: string;
}
export declare function ToastProvider({ children, duration, swipeDirection, viewportClassName, }: ToastProviderProps): import("react/jsx-runtime").JSX.Element;
export type { ToastData, ToastLevel };
//# sourceMappingURL=toast-react.d.ts.map