import type { AuthSession, LoginInput, RegisterInput, GoogleOAuthInput } from '@domain/User'; /** * Contrato para o repositório de autenticação. * Abstrai o transporte (REST) das operações de auth. */ export interface AuthRepository { login(input: LoginInput): Promise; register(input: RegisterInput): Promise; loginWithGoogle(input: GoogleOAuthInput): Promise; refreshToken(refreshToken: string): Promise>; logout(accessToken: string): Promise; forgotPassword(email: string): Promise; verifyEmail(token: string): Promise; resetPassword(token: string, newPassword: string): Promise; }