import { VariantProps } from 'class-variance-authority';
import * as React from 'react';
export type ToastLevel = 'success' | 'error' | 'warning' | 'info';
export type ToastPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
export interface ToastData {
    id: string;
    level: ToastLevel;
    title: string;
    description?: string;
    action?: React.ReactNode;
    duration?: number;
    persistent?: boolean;
}
declare const toastVariants: (props?: ({
    level?: "error" | "warning" | "info" | "success" | null | undefined;
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
interface ToastContextValue {
    toasts: ToastData[];
    toast: (data: Omit<ToastData, 'id'>) => string;
    success: (title: string, description?: string) => string;
    error: (title: string, description?: string) => string;
    warning: (title: string, description?: string) => string;
    info: (title: string, description?: string) => string;
    dismiss: (id: string) => void;
    dismissAll: () => void;
}
declare function useToast(): ToastContextValue;
interface ToastProviderProps {
    children: React.ReactNode;
    /** Position of the toast viewport */
    position?: ToastPosition;
    /** Maximum number of visible toasts */
    maxVisible?: number;
    /** Default auto-dismiss duration in ms */
    defaultDuration?: number;
}
declare function ToastProvider({ children, position, maxVisible, defaultDuration, }: ToastProviderProps): import("react/jsx-runtime").JSX.Element;
declare function Toast({ data, onDismiss, defaultDuration, }: {
    data: ToastData;
    onDismiss: () => void;
    defaultDuration: number;
}): import("react/jsx-runtime").JSX.Element;
declare function ToastTitle({ className, ...props }: React.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
declare function ToastDescription({ className, ...props }: React.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
declare function ToastAction({ className, ...props }: React.ComponentProps<'button'>): import("react/jsx-runtime").JSX.Element;
declare function ToastClose({ className, onClick, ...props }: React.ComponentProps<'button'>): import("react/jsx-runtime").JSX.Element;
export { ToastProvider, Toast, ToastTitle, ToastDescription, ToastAction, ToastClose, useToast, toastVariants, };
export type { ToastData as ToastProps, VariantProps };
//# sourceMappingURL=toast.d.ts.map