import { type ReactElement, type ReactNode } from "react";
import { type ToastManager, type ToastQueue } from "./ToastManager.js";
/**
 * This is mostly an internal hook to implement the toast functionality but can
 * be used externally as well for custom toast behavior if the other hooks do
 * not support your needs.
 *
 * @see {@link useAddToast}
 * @see {@link useToastQueue}
 * @see {@link useRemoveToast}
 *
 * @returns The current `ToastManager` set in the `ToastManagerProvider`.
 * Defaults to {@link toastManager} if there are no parent providers.
 * @since 6.0.0
 */
export declare function useToastManager(): ToastManager;
/**
 * @see {@link ToastManager.addToast}
 * @since 6.0.0
 */
export declare function useAddToast(): ToastManager["addToast"];
/**
 * @see {@link ToastManager.removeToast}
 * @since 6.0.0
 */
export declare function useRemoveToast(): ToastManager["removeToast"];
/**
 * @param limit - the total number of toasts that can be visible at once.
 * @since 6.0.0
 */
export declare function useToastQueue(limit?: number): ToastQueue;
/**
 * @since 6.0.0
 */
export interface ToastManagerProviderProps {
    children: ReactNode;
    /**
     * @defaultValue `toastManager`
     */
    manager?: ToastManager;
}
/**
 * **Client Component**
 *
 * This component can be used to implement separate instances of toasts if
 * required in your app. This probably shouldn't be required for most apps with
 * the default {@link addToast}, {@link removeToast}, and {@link clearToasts}
 * implementation.
 *
 * @see {@link https://react-md.dev/components/snackbar | Snackbar Demos}
 * @see {@link ToastManager} for example usage.
 * @since 6.0.0
 */
export declare function ToastManagerProvider(props: ToastManagerProviderProps): ReactElement;
