UNPKG

@descope/web-js-sdk

Version:
991 lines (979 loc) 203 kB
import * as oidc_client_ts from 'oidc-client-ts'; import * as _descope_core_js_sdk from '@descope/core-js-sdk'; export { UserResponse } from '@descope/core-js-sdk'; type OidcConfigOptions = { applicationId?: string; redirectUri?: string; scope?: string; }; type OidcConfig = boolean | OidcConfigOptions; /** * Configuration for OneTap. */ interface OneTapConfig { /** Whether to auto select. Optional. */ auto_select?: boolean; /** Whether to cancel on tap outside. Optional. */ cancel_on_tap_outside?: boolean; /** ID of the prompt parent. Optional. */ prompt_parent_id?: string; /** Context. Optional. */ context?: 'signin' | 'signup' | 'use'; /** Callback function to handle the intermediate iframe close event. Optional. */ intermediate_iframe_close_callback?: () => void; /** Whether to support ITP. Optional. */ itp_support?: boolean; /** Login hint. Optional. */ login_hint?: string; /** HD. Optional. */ hd?: string; /** Whether to use FedCM for prompt. Optional. */ use_fedcm_for_prompt?: boolean; } declare function isSupported(requirePlatformAuthenticator?: boolean): Promise<boolean>; type LastLoggedInUserOptions = { storeLastAuthenticatedUser?: boolean; keepLastAuthenticatedUserAfterLogout?: boolean; }; /** * Configuration options for the flow nonce enhancer. * These options can be passed when creating the SDK. */ interface FlowNonceOptions { /** * Enables or disables the flow nonce functionality. * When disabled, the enhancer will not add nonces to requests * or process nonces from responses. * * @default true */ enableFlowNonce?: boolean; /** * Custom prefix for localStorage keys. * Allows multiple applications on the same domain * to use different storage namespaces. * * @default 'descopeFlowNonce' */ nonceStoragePrefix?: string; } type AutoRefreshOptions = { autoRefresh?: boolean; }; type FingerprintOptions = { fpKey?: string; fpLoad?: boolean; }; type SameSite = 'Strict' | 'Lax' | 'None'; type CookieConfig = boolean | { sameSite?: SameSite; secure?: boolean; }; type PersistTokensOptions<A extends CookieConfig> = { persistTokens?: A; storagePrefix?: string; preview?: boolean; sessionTokenViaCookie?: A extends false ? never : true | CookieConfig; }; /** Default name for the session cookie name / local storage key */ declare const SESSION_TOKEN_KEY = "DS"; /** Default name for the refresh local storage key */ declare const REFRESH_TOKEN_KEY = "DSR"; /** * Ensure fingerprint ids (request id, session id) exist. * If not, It will generate and load them into to browser storage. * NOTE: Using fingerprintJS data has cost, use considerably. * @param fpKey FingerprintJS API key */ declare const ensureFingerprintIds: (fpKey: string, baseUrl?: string) => Promise<void>; /** Clear Fingerprint data from storage */ declare const clearFingerprintData: () => void; declare const hasOidcParamsInUrl: () => boolean; declare const decoratedCreateSdk: <A extends CookieConfig>({ persistTokens: isPersistTokens, sessionTokenViaCookie, storagePrefix, ...config }: { projectId: string; logger?: { error: { (...data: any[]): void; (message?: any, ...optionalParams: any[]): void; }; debug: { (...data: any[]): void; (message?: any, ...optionalParams: any[]): void; }; log: { (...data: any[]): void; (message?: any, ...optionalParams: any[]): void; }; warn: { (...data: any[]): void; (message?: any, ...optionalParams: any[]): void; }; }; baseUrl?: string; hooks?: { beforeRequest?: ((config: _descope_core_js_sdk.RequestConfig) => _descope_core_js_sdk.RequestConfig) | ((config: _descope_core_js_sdk.RequestConfig) => _descope_core_js_sdk.RequestConfig)[]; afterRequest?: ((req: _descope_core_js_sdk.RequestConfig, res: Response) => void | Promise<void>) | ((req: _descope_core_js_sdk.RequestConfig, res: Response) => void | Promise<void>)[]; transformResponse?: (mutableResponse: _descope_core_js_sdk.ExtendedResponse) => Promise<_descope_core_js_sdk.ExtendedResponse>; }; cookiePolicy?: RequestCredentials; baseHeaders?: HeadersInit; refreshCookieName?: string; fetch?: typeof fetch; } & { oidcConfig?: OidcConfig; getExternalToken?: () => Promise<string>; } & FingerprintOptions & AutoRefreshOptions & FlowNonceOptions & LastLoggedInUserOptions & PersistTokensOptions<A>) => A extends false ? (({ refresh: (token?: string, tryRefresh?: boolean) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; logout: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>; flow: { start: (flowId: string, options?: Pick<{ redirectUrl?: string; location?: string; tenant?: string; deviceInfo?: { webAuthnSupport?: boolean; }; lastAuth?: { authMethod?: "webauthn" | "otp" | "oauth" | "saml" | "totp" | "magiclink" | "enchantedlink"; oauthProvider?: string; name?: string; loginId?: string; }; redirectAuth?: { callbackUrl: string; codeChallenge: string; }; oidcIdpStateId?: string; preview?: boolean; samlIdpStateId?: string; samlIdpUsername?: string; ssoAppId?: string; thirdPartyAppId?: string; oidcLoginHint?: string; abTestingKey?: number; startOptionsVersion?: number; client?: Record<string, any>; locale?: string; oidcPrompt?: string; oidcErrorRedirectUri?: string; oidcResource?: string; nativeOptions?: { platform: "ios" | "android"; oauthProvider?: string; oauthRedirect?: string; }; thirdPartyAppStateId?: string; applicationScopes?: string; outboundAppId?: string; outboundAppScopes?: string[]; }, "tenant" | "redirectUrl" | "redirectAuth" | "oidcIdpStateId" | "samlIdpStateId" | "samlIdpUsername" | "ssoAppId" | "thirdPartyAppId" | "oidcLoginHint" | "preview" | "abTestingKey" | "client" | "locale" | "oidcPrompt" | "oidcErrorRedirectUri" | "oidcResource" | "nativeOptions" | "thirdPartyAppStateId" | "applicationScopes" | "outboundAppId" | "outboundAppScopes"> & { lastAuth?: Omit<{ authMethod?: "webauthn" | "otp" | "oauth" | "saml" | "totp" | "magiclink" | "enchantedlink"; oauthProvider?: string; name?: string; loginId?: string; }, "loginId" | "name">; }, conditionInteractionId?: string, interactionId?: string, componentsVersion?: string, flowVersions?: Record<string, number>, input?: { [x: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | any)[])[])[])[])[])[])[])[])[])[])[]; }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.FlowResponse>>; next: (executionId: string, stepId: string, interactionId: string, version?: number, componentsVersion?: string, input?: { [x: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | any)[])[])[])[])[])[])[])[])[])[])[]; }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.FlowResponse>>; }; webauthn: { signUp: ((identifier: string, name: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>) & { start: (loginId: string, origin: string, name: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<{ transactionId: string; options: string; create: boolean; }>>; finish: (transactionId: string, response: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; }; signIn: ((identifier: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>) & { start: (loginId: string, origin: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<{ transactionId: string; options: string; create: boolean; }>>; finish: (transactionId: string, response: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; }; signUpOrIn: ((identifier: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>) & { start: (loginId: string, origin: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<{ transactionId: string; options: string; create: boolean; }>>; }; update: ((identifier: string, token?: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>) & { start: (loginId: string, origin: string, token?: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<{ transactionId: string; options: string; create: boolean; }>>; finish: (transactionId: string, response: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>; }; helpers: { create: (options: string) => Promise<string>; get: (options: string) => Promise<string>; isSupported: typeof isSupported; conditional: (options: string, abort: AbortController) => Promise<string>; }; }; fedcm: { onetap: { requestExchangeCode(options: { provider?: string; oneTapConfig?: OneTapConfig; loginOptions?: _descope_core_js_sdk.LoginOptions; onSkipped?: (reason?: string) => void; onDismissed?: (reason?: string) => void; onFailed?: (error: Error) => void; onCodeReceived: (code: string) => void; }): void; requestAuthentication(options?: { provider?: string; oneTapConfig?: OneTapConfig; loginOptions?: _descope_core_js_sdk.LoginOptions; onSkipped?: (reason?: string) => void; onDismissed?: (reason?: string) => void; onFailed?: (error: Error) => void; onAuthenticated?: (response: _descope_core_js_sdk.JWTResponse) => void; }): void; }; oneTap(provider?: string, oneTapConfig?: OneTapConfig, loginOptions?: _descope_core_js_sdk.LoginOptions, onSkipped?: (reason?: string) => void, onDismissed?: (reason?: string) => void): Promise<void>; launch(context?: "signin" | "signup" | "use" | "continue"): Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; isSupported(): boolean; isLoggedIn(context?: "signin" | "signup" | "use" | "continue"): Promise<boolean>; }; oidc: { loginWithRedirect: (arg?: oidc_client_ts.CreateSigninRequestArgs, disableNavigation?: boolean) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>; finishLogin: (url?: string) => Promise<any>; finishLoginIfNeed: (url?: string) => Promise<any>; refreshToken: (refreshToken: string) => Promise<oidc_client_ts.SigninResponse>; logout: (arg?: oidc_client_ts.CreateSignoutRequestArgs, disableNavigation?: boolean) => Promise<any>; }; accessKey: { exchange: (accessKey: string, loginOptions?: _descope_core_js_sdk.AccessKeyLoginOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ExchangeAccessKeyResponse>>; }; otp: { verify: { sms: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; voice: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; whatsapp: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; email: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; }; signIn: { sms: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; voice: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; whatsapp: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; email: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedEmail: string; }>>; }; signUp: { sms: (loginId: string, user?: { email?: string; name?: string; givenName?: string; middleName?: string; familyName?: string; phone?: string; }, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; voice: (loginId: string, user?: { email?: string; name?: string; givenName?: string; middleName?: string; familyName?: string; phone?: string; }, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; whatsapp: (loginId: string, user?: { email?: string; name?: string; givenName?: string; middleName?: string; familyName?: string; phone?: string; }, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; email: (loginId: string, user?: { email?: string; name?: string; givenName?: string; middleName?: string; familyName?: string; phone?: string; }, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedEmail: string; }>>; }; signUpOrIn: { sms: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; voice: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; whatsapp: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; email: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedEmail: string; }>>; }; update: { email: <T extends boolean>(loginId: string, email: string, token?: string, updateOptions?: { addToLoginIDs?: T; onMergeUseExisting?: T extends true ? boolean : never; templateOptions?: { [x: string]: string; }; templateId?: string; providerId?: string; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedEmail: string; }>>; phone: { sms: <T_1 extends boolean>(loginId: string, phone: string, token?: string, updateOptions?: { addToLoginIDs?: T_1; onMergeUseExisting?: T_1 extends true ? boolean : never; templateOptions?: { [x: string]: string; }; templateId?: string; providerId?: string; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; voice: <T_1 extends boolean>(loginId: string, phone: string, token?: string, updateOptions?: { addToLoginIDs?: T_1; onMergeUseExisting?: T_1 extends true ? boolean : never; templateOptions?: { [x: string]: string; }; templateId?: string; providerId?: string; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; whatsapp: <T_1 extends boolean>(loginId: string, phone: string, token?: string, updateOptions?: { addToLoginIDs?: T_1; onMergeUseExisting?: T_1 extends true ? boolean : never; templateOptions?: { [x: string]: string; }; templateId?: string; providerId?: string; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; }; }; }; magicLink: { verify: (token: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; signIn: { sms: (loginId: string, URI: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; voice: (loginId: string, URI: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; whatsapp: (loginId: string, URI: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; email: (loginId: string, URI: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedEmail: string; }>>; }; signUp: { sms: (loginId: string, URI: string, user?: { email?: string; name?: string; givenName?: string; middleName?: string; familyName?: string; phone?: string; }, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; voice: (loginId: string, URI: string, user?: { email?: string; name?: string; givenName?: string; middleName?: string; familyName?: string; phone?: string; }, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; whatsapp: (loginId: string, URI: string, user?: { email?: string; name?: string; givenName?: string; middleName?: string; familyName?: string; phone?: string; }, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; email: (loginId: string, URI: string, user?: { email?: string; name?: string; givenName?: string; middleName?: string; familyName?: string; phone?: string; }, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedEmail: string; }>>; }; signUpOrIn: { sms: (loginId: string, URI?: string, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; voice: (loginId: string, URI?: string, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; whatsapp: (loginId: string, URI?: string, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; email: (loginId: string, URI?: string, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedEmail: string; }>>; }; update: { email: <T_2 extends boolean>(loginId: string, email: string, URI?: string, token?: string, updateOptions?: { addToLoginIDs?: T_2; onMergeUseExisting?: T_2 extends true ? boolean : never; templateOptions?: { [x: string]: string; }; templateId?: string; providerId?: string; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedEmail: string; }>>; phone: { sms: <T_3 extends boolean>(loginId: string, phone: string, URI?: string, token?: string, updateOptions?: { addToLoginIDs?: T_3; onMergeUseExisting?: T_3 extends true ? boolean : never; templateOptions?: { [x: string]: string; }; templateId?: string; providerId?: string; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; voice: <T_3 extends boolean>(loginId: string, phone: string, URI?: string, token?: string, updateOptions?: { addToLoginIDs?: T_3; onMergeUseExisting?: T_3 extends true ? boolean : never; templateOptions?: { [x: string]: string; }; templateId?: string; providerId?: string; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; whatsapp: <T_3 extends boolean>(loginId: string, phone: string, URI?: string, token?: string, updateOptions?: { addToLoginIDs?: T_3; onMergeUseExisting?: T_3 extends true ? boolean : never; templateOptions?: { [x: string]: string; }; templateId?: string; providerId?: string; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; }; }; }; enchantedLink: { verify: (token: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>; signIn: (loginId: string, URI?: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>; signUpOrIn: (loginId: string, URI?: string, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>; signUp: (loginId: string, URI?: string, user?: { email?: string; name?: string; givenName?: string; middleName?: string; familyName?: string; phone?: string; }, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>; waitForSession: (pendingRef: string, config?: { pollingIntervalMs: number; timeoutMs: number; }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; update: { email: <T_4 extends boolean>(loginId: string, email: string, URI?: string, token?: string, updateOptions?: { addToLoginIDs?: T_4; onMergeUseExisting?: T_4 extends true ? boolean : never; templateOptions?: { [x: string]: string; }; templateId?: string; providerId?: string; }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.EnchantedLinkResponse>>; }; }; oauth: { start: ((provider: string, redirectUrl?: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string, loginHint?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>) & { google: (redirectURL?: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>; facebook: (redirectURL?: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>; github: (redirectURL?: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>; microsoft: (redirectURL?: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>; gitlab: (redirectURL?: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>; apple: (redirectURL?: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>; discord: (redirectURL?: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>; linkedin: (redirectURL?: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>; slack: (redirectURL?: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>; }; exchange: (code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; startNative: (provider: string, loginOptions?: _descope_core_js_sdk.LoginOptions, implicit?: boolean) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>; finishNative: (provider: string, stateId: string, user?: string, code?: string, idToken?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>; getOneTapClientId: (provider: string) => Promise<_descope_core_js_sdk.SdkResponse<{ clientId: string; }>>; verifyOneTapIDToken: (provider: string, idToken: string, nonce: string, loginOptions?: _descope_core_js_sdk.LoginOptions) => Promise<_descope_core_js_sdk.SdkResponse<{ code: string; }>>; exchangeOneTapIDToken: (provider: string, idToken: string, nonce: string, loginOptions?: _descope_core_js_sdk.LoginOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; }; outbound: { connect: (appId: string, options?: { redirectUrl?: string; scopes?: string[]; tenantId?: string; tenantLevel?: boolean; }, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>; }; saml: { start: (tenantIdOrEmail: string, redirectUrl?: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string, ssoId?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>; exchange: (code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; }; totp: { signUp: (loginId: string, user?: { email?: string; name?: string; givenName?: string; middleName?: string; familyName?: string; phone?: string; }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.TOTPResponse>>; verify: (loginId: string, code: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; update: (loginId: string, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.TOTPResponse>>; }; notp: { signUpOrIn: (loginId?: string, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<{ pendingRef: string; redirectUrl: string; image: string; }>>; signUp: (loginId?: string, user?: { email?: string; name?: string; givenName?: string; middleName?: string; familyName?: string; phone?: string; }, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<{ pendingRef: string; redirectUrl: string; image: string; }>>; signIn: (loginId?: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{ pendingRef: string; redirectUrl: string; image: string; }>>; waitForSession: (pendingRef: string, config?: { pollingIntervalMs: number; timeoutMs: number; }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; }; password: { signUp: (loginId: string, password: string, user?: { email?: string; name?: string; givenName?: string; middleName?: string; familyName?: string; phone?: string; }, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; signIn: (loginId: string, password: string, loginOptions?: _descope_core_js_sdk.LoginOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; sendReset: (loginId: string, redirectUrl?: string, templateOptions?: { [x: string]: string; }) => Promise<_descope_core_js_sdk.SdkResponse<{ resetMethod: string; pendingRef?: string; linkId?: string; maskedEmail: string; }>>; update: (loginId: string, newPassword: string, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>; replace: (loginId: string, oldPassword: string, newPassword: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; policy: () => Promise<_descope_core_js_sdk.SdkResponse<{ minLength: number; lowercase: boolean; uppercase: boolean; number: boolean; nonAlphanumeric: boolean; }>>; }; selectTenant: (tenantId: string, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; logoutAll: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>; me: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.UserResponse>>; myTenants: (tenants: true | string[], token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{ tenants: { id: string; name: string; customAttributes?: Record<string, any>; }[]; }>>; history: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.UserHistoryResponse>>; isJwtExpired: (token: string) => boolean; getTenants: (token: string) => string[]; getJwtPermissions: (token: string, tenant?: string) => string[]; getJwtRoles: (token: string, tenant?: string) => string[]; getCurrentTenant: (token: string) => string; httpClient: _descope_core_js_sdk.HttpClient; } | { refresh: (token?: string, tryRefresh?: boolean) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; logout: (token?: string) => Promise<_descope_core_js_sdk.SdkResponse<never>>; flow: { start: (flowId: string, options?: Pick<{ redirectUrl?: string; location?: string; tenant?: string; deviceInfo?: { webAuthnSupport?: boolean; }; lastAuth?: { authMethod?: "webauthn" | "otp" | "oauth" | "saml" | "totp" | "magiclink" | "enchantedlink"; oauthProvider?: string; name?: string; loginId?: string; }; redirectAuth?: { callbackUrl: string; codeChallenge: string; }; oidcIdpStateId?: string; preview?: boolean; samlIdpStateId?: string; samlIdpUsername?: string; ssoAppId?: string; thirdPartyAppId?: string; oidcLoginHint?: string; abTestingKey?: number; startOptionsVersion?: number; client?: Record<string, any>; locale?: string; oidcPrompt?: string; oidcErrorRedirectUri?: string; oidcResource?: string; nativeOptions?: { platform: "ios" | "android"; oauthProvider?: string; oauthRedirect?: string; }; thirdPartyAppStateId?: string; applicationScopes?: string; outboundAppId?: string; outboundAppScopes?: string[]; }, "tenant" | "redirectUrl" | "redirectAuth" | "oidcIdpStateId" | "samlIdpStateId" | "samlIdpUsername" | "ssoAppId" | "thirdPartyAppId" | "oidcLoginHint" | "preview" | "abTestingKey" | "client" | "locale" | "oidcPrompt" | "oidcErrorRedirectUri" | "oidcResource" | "nativeOptions" | "thirdPartyAppStateId" | "applicationScopes" | "outboundAppId" | "outboundAppScopes"> & { lastAuth?: Omit<{ authMethod?: "webauthn" | "otp" | "oauth" | "saml" | "totp" | "magiclink" | "enchantedlink"; oauthProvider?: string; name?: string; loginId?: string; }, "loginId" | "name">; }, conditionInteractionId?: string, interactionId?: string, componentsVersion?: string, flowVersions?: Record<string, number>, input?: { [x: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | any)[])[])[])[])[])[])[])[])[])[])[]; }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.FlowResponse>>; next: (executionId: string, stepId: string, interactionId: string, version?: number, componentsVersion?: string, input?: { [x: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | any)[])[])[])[])[])[])[])[])[])[])[]; }) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.FlowResponse>>; }; webauthn: { signUp: ((identifier: string, name: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>) & { start: (loginId: string, origin: string, name: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<{ transactionId: string; options: string; create: boolean; }>>; finish: (transactionId: string, response: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; }; signIn: ((identifier: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>) & { start: (loginId: string, origin: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<{ transactionId: string; options: string; create: boolean; }>>; finish: (transactionId: string, response: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; }; signUpOrIn: ((identifier: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>) & { start: (loginId: string, origin: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<{ transactionId: string; options: string; create: boolean; }>>; }; update: ((identifier: string, token?: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>) & { start: (loginId: string, origin: string, token?: string, passkeyOptions?: _descope_core_js_sdk.PasskeyOptions) => Promise<_descope_core_js_sdk.SdkResponse<{ transactionId: string; options: string; create: boolean; }>>; finish: (transactionId: string, response: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ResponseData>>; }; helpers: { create: (options: string) => Promise<string>; get: (options: string) => Promise<string>; isSupported: typeof isSupported; conditional: (options: string, abort: AbortController) => Promise<string>; }; }; fedcm: { onetap: { requestExchangeCode(options: { provider?: string; oneTapConfig?: OneTapConfig; loginOptions?: _descope_core_js_sdk.LoginOptions; onSkipped?: (reason?: string) => void; onDismissed?: (reason?: string) => void; onFailed?: (error: Error) => void; onCodeReceived: (code: string) => void; }): void; requestAuthentication(options?: { provider?: string; oneTapConfig?: OneTapConfig; loginOptions?: _descope_core_js_sdk.LoginOptions; onSkipped?: (reason?: string) => void; onDismissed?: (reason?: string) => void; onFailed?: (error: Error) => void; onAuthenticated?: (response: _descope_core_js_sdk.JWTResponse) => void; }): void; }; oneTap(provider?: string, oneTapConfig?: OneTapConfig, loginOptions?: _descope_core_js_sdk.LoginOptions, onSkipped?: (reason?: string) => void, onDismissed?: (reason?: string) => void): Promise<void>; launch(context?: "signin" | "signup" | "use" | "continue"): Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; isSupported(): boolean; isLoggedIn(context?: "signin" | "signup" | "use" | "continue"): Promise<boolean>; }; oidc: { loginWithRedirect: (arg?: oidc_client_ts.CreateSigninRequestArgs, disableNavigation?: boolean) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.URLResponse>>; finishLogin: (url?: string) => Promise<any>; finishLoginIfNeed: (url?: string) => Promise<any>; refreshToken: (refreshToken: string) => Promise<oidc_client_ts.SigninResponse>; logout: (arg?: oidc_client_ts.CreateSignoutRequestArgs, disableNavigation?: boolean) => Promise<any>; }; accessKey: { exchange: (accessKey: string, loginOptions?: _descope_core_js_sdk.AccessKeyLoginOptions) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.ExchangeAccessKeyResponse>>; }; otp: { verify: { sms: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; voice: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; whatsapp: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; email: (loginId: string, code: string) => Promise<_descope_core_js_sdk.SdkResponse<_descope_core_js_sdk.JWTResponse>>; }; signIn: { sms: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; voice: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; whatsapp: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; email: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedEmail: string; }>>; }; signUp: { sms: (loginId: string, user?: { email?: string; name?: string; givenName?: string; middleName?: string; familyName?: string; phone?: string; }, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; voice: (loginId: string, user?: { email?: string; name?: string; givenName?: string; middleName?: string; familyName?: string; phone?: string; }, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; whatsapp: (loginId: string, user?: { email?: string; name?: string; givenName?: string; middleName?: string; familyName?: string; phone?: string; }, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; email: (loginId: string, user?: { email?: string; name?: string; givenName?: string; middleName?: string; familyName?: string; phone?: string; }, signUpOptions?: { customClaims?: Record<string, any>; templateId?: string; templateOptions?: { [x: string]: string; }; }) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedEmail: string; }>>; }; signUpOrIn: { sms: (loginId: string, loginOptions?: _descope_core_js_sdk.LoginOptions, token?: string) => Promise<_descope_core_js_sdk.SdkResponse<{ maskedPhone: string; }>>; voice: (loginId: string,