/**
 * Manages an auto-dismiss timer with hover-pause support.
 *
 * When `timeout` is `undefined` no timer is set and the item stays visible
 * until the consumer removes it manually.
 *
 * When the user hovers over the card the timer pauses and resumes from where
 * it left off when they move away — `remainingRef` tracks the elapsed time so
 * the full `timeout` is never restarted from scratch after a hover.
 *
 * @param timeout   Auto-dismiss duration in ms. `undefined` = no auto-dismiss.
 * @param onDismiss Called once when the timer fires naturally (not on manual close).
 *
 * @returns
 *   - `isPaused`        — whether the timer is currently paused (hover active).
 *                         `ToastItem` uses this to pause the CSS progress bar animation.
 *   - `handleMouseEnter` — attach to the card's `onMouseEnter`.
 *   - `handleMouseLeave` — attach to the card's `onMouseLeave`.
 *
 * @example
 * ```tsx
 * const { isPaused, handleMouseEnter, handleMouseLeave } = useAutoDismiss(
 *   timeout,
 *   () => { onRemove(id); onClose?.(); },
 * );
 * ```
 */
export declare const useAutoDismiss: (timeout: number | undefined, onDismiss: () => void) => {
    isPaused: boolean;
    handleMouseEnter: () => void;
    handleMouseLeave: () => void;
};
