import IRemoteNotificationPreferences from '../../types/IRemoteNotificationPreferences.js';
import NotificationPreferencesRepository from './NotificationPreferencesRepository.js';
export interface INotificationPreferences extends IRemoteNotificationPreferences {
    lastFetchedAt?: number;
    /**
     * Fetch the notification preferences for the current user from the MagicBell server.
     */
    fetch: () => Promise<void>;
    /**
     * Update the notification preferences for the current user.
     *
     * @preferences Object containing the new preferences.
     */
    save: (preferences: IRemoteNotificationPreferences) => Promise<void>;
    _repository: NotificationPreferencesRepository;
}
/**
 * Remote notification preferences store. It contains all preferences stored in MagicBell servers for this user.
 *
 * @example
 * const { fetch } = useNotificationPreferences();
 * useEffect(() => fetch(), []);
 */
declare const useNotificationPreferences: import("zustand").UseBoundStore<import("zustand").StoreApi<INotificationPreferences>>;
export default useNotificationPreferences;
