import { ContextualAuthenticationRequest, FlexibleLoginRequest, SocialLoginRequest, RegisterUserRequest, SupportedContextsResponse, ContextValidationResponse, ContextObject } from '../types/ContextualAuthentication'; /** * Reconhece a recusa de login por credenciais expiradas devolvida pelo archbase-security: * HTTP 403 com `{ error: 'CREDENTIALS_EXPIRED', requirePasswordChange: true }`. Aceita tanto o * erro do axios quanto o corpo já desembrulhado. */ export declare function isCredentialsExpiredError(error: any): boolean; export interface AuthenticationManagerReturnType { login: (username: string, password: string, rememberMe: boolean) => void; logout: (clearRememberMe?: boolean) => void; username: string; isAuthenticating: boolean; isInitializing: boolean; isAuthenticated: boolean; isError: boolean; error: any; clearError: () => void; accessToken?: string | null; mfaRequired: boolean; verifyMfa?: (code: string) => Promise; cancelMfa: () => void; /** * O backend recusou o login com CREDENTIALS_EXPIRED: há troca de senha obrigatória pendente * ou a senha venceu pela política de validade. O app deve levar o usuário ao fluxo de * redefinição de senha (ArchbaseResetPassword) em vez de só exibir o erro. */ passwordChangeRequired: boolean; clearPasswordChangeRequired: () => void; loginWithContext?: (request: ContextualAuthenticationRequest, rememberMe?: boolean) => Promise; loginFlexible?: (request: FlexibleLoginRequest, rememberMe?: boolean) => Promise; loginSocial?: (request: SocialLoginRequest) => Promise; register?: (request: RegisterUserRequest) => Promise<{ email: string; businessId?: string; message: string; }>; getSupportedContexts?: () => Promise; validateContext?: (context: string) => Promise; context?: ContextObject | null; capabilities: { hasContextualLogin: boolean; hasFlexibleLogin: boolean; hasSocialLogin: boolean; hasRegistration: boolean; hasContextSupport: boolean; }; } export interface ArchbaseAuthenticationManagerProps { checkIntervalTokenHasExpired?: number; expirationThresholdOfToken?: number; } export declare const useArchbaseAuthenticationManager: ({ checkIntervalTokenHasExpired, expirationThresholdOfToken }: ArchbaseAuthenticationManagerProps) => AuthenticationManagerReturnType;