/** * @typedef {"authenticated" | "unauthenticated" | "recovery-pending" | "integration-failed"} SessionState */ /** * The session is opaque: credentials are attached without exposing tokens. * * @typedef {{ * getState(): SessionState, * subscribe(listener: () => void): () => void, * beginSignIn(returnTo?: string): Promise, * signOut(): Promise, * attach(request: Request): Promise, * recover(): Promise<"restored" | "no-session">, * onUnauthenticated(): void * }} AuthSessionPort */ export {};