import { Key, useRef } from 'react';
import type { InternalToast } from '../Toast/types';
import type { DismissReason, InternalNotification } from './types';
export interface OverlayTimers {
    /** Start a toast auto-dismiss timer */
    startToastTimer: (internalId: string, id: Key, duration: number) => void;
    /** Clear a toast timer */
    clearToastTimer: (internalId: string) => void;
    /** Start a notification auto-dismiss timer */
    startNotificationTimer: (internalId: string, id: Key, duration: number) => void;
    /** Clear a notification timer */
    clearNotificationTimer: (internalId: string) => void;
    /** Handle pause/resume of all timers (e.g. on hover/focus) */
    handlePauseChange: (paused: boolean) => void;
}
export interface OverlayTimersDeps {
    /** Ref to current toasts (for resume lookup) */
    toastsRef: ReturnType<typeof useRef<InternalToast[]>>;
    /** Ref to current notifications (for resume lookup) */
    notificationsRef: ReturnType<typeof useRef<InternalNotification[]>>;
    /** Remove a toast by id */
    removeToast: (id: Key) => void;
    /** Remove a notification by id with reason (also invokes onDismiss callback) */
    removeNotification: (id: Key, reason: DismissReason) => void;
}
export declare function useOverlayTimers(deps: OverlayTimersDeps): OverlayTimers;
