import { InitOverride, JSONApiResponse, VoidApiResponse } from "../lib/runtime.js"; import { BaseAuthAPI, AuthenticationClientOptions } from "./base-auth-api.js"; import { ClientCredentials, GrantOptions, TokenSet } from "./oauth.js"; export interface SendEmailLinkRequest { /** * The user's email address */ email: string; /** * Use `link` to send a link or `code` to send a verification code. * If omitted, a `link` will be sent. */ send?: "link"; /** * Append or override the link parameters (like `scope`, `redirect_uri`, `protocol`, `response_type`), * when you send a link using email. */ authParams?: Record; } export interface SendEmailCodeRequest { /** * The user's email address */ email: string; /** * Use `link` to send a link or `code` to send a verification code. * If omitted, a `link` will be sent. */ send?: "code"; } export type SendEmailRequest = SendEmailLinkRequest | SendEmailCodeRequest; export interface SendSmsRequest { /** * The users phone number. */ phone_number: string; } export interface LoginWithEmailRequest extends ClientCredentials { /** * The user's email address. */ email: string; /** * The user's verification code. */ code: string; /** * API Identifier of the API for which you want to get an Access Token. */ audience?: string; /** * Use openid to get an ID Token, or openid profile email to also include user profile information in the ID Token. */ scope?: string; } export interface LoginWithSMSRequest extends Omit { /** * The user's phone number. */ phone_number: string; } /** * Handles passwordless flows using Email and SMS. */ export declare class Passwordless extends BaseAuthAPI { private idTokenValidator; constructor(configuration: AuthenticationClientOptions); /** * Start passwordless flow sending an email. * * Given the user `email` address, it will send an email with: * * * * See: https://auth0.com/docs/api/authentication#get-code-or-link * * @example * ```js * const auth0 = new AuthenticationApi({ * domain: 'my-domain.auth0.com', * clientId: 'myClientId', * clientSecret: 'myClientSecret' * }); * * await auth0.passwordless.sendEmail({ * email: '{EMAIL}', * send: 'link', * authParams: {} // Optional auth params. * }); * ``` */ sendEmail(bodyParameters: SendEmailRequest, initOverrides?: InitOverride): Promise; /** * Start passwordless flow sending an SMS. * * Given the user `phone_number`, it will send a SMS message with a * verification code. You can then authenticate with this user using the * `/oauth/token` endpoint specifying `phone_number` as `username` and `code` as * `password`: * * See: https://auth0.com/docs/api/authentication#get-code-or-link * * @example * ```js * const auth0 = new AuthenticationApi({ * domain: 'my-domain.auth0.com', * clientId: 'myClientId', * clientSecret: 'myClientSecret' * }); * * await auth0.passwordless.sendSMS({ * phone_number: '{PHONE}' * }); * ``` */ sendSMS(bodyParameters: SendSmsRequest, initOverrides?: InitOverride): Promise; /** * Once you have a verification code, use this endpoint to login the user with their email and verification code. * * @example * ```js * const auth0 = new AuthenticationApi({ * domain: 'my-domain.auth0.com', * clientId: 'myClientId', * clientSecret: 'myClientSecret' * }); * * await auth0.passwordless.loginWithEmail({ * email: 'foo@example.com', * code: 'ABC123' * }); * ``` */ loginWithEmail(bodyParameters: LoginWithEmailRequest, options?: GrantOptions): Promise>; /** * Once you have a verification code, use this endpoint to login the user with their phone number and verification code. * * @example * ```js * const auth0 = new AuthenticationApi({ * domain: 'my-domain.auth0.com', * clientId: 'myClientId', * clientSecret: 'myClientSecret' * }); * * await auth0.passwordless.loginWithSMS({ * phone_number: '0777777777', * code: 'ABC123' * }); * ``` */ loginWithSMS(bodyParameters: LoginWithSMSRequest, options?: GrantOptions): Promise>; }