import { Key, useRef } from 'react';
import type { InternalToast, ToastData } from '../Toast/types';
import type { OverlayTimers } from './use-overlay-timers';
export interface ToastState {
    toasts: InternalToast[];
    toastsRef: ReturnType<typeof useRef<InternalToast[]>>;
    addToast: (data: ToastData, isProgress?: boolean) => Key;
    removeToast: (id: Key) => void;
    updateToast: (id: Key, data: Partial<ToastData>) => void;
    finalizeToastRemoval: (internalId: string) => void;
}
/**
 * @param timersRef - Ref to the shared OverlayTimers instance. Accessed only
 *   inside callbacks (never during render), so it is guaranteed to be populated.
 */
export declare function useToastState(timersRef: ReturnType<typeof useRef<OverlayTimers>>): ToastState;
