import { create } from "zustand"; interface AuthState { accessToken: string | null; sessionExpired: boolean; sessionExpiryReason: "refresh_failed" | "session_max_age" | "unauthorized" | null; setAccessToken: (token: string | null) => void; markSessionExpired: ( reason: Exclude, ) => void; clearSessionExpired: () => void; } export const useAuthStore = create((set) => ({ accessToken: null, sessionExpired: false, sessionExpiryReason: null, setAccessToken: (token) => set({ accessToken: token }), markSessionExpired: (reason) => set({ accessToken: null, sessionExpired: true, sessionExpiryReason: reason, }), clearSessionExpired: () => set({ sessionExpired: false, sessionExpiryReason: null, }), }));