import { SessionUiState } from '../../types/session.js'; /** * Public session contract: {@link SessionUiState} discriminated on `status`. * Compat fields, if present, are derived from `status` (not `isPending && !session`). */ export type UseAthenaSessionResult = SessionUiState; /** * Canonical React session consumption for Auth UI. * * Projects `athena.auth.session` into {@link SessionUiState}. Does not treat * TanStack Query as identity SSOT. SessionUiState is the public discriminator. * * @example * ```tsx * const session = useAthenaSession() * switch (session.status) { * case "authenticated": * return session.user.id * case "loading": * case "unauthenticated": * case "unavailable": * case "error": * return null * } * ``` */ export declare function useAthenaSession(options?: { optional?: boolean; }): UseAthenaSessionResult;