import type { UserRecord, UserSanctions } from './userRepository.js'; export interface GatewaySessionInfo { sessionToken: string; userId: string; username: string; displayName: string; roles: string[]; sanctions: UserSanctions; createdAt: string; issuedAt: string; } export interface GameSessionInfo { profile: string; gameToken: string; sessionToken: string; userId: string; username: string; displayName: string; roles: string[]; sanctions: UserSanctions; createdAt: string; issuedAt: string; } export interface GatewaySessionConfig { sessionTtlSeconds: number; gameSessionTtlSeconds: number; } export interface SessionRevocationOptions { revokeGames?: boolean; } export interface GatewaySessionService { createSession(user: UserRecord): Promise; getSession(sessionToken: string): Promise; revokeSession(sessionToken: string, options?: SessionRevocationOptions): Promise; createGameSession(sessionToken: string, profile: string): Promise; getGameSession(profile: string, gameToken: string): Promise; }