import { Variables, Token } from '../../common/api'; import { Account } from './Account'; import { ConfigurationProperties, ZetaPushContext } from '@zetapush/core'; import { BaseError } from '@zetapush/common'; /** * Object that the user do send to reset his password. */ export interface AccountDetailsResetPassword { } /** * From the email, the account of the user is retrieved and an email to * reset his password is sent. */ export interface LoginAccountDetailsResetPassword extends AccountDetailsResetPassword { login: string; } /** * Identicals passwords used when the user want to confirm * the reset of the password chosing a new couple of passwords */ export interface DetailsResetPassword { token: string; firstPassword: string; secondPassword: string; } /** * Manager to let the user ask to reset his password */ export interface AskResetPasswordManager { askResetPassword(accountDetailsResetPassword: AccountDetailsResetPassword): Promise; } export declare abstract class AskResetPasswordManagerInjectable implements AskResetPasswordManager { abstract askResetPassword(accountDetailsResetPassword: AccountDetailsResetPassword): Promise; } /** * Manager to let the user choose his new password */ export interface ConfirmResetPasswordManager { confirmResetPassword(detailsResetPassword: DetailsResetPassword): Promise; } export declare abstract class ConfirmResetPasswordManagerInjectable implements ConfirmResetPasswordManager { abstract confirmResetPassword(detailsResetPassword: DetailsResetPassword): Promise; } export interface ResetPasswordContext extends Variables { readonly account: Account; readonly token: Token; readonly properties: ConfigurationProperties; readonly zetapushContext: ZetaPushContext; readonly askResetPasswordUrl: string; } export interface PendingAskResetPassword { account: Account; token: Token; } export interface ResetPasswordUrlProvider { getUrl(context: ResetPasswordContext): Promise; } export declare abstract class ResetPasswordUrlProviderInjectable implements ResetPasswordUrlProvider { abstract getUrl(context: ResetPasswordContext): Promise; } export declare class AskResetPasswordError extends BaseError { details: AccountDetailsResetPassword; cause?: Error | undefined; constructor(message: string, details: AccountDetailsResetPassword, cause?: Error | undefined); } export declare class PasswordAreNotIdenticalsError extends BaseError { details: DetailsResetPassword; cause?: Error | undefined; constructor(message: string, details: DetailsResetPassword, cause?: Error | undefined); } export declare class ResetPasswordValidationTokenError extends BaseError { details: DetailsResetPassword; cause?: Error | undefined; constructor(message: string, details: DetailsResetPassword, cause?: Error | undefined); } export declare class ResetPasswordChangerPasswordError extends BaseError { details: DetailsResetPassword; cause?: Error | undefined; constructor(message: string, details: DetailsResetPassword, cause?: Error | undefined); } export declare class ChangerPasswordError extends BaseError { accountId: string; cause?: Error | undefined; constructor(message: string, accountId: string, cause?: Error | undefined); }