import { AxiosInstance } from 'axios'; import { RegisterRequest, UpdateAccountRequest, ChangePasswordRequest, ForgotPasswordRequest, ResetPasswordRequest, SendVerificationRequest, VerifyEmailRequest, AuthenticationAccount, PasswordLoginRequest, EmailTokenSendRequest, EmailTokenVerifyRequest, OTPSendRequest, OTPVerifyRequest, SMSSendRequest, SMSVerifyRequest, GenerateTokenRequest, RedeemTokenRequest, SSOLoginRequest, LoginResponse, RegisterResponse, LogoutResponse, GetMeResponse, UpdateMeResponse, DeleteMeResponse, ChangePasswordResponse, ForgotPasswordResponse, ResetPasswordResponse, VerifyResetTokenResponse, SendVerificationResponse, VerifyEmailResponse, RefreshSessionResponse, GetSessionsResponse, DeleteSessionResponse, DeleteAllSessionsResponse, CleanupSessionsResponse, GetMethodsResponse, GetAuthStatusResponse, SendEmailTokenResponse, VerifyEmailTokenResponse, SendOTPResponse, VerifyOTPResponse, SendSMSResponse, VerifySMSResponse, GenerateLoginTokenResponse, RedeemLoginTokenResponse, LegacySSOLoginResponse, SSOProvider, SSOInitiateRequest, SSOCallbackRequest, SSOLinkRequest, InitiateSSOResponse, CallbackSSOResponse, LinkSSOResponse, UnlinkSSOResponse, GetTenantsResponse, GetTenantResponse, CreateTenantResponse, UpdateTenantResponse, DeleteTenantResponse, GetTenantMembersResponse, AddTenantMemberResponse, UpdateTenantMemberResponse, DeleteTenantMemberResponse, GetTenantRolesResponse, CreateInvitationResponse, GetInvitationResponse, AcceptInvitationResponse, CreateTenantRequest, UpdateTenantRequest, AddMemberRequest, UpdateMemberRequest, CreateInvitationRequest, AcceptInvitationRequest } from './types'; export declare class AuthApi { private api; private currentTenantId; private externalAxiosInstances; constructor(baseURL?: string); /** * Register an external axios instance so that tenant headers * are automatically applied to it when setTenantId() is called. */ registerAxios(instance: AxiosInstance): void; /** * Set the current tenant ID for multi-tenant requests. * Also updates the header on any externally registered axios instances. */ setTenantId(tenantId: string | null): void; /** * Get the current tenant ID */ getTenantId(): string | null; private setupInterceptors; /** * Get authentication status */ getAuthStatus(): Promise; /** * Get available authentication methods */ getAuthMethods(): Promise; /** * Register a new account */ register(data: RegisterRequest): Promise; /** * Login with password */ login(data: PasswordLoginRequest): Promise; /** * Send email token to user */ sendEmailToken(data: EmailTokenSendRequest): Promise; /** * Verify email token and login */ verifyEmailToken(data: EmailTokenVerifyRequest): Promise; /** * Send SMS verification code to phone number */ sendSMS(data: SMSSendRequest): Promise; /** * Verify SMS code and login */ verifySMS(data: SMSVerifyRequest): Promise; /** * @deprecated Use sendSMS() instead */ sendOTP(data: OTPSendRequest): Promise; /** * @deprecated Use verifySMS() instead */ verifyOTP(data: OTPVerifyRequest): Promise; /** * Generate a one-time login token. * Omit target_identity_id to generate for yourself (e.g. desktop → mobile). * Provide target_identity_id to generate for another user (admin only). */ generateLoginToken(data?: GenerateTokenRequest): Promise; /** * Redeem a one-time login token (no authentication required). */ redeemLoginToken(data: RedeemTokenRequest): Promise; /** * Check if a login token is still valid (no auth required). */ getLoginTokenStatus(token: string): Promise; /** * Login with SSO provider (legacy endpoint without PKCE) */ loginWithSSO(provider: SSOProvider, data: SSOLoginRequest): Promise; /** * Logout and clear session */ logout(): Promise; /** * Refresh current session */ refreshSession(): Promise; /** * Initiate SSO login flow * Returns authorization URL to redirect user to */ initiateSSO(provider: SSOProvider, data: SSOInitiateRequest): Promise; /** * Complete SSO login after callback from provider */ ssoCallback(provider: SSOProvider, data: SSOCallbackRequest): Promise; /** * Link an SSO provider to existing account */ linkSSOProvider(provider: SSOProvider, data: SSOLinkRequest): Promise; /** * Unlink an SSO provider from account */ unlinkSSOProvider(provider: SSOProvider): Promise; /** * Get current user account info */ getCurrentUser(): Promise; /** * Update current user profile */ updateCurrentUser(data: UpdateAccountRequest): Promise; /** * Delete current user account */ deleteCurrentUser(): Promise; /** * Change password (requires current password) */ changePassword(data: ChangePasswordRequest): Promise; /** * Initiate forgot password flow */ forgotPassword(data: ForgotPasswordRequest): Promise; /** * Verify password reset token */ verifyResetToken(token: string): Promise; /** * Reset password with token */ resetPassword(data: ResetPasswordRequest): Promise; /** * Send email verification */ sendVerification(data?: SendVerificationRequest, user?: AuthenticationAccount): Promise; /** * Verify email with token */ verifyEmail(data: VerifyEmailRequest): Promise; /** * Get active sessions for current identity */ getSessions(): Promise; /** * Revoke a specific session */ revokeSession(sessionToken: string): Promise; /** * Revoke all sessions for current identity */ revokeAllSessions(): Promise; /** * Cleanup expired sessions (admin) */ cleanupSessions(): Promise; /** * Get list of tenants the authenticated user belongs to */ getTenants(): Promise; /** * Get a single tenant by ID or slug */ getTenant(idOrSlug: string): Promise; /** * Create a new tenant (caller is auto-added as admin) */ createTenant(data: CreateTenantRequest): Promise; /** * Update a tenant */ updateTenant(tenantId: string, data: UpdateTenantRequest): Promise; /** * Delete a tenant */ deleteTenant(tenantId: string): Promise; /** * List members of a tenant */ getTenantMembers(tenantId: string, status?: string): Promise; /** * Add a member to a tenant by identity_id */ addTenantMember(tenantId: string, data: AddMemberRequest): Promise; /** * Update a tenant member's roles/status/metadata */ updateTenantMember(tenantId: string, identityId: string, data: UpdateMemberRequest): Promise; /** * Activate a pending membership */ activateTenantMember(tenantId: string, identityId: string): Promise; /** * Remove a member from a tenant */ removeTenantMember(tenantId: string, identityId: string): Promise; /** * List available roles */ getTenantRoles(): Promise; /** * Create an invitation for a new user to join a tenant * Requires X-Tenant-ID header (set via setTenantId) */ createInvitation(data: CreateInvitationRequest): Promise; /** * Get invitation metadata by token (no auth required) */ getInvitation(token: string): Promise; /** * Accept an invitation — creates TenantMembership for the authenticated user */ acceptInvitation(token: string, data?: AcceptInvitationRequest): Promise; }