import type { IAuthStrategy, AuthUser, TokenPair } from "../../types/auth"; export abstract class OAuthStrategy implements IAuthStrategy { abstract readonly provider: string; abstract readonly type: "oauth"; abstract authenticate(oauthToken: string): Promise; async generateTokens( user: AuthUser, sessionId: string ): Promise { throw new Error("Use AuthService.generateTokens()"); } async revokeSession(sessionId: string): Promise { throw new Error("Use AuthService.revokeSession()"); } }