import { Key } from 'react';
import type { PersistentNotificationItem } from './types';
export interface PersistentState {
    persistentItems: PersistentNotificationItem[];
    addPersistentItem: (item: PersistentNotificationItem) => void;
    removePersistentItem: (id: Key) => void;
    removePersistentItemsByOwner: (ownerId: string) => void;
    clearPersistentItems: () => void;
    markAllAsRead: () => void;
    /**
     * Returns true if the given id was previously moved to the persistent list
     * and has NOT been explicitly removed from it (i.e. still archived, or was
     * auto-dismissed but not yet user-dismissed from the persistent list).
     */
    hasDismissedPersistentId: (id: Key) => boolean;
    /**
     * Returns true if the given id was explicitly removed from the persistent
     * list by the user. Such notifications should be completely ignored on
     * subsequent triggers (no overlay, no persistent storage).
     */
    isFullyDismissedId: (id: Key) => boolean;
}
export declare function usePersistentState(maxItems: number): PersistentState;
