// @ts-nocheck import Recipe from "./recipe"; import SuperTokensError from "./error"; import { RecipeInterface, APIOptions, APIInterface, TypeEmailPasswordEmailDeliveryInput } from "./types"; import RecipeUserId from "../../recipeUserId"; import { SessionContainerInterface } from "../session/types"; import { User } from "../../types"; export default class Wrapper { static init: typeof Recipe.init; static Error: typeof SuperTokensError; static signUp(tenantId: string, email: string, password: string, session?: undefined, userContext?: Record): Promise<{ status: "OK"; user: User; recipeUserId: RecipeUserId; } | { status: "EMAIL_ALREADY_EXISTS_ERROR"; }>; static signUp(tenantId: string, email: string, password: string, session: SessionContainerInterface, userContext?: Record): Promise<{ status: "OK"; user: User; recipeUserId: RecipeUserId; } | { status: "EMAIL_ALREADY_EXISTS_ERROR"; } | { status: "LINKING_TO_SESSION_USER_FAILED"; reason: "EMAIL_VERIFICATION_REQUIRED" | "RECIPE_USER_ID_ALREADY_LINKED_WITH_ANOTHER_PRIMARY_USER_ID_ERROR" | "ACCOUNT_INFO_ALREADY_ASSOCIATED_WITH_ANOTHER_PRIMARY_USER_ID_ERROR" | "SESSION_USER_ACCOUNT_INFO_ALREADY_ASSOCIATED_WITH_ANOTHER_PRIMARY_USER_ID_ERROR"; }>; static signIn(tenantId: string, email: string, password: string, session?: undefined, userContext?: Record): Promise<{ status: "OK"; user: User; recipeUserId: RecipeUserId; } | { status: "WRONG_CREDENTIALS_ERROR"; }>; static signIn(tenantId: string, email: string, password: string, session: SessionContainerInterface, userContext?: Record): Promise<{ status: "OK"; user: User; recipeUserId: RecipeUserId; } | { status: "WRONG_CREDENTIALS_ERROR"; } | { status: "LINKING_TO_SESSION_USER_FAILED"; reason: "EMAIL_VERIFICATION_REQUIRED" | "RECIPE_USER_ID_ALREADY_LINKED_WITH_ANOTHER_PRIMARY_USER_ID_ERROR" | "ACCOUNT_INFO_ALREADY_ASSOCIATED_WITH_ANOTHER_PRIMARY_USER_ID_ERROR" | "SESSION_USER_ACCOUNT_INFO_ALREADY_ASSOCIATED_WITH_ANOTHER_PRIMARY_USER_ID_ERROR"; }>; static verifyCredentials(tenantId: string, email: string, password: string, userContext?: Record): Promise<{ status: "OK" | "WRONG_CREDENTIALS_ERROR"; }>; /** * We do not make email optional here cause we want to * allow passing in primaryUserId. If we make email optional, * and if the user provides a primaryUserId, then it may result in two problems: * - there is no recipeUserId = input primaryUserId, in this case, * this function will throw an error * - There is a recipe userId = input primaryUserId, but that recipe has no email, * or has wrong email compared to what the user wanted to generate a reset token for. * * And we want to allow primaryUserId being passed in. */ static createResetPasswordToken(tenantId: string, userId: string, email: string, userContext?: Record): Promise<{ status: "OK"; token: string; } | { status: "UNKNOWN_USER_ID_ERROR"; }>; static resetPasswordUsingToken(tenantId: string, token: string, newPassword: string, userContext?: Record): Promise<{ status: "OK" | "UNKNOWN_USER_ID_ERROR" | "RESET_PASSWORD_INVALID_TOKEN_ERROR"; } | { status: "PASSWORD_POLICY_VIOLATED_ERROR"; failureReason: string; }>; static consumePasswordResetToken(tenantId: string, token: string, userContext?: Record): Promise<{ status: "OK"; email: string; userId: string; } | { status: "RESET_PASSWORD_INVALID_TOKEN_ERROR"; }>; static updateEmailOrPassword(input: { recipeUserId: RecipeUserId; email?: string; password?: string; userContext?: Record; applyPasswordPolicy?: boolean; tenantIdForPasswordPolicy?: string; }): Promise<{ status: "OK" | "UNKNOWN_USER_ID_ERROR" | "EMAIL_ALREADY_EXISTS_ERROR"; } | { status: "EMAIL_CHANGE_NOT_ALLOWED_ERROR"; reason: string; } | { status: "PASSWORD_POLICY_VIOLATED_ERROR"; failureReason: string; }>; static createResetPasswordLink(tenantId: string, userId: string, email: string, userContext?: Record): Promise<{ status: "OK"; link: string; } | { status: "UNKNOWN_USER_ID_ERROR"; }>; static sendResetPasswordEmail(tenantId: string, userId: string, email: string, userContext?: Record): Promise<{ status: "OK" | "UNKNOWN_USER_ID_ERROR"; }>; static sendEmail(input: TypeEmailPasswordEmailDeliveryInput & { userContext?: Record; }): Promise; } export declare let init: typeof Recipe.init; export declare let Error: typeof SuperTokensError; export declare let signUp: typeof Wrapper.signUp; export declare let signIn: typeof Wrapper.signIn; export declare let verifyCredentials: typeof Wrapper.verifyCredentials; export declare let createResetPasswordToken: typeof Wrapper.createResetPasswordToken; export declare let resetPasswordUsingToken: typeof Wrapper.resetPasswordUsingToken; export declare let consumePasswordResetToken: typeof Wrapper.consumePasswordResetToken; export declare let updateEmailOrPassword: typeof Wrapper.updateEmailOrPassword; export type { RecipeInterface, APIOptions, APIInterface }; export declare let createResetPasswordLink: typeof Wrapper.createResetPasswordLink; export declare let sendResetPasswordEmail: typeof Wrapper.sendResetPasswordEmail; export declare let sendEmail: typeof Wrapper.sendEmail;