import { ArchbaseAccessToken } from './ArchbaseAccessToken'; import { ContextualAuthenticationResponse, ContextualAuthenticationRequest, FlexibleLoginRequest, SocialLoginRequest, RegisterUserRequest, SupportedContextsResponse, ContextValidationResponse } from './types/ContextualAuthentication'; export interface ArchbaseAuthenticator { login(username: string, password: string): Promise; refreshToken(refresh_token: string): Promise; sendResetPasswordEmail(email: string): Promise; resetPassword(email: string, passwordResetToken: string, newPassword: string): Promise; /** * Completa o login em duas etapas quando o usuário tem MFA/2FA: recebe o token de desafio * (retornado no `login`/`loginWithContext` como `mfa_required`) + o código do segundo fator * (TOTP ou código de recuperação) e devolve os tokens reais. */ verifyMfa?(challengeToken: string, code: string): Promise; /** Login contextual com suporte a enrichers específicos da aplicação */ loginWithContext?(request: ContextualAuthenticationRequest): Promise; /** Login flexível com email ou telefone */ loginFlexible?(request: FlexibleLoginRequest): Promise; /** Login via provedores sociais (Google, Facebook, Apple) */ loginSocial?(request: SocialLoginRequest): Promise; /** Registro de usuário com dados adicionais de negócio */ register?(request: RegisterUserRequest): Promise<{ email: string; businessId?: string; message: string; }>; /** Lista contextos suportados pela implementação */ getSupportedContexts?(): Promise; /** Valida se um contexto específico é suportado */ validateContext?(context: string): Promise; }