import type { RegisteredDatabaseSessionAttributes, RegisteredDatabaseUserAttributes, UserId } from "./index.js"; export interface Adapter { getSessionAndUser(sessionId: string): Promise<[session: DatabaseSession | null, user: DatabaseUser | null]>; getUserSessions(userId: UserId): Promise; setSession(session: DatabaseSession): Promise; updateSessionExpiration(sessionId: string, expiresAt: Date): Promise; deleteSession(sessionId: string): Promise; deleteUserSessions(userId: UserId): Promise; deleteExpiredSessions(): Promise; } export interface DatabaseUser { id: UserId; attributes: RegisteredDatabaseUserAttributes; } export interface DatabaseSession { userId: UserId; expiresAt: Date; id: string; attributes: RegisteredDatabaseSessionAttributes; }