import { ReactNode } from 'react';
import { ProgressToastOptions, ToastData } from './types';
export { ToastProvider, useToastContext } from './ToastProvider';
export { ToastItem } from './ToastItem';
export type { ToastItemProps } from './ToastItem';
export { useToast } from './useToast';
export { useProgressToast } from './useProgressToast';
export type { ToastData, ToastType, ToastApi, ProgressToastOptions, } from './types';
export interface ToastProps extends Omit<ToastData, 'duration'> {
    /** Primary content */
    children?: ReactNode;
}
/**
 * Declarative Toast component that shows a toast while mounted.
 *
 * @example
 * ```tsx
 * // Simple toast (visible while mounted)
 * <Toast theme="success">Saved successfully</Toast>
 *
 * // With description
 * <Toast title="Success" description="Changes saved" theme="success" />
 * ```
 */
export declare function Toast(props: ToastProps): null;
export declare namespace Toast {
    var Progress: typeof ToastProgress;
}
export interface ToastProgressProps extends ProgressToastOptions {
    /** Primary content (alternative to title) */
    children?: ReactNode;
}
/**
 * Declarative Progress Toast component.
 *
 * @example
 * ```tsx
 * <Toast.Progress
 *   {...(isLoading
 *     ? { isLoading: true, title: 'Saving...' }
 *     : { isLoading: false, title: 'Saved!', theme: 'success' }
 *   )}
 * />
 * ```
 */
declare function ToastProgress(props: ToastProgressProps): null;
export type ToastComponent = typeof Toast & {
    Progress: typeof ToastProgress;
};
