import { ApiSecurity, ApiUrl, AppDetails } from '../shared'; import { TeamsSettings } from '../shared/types/teams'; import { UserSettings, UUID } from '../shared/types/userSettings'; import { ChangePasswordWithLinkPayload, CryptoProvider, Keys, LoginDetails, PrivateKeys, RecoveryKeys, RegisterDetails, RegisterPreCreatedUser, RegisterPreCreatedUserResponse, SecurityDetails, Token, TwoFactorAuthQR } from './types'; import { paths } from '../schema'; export * from './types'; export declare class Auth { private readonly client; private readonly appDetails; private readonly apiSecurity?; private readonly apiUrl; static client(apiUrl: ApiUrl, appDetails: AppDetails, apiSecurity?: ApiSecurity): Auth; private constructor(); /** * Tries to register a new user * @param registerDetails */ register(registerDetails: RegisterDetails): Promise<{ token: Token; newToken: Token; user: Omit & { referralCode: string; }; uuid: UUID; }>; /** * Tries to register a new user without sending keys * @param registerDetails */ registerWithoutKeys(registerDetails: Omit): Promise<{ token: Token; newToken: Token; user: Omit & { referralCode: string; }; uuid: UUID; }>; /** * Registers a precreated user * @param registerDetails * @returns {Promise} Returns sign in token, user data and uuid. */ registerPreCreatedUser(registerDetails: RegisterPreCreatedUser): Promise; /** * Registers a precreated user without sending keys * @param registerDetails * @returns {Promise} Returns sign in token, user data and uuid. */ registerPreCreatedUserWithoutKeys(registerDetails: RegisterPreCreatedUser): Promise; /** * Requests account unblock email * * @param {string} email - The email address associated with the account. * @returns {Promise} - Resolves when the email is sent. */ requestUnblockAccount(email: string): Promise; /** * Unblocks account with token * * @param {string} token - The token received via email to verify and unblock the account. * @returns {Promise} - Resolves successfuly when account is unblocked */ unblockAccount(token: string): Promise; /** * Tries to log in a user given its login details * @param details * @param cryptoProvider */ login(details: LoginDetails, cryptoProvider: CryptoProvider): Promise<{ token: Token; newToken: Token; user: UserSettings; userTeam: TeamsSettings | null; }>; /** * Tries to log in a user given its cli login details * @param details * @param cryptoProvider */ loginAccess(details: LoginDetails, cryptoProvider: CryptoProvider): Promise; /** * Tries to log in a user given its login details without sending keys * @param details * @param cryptoProvider */ loginWithoutKeys(details: LoginDetails, cryptoProvider: CryptoProvider): Promise<{ token: Token; newToken: Token; user: UserSettings; userTeam: TeamsSettings | null; }>; /** * Updates the asymmetric keys * @param keys * @param token */ updateKeys(keys: Keys, token: Token): Promise; /** * Returns general security details * @param email */ securityDetails(email: string): Promise; /** * Logout */ logout(token?: Token): Promise; /** * Generates a new TwoFactorAuth code */ generateTwoFactorAuthQR(token?: Token): Promise; /** * Disables TwoFactorAuthentication * @param pass * @param code */ disableTwoFactorAuth(pass: string, code: string, token?: Token): Promise; /** * Store TwoFactorAuthentication details * @param backupKey * @param code */ storeTwoFactorAuthKey(backupKey: string, code: string, token?: Token): Promise; /** * @deprecated Use `sendUserDeactivationEmail` instead. * Sends request to send the email to delete the account * @param email */ sendDeactivationEmail(email: string): Promise; /** * Sends request to send the email to delete the account */ sendUserDeactivationEmail(token?: Token): Promise; /** * @deprecated Use `confirmUserDeactivation` instead. * Confirms the account deactivation * @param token */ confirmDeactivation(token: string): Promise; /** * Confirms the account deactivation * @param token */ confirmUserDeactivation(deactivationToken: string, token?: string): Promise; /** * Check credentials * @param hashedPassword * @returns */ areCredentialsCorrect(hashedPassword: string, token?: Token): Promise; /** * Send email to change password * @param email */ sendChangePasswordEmail(email: string): Promise; /** * Restore password with email link * @param token * @param password * @param salt * @param mnemonic * @param keys */ changePasswordWithLink(token: string | undefined, password: string, salt: string, mnemonic: string, keys?: PrivateKeys): Promise; /** * Restore password with email link * @param token * @param password * @param salt * @param mnemonic * @param keys */ changePasswordWithLinkV2(token: string | undefined, password: string, salt: string, mnemonic: string, keys?: RecoveryKeys): Promise; legacyRecoverAccount({ token, encryptedPassword, encryptedSalt, encryptedMnemonic, eccEncryptedMnemonic, kyberEncryptedMnemonic, keys, }: ChangePasswordWithLinkPayload): Promise; /** * Reset account with token * @param token * @param password * @param salt * @param mnemonic */ resetAccountWithToken(token: string | undefined, password: string, salt: string, mnemonic: string): Promise; private basicHeaders; private headersWithToken; }