import { CognitoUserTokens, KeyParamsOrOptions, MessageParameters, SdkOptions, TokenTrueCaller } from '../dto/shared.dto'; import { ParsedOptions } from '../shared/getOptionsFromEnvironment'; import { BaseNetworkMember, StaticDependencies, ConstructorUserData } from './BaseNetworkMember'; declare type UserDataWithCognito = ConstructorUserData & { cognitoUserTokens: CognitoUserTokens; }; export declare class NetworkMemberWithCognito extends BaseNetworkMember { private readonly _userManagementService; protected cognitoUserTokens: CognitoUserTokens; constructor(userData: UserDataWithCognito, dependencies: StaticDependencies, options: ParsedOptions); private static _isKeyParams; private static _shouldCallAfterConfirmSignUp; private static _createKeyParams; private static _createKeyParamsOrOptionsValidator; private static _validateKeyParamsOrOptions; /** * @description Initiates passwordless login to Affinity * @param options - parameters with specified environment * @param login - email/phoneNumber, registered in Cognito * @param messageParameters - optional parameters with specified welcome message * @returns token */ static initiateLogInPasswordless(inputOptions: SdkOptions, login: string, messageParameters?: MessageParameters): Promise; /** * @description Completes login * @param options - parameters for BaseNetworkMember initialization * @param token - returned by initiateLogInPasswordless * @param confirmationCode - OTP sent by AWS Cognito/SES * @returns initialized instance of SDK */ static completeLogInPasswordless(dependencies: StaticDependencies, inputOptions: SdkOptions, token: string, confirmationCode: string): Promise; /** * @description Signs out current user */ logOut(): Promise; /** * @description Get user metadata info * @returns userCreateDate */ getInfo(): Promise<{ readonly userCreateDate?: string; }>; /** * @description Initiates reset password flow * @param options - parameters with specified environment * @param login - email/phoneNumber, registered in Cognito * @param messageParameters - optional parameters with specified welcome message * @returns token to be used with completeForgotPassword */ static initiateForgotPassword(inputOptions: SdkOptions, login: string, messageParameters?: MessageParameters): Promise; /** * @description Completes reset password flow * @param options - parameters with specified environment * @param forgotPasswordToken - token returned by initiateForgotPassword * @param confirmationCode - OTP sent by AWS Cognito/SES * @param newPassword - new password * @returns initialized instance of SDK */ static completeForgotPassword(dependencies: StaticDependencies, inputOptions: SdkOptions, forgotPasswordToken: string, confirmationCode: string, newPassword: string): Promise; /** * @description Logins to Affinity with login and password * @param options - optional parameters for BaseNetworkMember initialization * @param login - arbitrary username or email or phone number, registered in Cognito * @param password - password for Cognito user * @returns initialized instance of SDK */ static logInWithPassword(dependencies: StaticDependencies, inputOptions: SdkOptions, username: string, password: string): Promise; private static _logInWithPassword; /** * @description Logins to Affinity with refresh token * @param dependencies - static dependencies including platform crypto tools * @param inputOptions - optional parameters for BaseNetworkMember initialization * @param refreshToken - refresh token to login and get new refreshed tokens * @returns initialized instance of SDK */ static logInWithRefreshToken(dependencies: StaticDependencies, inputOptions: SdkOptions, refreshToken: string): Promise; private static _logInWithRefreshToken; /** * @description Initiates sign up flow to Affinity wallet, optionally with already created did * @param inputOptiosn - parameters with specified environment * @param username - arbitrary username * @param inputPassword - password * @param keyParamsOrOptions (optional) - { encryptedSeed, password } - previously created keys to be stored at wallet * @returns initialized instance of SDK */ static signUpWithUsername(dependencies: StaticDependencies, inputOptions: SdkOptions, username: string, inputPassword: string, keyParamsOrOptions?: KeyParamsOrOptions): Promise; private static _initiateSignUpByEmailOrPhone; /** * @description Initiates sign up flow * @param options - parameters with specified environment * @param email - email address * @param password (optional) - if not provided, a random password will be generated * @param messageParameters (optional) - parameters with specified welcome message * @returns token */ static initiateSignUpByEmail(inputOptions: SdkOptions, email: string, password?: string, messageParameters?: MessageParameters): Promise; /** * @description Initiates sign up flow * @param options - parameters with specified environment * @param phone - phone number * @param password (optional) - if not provided, a random password will be generated * @param messageParameters (optional) - parameters with specified welcome message * @returns token */ static initiateSignUpByPhone(inputOptions: SdkOptions, phone: string, password?: string, messageParameters?: MessageParameters): Promise; /** * @description Completes sign up flow, optionally with already created did * (as result created keys will be stored at the Affinity Wallet) * @param options - optional parameters for BaseNetworkMember initialization * @param token - Token returned by initiateSignUp method. * @param confirmationCode - OTP sent by AWS Cognito/SES. * @param keyParamsOrOptions (optional) - { encryptedSeed, password } - previously created keys to be stored at wallet. * @returns initialized instance of SDK */ static completeSignUp(dependencies: StaticDependencies, inputOptions: SdkOptions, signUpToken: string, confirmationCode: string, keyParamsOrOptions?: KeyParamsOrOptions, passwordLess?: boolean): Promise; private static _createSignUpKeys; private static _confirmSignUp; private afterConfirmSignUp; /** * @description Resends OTP for sign up flow * @param inputOptions - parameters with specified environment * @param signUpToken - token returned by `initiateSignUp...` * @param messageParameters (optional) - parameters with specified welcome message */ static resendSignUp(inputOptions: SdkOptions, signUpToken: string, messageParameters?: MessageParameters): Promise; /** * @description Initiates passwordless sign in of an existing user, * or signs up a new one, if user was not registered * @param options - optional parameters with specified environment * @param username - email or phone number * @param messageParameters - optional parameters with specified welcome message * @returns token */ static initiateSignInPasswordless(inputOptions: SdkOptions, login: string, messageParameters?: MessageParameters): Promise; /** * @description Completes sign in * @param options - optional parameters for BaseNetworkMember initialization * @param token - received from #signIn method * @param confirmationCode - OTP sent by AWS Cognito/SES * @returns an object with a flag, identifying whether new account was created, and initialized instance of SDK */ static completeSignInPasswordless(dependencies: StaticDependencies, options: SdkOptions, signInToken: string, confirmationCode: string): Promise<{ isNew: boolean; wallet: NetworkMemberWithCognito; }>; /** * @description Initiates login of an existing user with `Truecaller` token, * or signs up a new one, if user was not registered * @param inputOptions - optional parameters with specified environment * @param profileTrueCaller - phone number * @param dependencies - static dependencies(cryptographic tools and data to format events logging) * @returns wallet */ static signInWithProfile(inputOptions: SdkOptions, profileTrueCaller: TokenTrueCaller, dependencies: StaticDependencies): Promise<{ isNew: boolean; wallet: NetworkMemberWithCognito; }>; /** * @description Initiates change user password * @param options - parameters with specified environment * @param oldPassword * @param newPassword */ changePassword(oldPassword: string, newPassword: string): Promise; private _initiateChangeEmailOrPhone; /** * @description Initiates change user attribute (email) flow * @param email - new email * @param messageParameters - optional parameters with specified welcome message * @returns token to be used with completeChangeEmailOrPhone */ initiateChangeEmail(email: string, messageParameters?: MessageParameters): Promise; /** * @description Initiates change user attribute (email) flow * @param phone - new phone * @param messageParameters - optional parameters with specified welcome message * @returns token to be used with completeChangeEmailOrPhone */ initiateChangePhone(phone: string, messageParameters?: MessageParameters): Promise; /** * @description Completes change user attribute (email/phoneNumber) flow * @param changeEmailOrPhoneToken - token returned by initiateChangePhone or initiateChangeEmail method * @param confirmationCode - OTP sent by AWS Cognito/SES */ completeChangeEmailOrPhone(changeEmailOrPhoneToken: string, confirmationCode: string): Promise; /** * @description Serialized the essential data to string that could be later used by `deserialize` * @returns string */ serializeSession(): string; /** * @description Creates a new instance of SDK from string returned by `serialize` * @param options - parameters for AffinityWallet initialization * @param serializedNetworkMember * @returns initialized instance of SDK */ static deserializeSession(dependencies: StaticDependencies, inputOptions: SdkOptions, serializedSession: string): Promise; } export {};