/**
 * 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.
 */
/**
 * A token returned to the client when two factor authentication is required.
 * @export
 * @interface TwoFactorAuthToken
 */
export interface TwoFactorAuthToken {
    /**
     *
     * @type {string}
     * @memberof TwoFactorAuthToken
     */
    concreteType: TwoFactorAuthTokenConcreteTypeEnum;
    /**
     * The hash message authentication code for the message.
     * @type {string}
     * @memberof TwoFactorAuthToken
     */
    hmac?: string;
    /**
     * The version of the key used to generate the HMAC.
     * @type {number}
     * @memberof TwoFactorAuthToken
     */
    version?: number;
    /**
     * The date-time when this token expires.
     * @type {string}
     * @memberof TwoFactorAuthToken
     */
    expiresOn?: string;
    /**
     * The date-time the token was generated.
     * @type {string}
     * @memberof TwoFactorAuthToken
     */
    createdOn?: string;
    /**
     * The id of the user.
     * @type {number}
     * @memberof TwoFactorAuthToken
     */
    userId?: number;
    /**
     * The context within which a twoFaToken for two factor authentication is generated.
     * @type {string}
     * @memberof TwoFactorAuthToken
     */
    context?: TwoFactorAuthTokenContextEnum;
}
/**
 * @export
 */
export declare const TwoFactorAuthTokenConcreteTypeEnum: {
    readonly org_sagebionetworks_repo_model_auth_TwoFactorAuthToken: "org.sagebionetworks.repo.model.auth.TwoFactorAuthToken";
};
export type TwoFactorAuthTokenConcreteTypeEnum = typeof TwoFactorAuthTokenConcreteTypeEnum[keyof typeof TwoFactorAuthTokenConcreteTypeEnum];
/**
 * @export
 */
export declare const TwoFactorAuthTokenContextEnum: {
    readonly AUTHENTICATION: "AUTHENTICATION";
    readonly PASSWORD_CHANGE: "PASSWORD_CHANGE";
};
export type TwoFactorAuthTokenContextEnum = typeof TwoFactorAuthTokenContextEnum[keyof typeof TwoFactorAuthTokenContextEnum];
/**
 * Check if a given object implements the TwoFactorAuthToken interface.
 */
export declare function instanceOfTwoFactorAuthToken(value: object): value is TwoFactorAuthToken;
export declare function TwoFactorAuthTokenFromJSON(json: any): TwoFactorAuthToken;
export declare function TwoFactorAuthTokenFromJSONTyped(json: any, ignoreDiscriminator: boolean): TwoFactorAuthToken;
export declare function TwoFactorAuthTokenToJSON(json: any): TwoFactorAuthToken;
export declare function TwoFactorAuthTokenToJSONTyped(value?: TwoFactorAuthToken | null, ignoreDiscriminator?: boolean): any;
