export { useSessionPolling } from './useSessionPolling'
export type { UseSessionPollingOptions } from './useSessionPolling'

export { useSessionQrDisplay } from './useSessionQrDisplay'

export {
  useSessionRoleFacts,
  useSessionResultFacts,
  buildRedeemBlockedReason,
  resolveTaskStatusLabel,
  syncLoginTypeFromDetail,
} from './useSessionPresentation'
export type { TaskStatusLabelContext, FactItem, UseSessionPresentationOptions, UseSessionResultFactsOptions } from './useSessionPresentation'

export { mergeSessionDetail, shouldRefreshQrImage, shouldKeepPolling } from './mergeSessionDetail'

export { DEFAULT_LOGIN_TYPE, POLL_INTERVAL_MS, POLL_FAILURE_LIMIT, ACTIVE_TASK_STATUSES } from './sessionConstants'
