/**
 * Synapse REST API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 * Used to change the user password when two factor authentication is enabled. The twoFaToken is generated by the server and included in the 401 response the user tries to update the password with either the old password or a token. Only TOTP and RECOVERY_CODE otp codes can be used for this operation.
 * @export
 * @interface ChangePasswordWithTwoFactorAuthToken
 */
export interface ChangePasswordWithTwoFactorAuthToken {
    /**
     * The new password
     * @type {string}
     * @memberof ChangePasswordWithTwoFactorAuthToken
     */
    newPassword?: string;
    /**
     * Indicates which implementation of PasswordChangeInterface this object represents. Valid Values: org.sagebionetworks.repo.model.auth.ChangePasswordWithToken org.sagebionetworks.repo.model.auth.ChangePasswordWithCurrentPassword
     * @type {string}
     * @memberof ChangePasswordWithTwoFactorAuthToken
     */
    concreteType: ChangePasswordWithTwoFactorAuthTokenConcreteTypeEnum;
    /**
     * The id of the user that attempted to authenticate.
     * @type {number}
     * @memberof ChangePasswordWithTwoFactorAuthToken
     */
    userId?: number;
    /**
     * The token that was included in the error response when authenticating.
     * @type {string}
     * @memberof ChangePasswordWithTwoFactorAuthToken
     */
    twoFaToken?: string;
    /**
     * One time password (e.g. generated by the authenticator application, depending on the otpType value)
     * @type {string}
     * @memberof ChangePasswordWithTwoFactorAuthToken
     */
    otpCode?: string;
    /**
     * The type of one time password code that can be used to authenticate through two factor authentication.
     * @type {string}
     * @memberof ChangePasswordWithTwoFactorAuthToken
     */
    otpType?: ChangePasswordWithTwoFactorAuthTokenOtpTypeEnum;
}
/**
 * @export
 */
export declare const ChangePasswordWithTwoFactorAuthTokenConcreteTypeEnum: {
    readonly org_sagebionetworks_repo_model_auth_ChangePasswordWithTwoFactorAuthToken: "org.sagebionetworks.repo.model.auth.ChangePasswordWithTwoFactorAuthToken";
};
export type ChangePasswordWithTwoFactorAuthTokenConcreteTypeEnum = typeof ChangePasswordWithTwoFactorAuthTokenConcreteTypeEnum[keyof typeof ChangePasswordWithTwoFactorAuthTokenConcreteTypeEnum];
/**
 * @export
 */
export declare const ChangePasswordWithTwoFactorAuthTokenOtpTypeEnum: {
    readonly TOTP: "TOTP";
    readonly RECOVERY_CODE: "RECOVERY_CODE";
};
export type ChangePasswordWithTwoFactorAuthTokenOtpTypeEnum = typeof ChangePasswordWithTwoFactorAuthTokenOtpTypeEnum[keyof typeof ChangePasswordWithTwoFactorAuthTokenOtpTypeEnum];
/**
 * Check if a given object implements the ChangePasswordWithTwoFactorAuthToken interface.
 */
export declare function instanceOfChangePasswordWithTwoFactorAuthToken(value: object): value is ChangePasswordWithTwoFactorAuthToken;
export declare function ChangePasswordWithTwoFactorAuthTokenFromJSON(json: any): ChangePasswordWithTwoFactorAuthToken;
export declare function ChangePasswordWithTwoFactorAuthTokenFromJSONTyped(json: any, ignoreDiscriminator: boolean): ChangePasswordWithTwoFactorAuthToken;
export declare function ChangePasswordWithTwoFactorAuthTokenToJSON(json: any): ChangePasswordWithTwoFactorAuthToken;
export declare function ChangePasswordWithTwoFactorAuthTokenToJSONTyped(value?: ChangePasswordWithTwoFactorAuthToken | null, ignoreDiscriminator?: boolean): any;
