export interface ILoginSession { id: string; data: { userId: string | null; validUntil: number; invalidated: boolean; /** * legacy plaintext refresh token field kept so existing sessions can migrate on first use */ refreshToken?: string | null; refreshTokenHash?: string | null; rotatedRefreshTokenHashes?: string[]; transferTokenHash?: string | null; transferTokenExpiresAt?: number | null; /** * a device id that can be used to share the login session * in different contexts on the same device */ deviceId?: string | null; /** * Device metadata for session display */ deviceInfo?: { deviceName: string; browser: string; os: string; ip: string; } | null; /** * When this session was created */ createdAt?: number; /** * Last time this session was active (e.g., refreshed) */ lastActive?: number; }; }