import type { AuthenticatedUserDTO } from '@gridpilot/identity/application/dto/AuthenticatedUserDTO'; import type { AuthSessionDTO } from '@gridpilot/identity/application/dto/AuthSessionDTO'; export type AuthUser = AuthenticatedUserDTO; export type AuthSession = AuthSessionDTO; export interface SignupParams { email: string; password: string; displayName: string; } export interface LoginParams { email: string; password: string; } export interface AuthService { getCurrentSession(): Promise; // Email/password authentication signupWithEmail(params: SignupParams): Promise; loginWithEmail(params: LoginParams): Promise; // iRacing OAuth (demo) startIracingAuthRedirect( returnTo?: string, ): Promise<{ redirectUrl: string; state: string }>; loginWithIracingCallback(params: { code: string; state: string; returnTo?: string; }): Promise; logout(): Promise; }