export { AuthConfigProvider, useAuthConfig } from "./lib/AuthConfig";
export type { AuthConfigValue } from "./lib/AuthConfig";
export { AuthShell, BrandMark } from "./lib/components/AuthShell";
export { ProtectedRoute } from "./lib/components/ProtectedRoute";
export { AuthBootstrap } from "./lib/components/AuthBootstrap";
export { useIdleTimer } from "./lib/hooks/useIdleTimer";
export { LoginPage } from "./lib/pages/LoginPage";
export { SignupPage } from "./lib/pages/SignupPage";
export { FaydaCallbackPage } from "./lib/pages/FaydaCallbackPage";
export { ForgotPasswordPage } from "./lib/pages/ForgotPasswordPage";
export { SetPasswordPage } from "./lib/pages/SetPasswordPage";
export { OTPVerificationPage } from "./lib/pages/OTPVerificationPage";
export {
  authReducer,
  loginSuccess,
  setUser,
  setCurrentProfile,
  clearCurrentProfile,
  logout,
  hydrateAuth,
  setToken,
} from "./lib/store/auth.slice";
export {
  signupReducer,
  setSignupData,
  setSignupStep,
  resetSignup,
} from "./lib/store/signup.slice";
export { usePermissions } from "./lib/hooks/usePermissions";
export { useAuthToken } from "./lib/hooks/useAuthToken";
export { useTwoFactor } from "./lib/hooks/useTwoFactor";
export { useSessions } from "./lib/hooks/useSessions";
export type { MySession } from "./lib/hooks/useSessions";
export { ActiveSessions } from "./lib/components/ActiveSessions";
export { currentSessionId } from "./lib/utils/jwt";
export type { PermissionSet } from "./lib/hooks/usePermissions";
export { RequirePermission } from "./lib/components/RequirePermission";
export {
  LICENSE_PERMISSIONS,
  PORTAL_PERMISSIONS,
} from "./lib/permissions.constants";
export {
  useCurrentProfile,
  useGetMyProfileQuery,
  useUpdateMyProfileMutation,
  useUpdateMyAddressMutation,
  useUpdateMyAccountTypeMutation,
  PROFILE_FIELDS,
  PROFILE_FIELD_SECTION,
} from "./lib/hooks/useCurrentProfile";
export type {
  ProfileField,
  ProfileRequirement,
  ProfileMeResponse,
} from "./lib/hooks/useCurrentProfile";
export { configureAuthStorage, authStorage } from "./lib/utils/auth-storage";
export { refreshAccessToken } from "./lib/utils/refresh-token";
export type {
  AuthUser,
  AuthState,
  LoginPayload,
  CurrentProfile,
  CurrentProfileAddress,
  CurrentProfileProfession,
} from "./lib/types/auth.types";
