import { dy as SSOActiveConnection, eh as WebAuthnAuthenticateResponse, a as StytchProjectConfigurationInput, cI as OTPMethods, bY as IDPConsentScreenManifest, s as Callbacks, t as StringsOptions, d$ as StytchEvent, e5 as StytchSDKUIError } from './DFPProtectedAuthProvider-0rW0WKz_.js'; import { W as B2BOAuthProviders, b1 as CommonLoginConfig, b2 as CommonB2BLoginConfig } from './GoogleOneTapClient-C8tXxrMo.js'; import { S as StytchB2BClient } from './StytchB2BClient-DTBDS3uM.js'; import { S as StytchClient } from './StytchClient-Co4cHVkh.js'; import * as react from 'react'; import { ComponentType } from 'react'; import { I as IconRegistry, T as Theme, P as PresentationOptions } from './PresentationConfig-DSW6sCx3.js'; declare const oauthIcons: { amazon: (props: react.SVGProps) => JSX.Element; apple: (props: react.SVGProps) => JSX.Element; bitbucket: (props: react.SVGProps) => JSX.Element; coinbase: (props: react.SVGProps) => JSX.Element; discord: (props: react.SVGProps) => JSX.Element; facebook: (props: react.SVGProps) => JSX.Element; figma: (props: react.SVGProps) => JSX.Element; github: (props: react.SVGProps) => JSX.Element; gitlab: (props: react.SVGProps) => JSX.Element; google: (props: react.SVGProps) => JSX.Element; linkedin: (props: react.SVGProps) => JSX.Element; microsoft: (props: react.SVGProps) => JSX.Element; salesforce: (props: react.SVGProps) => JSX.Element; slack: (props: react.SVGProps) => JSX.Element; snapchat: (props: react.SVGProps) => JSX.Element; tiktok: (props: react.SVGProps) => JSX.Element; twitch: (props: react.SVGProps) => JSX.Element; xTwitter: (props: react.SVGProps) => JSX.Element; yahoo: (props: react.SVGProps) => JSX.Element; }; declare const cryptoIcons: { phantom: (props: react.SVGProps) => JSX.Element; metamask: (props: react.SVGProps) => JSX.Element; binance: (props: react.SVGProps) => JSX.Element; coinbase: (props: react.SVGProps) => JSX.Element; }; declare const emailIcons: { gmail: (props: react.SVGProps) => JSX.Element; outlook: (props: react.SVGProps) => JSX.Element; yahoo: (props: react.SVGProps) => JSX.Element; }; type IconNames = keyof typeof oauthIcons | keyof typeof cryptoIcons | keyof typeof emailIcons; type B2BOneTapProps = { customScopes?: string[]; providerParams?: Record; cancelOnTapOutside?: boolean; }; type OauthB2BButtonProps = { providerType: B2BOAuthProviders; loginRedirectUrl?: string; signupRedirectUrl?: string; discoveryRedirectUrl?: string; customScopes?: string[]; providerParams?: Record; onSuccess?: () => void; }; interface SSOButtonProps { connection: SSOActiveConnection; onStart?: (connection: SSOActiveConnection) => void; } type Values = T[keyof T]; declare const AppScreens$1: { readonly Main: "Main"; readonly EmailConfirmation: "Email Confirmation"; readonly LoggedIn: "Logged In"; readonly Discovery: "Discovery"; readonly Error: "Error"; readonly PasswordEmailForm: "Password Email"; readonly PasswordAuthenticate: "Password Authenticate"; readonly PasswordResetForm: "Password Reset Form"; readonly PasswordResetVerifyConfirmation: "Password Reset Verify Confirmation"; readonly PasswordForgotForm: "Password Forgot Form"; readonly PasswordSetNewConfirmation: "Password Set New Confirmation"; readonly MFAEnrollmentSelection: "MFA Enrollment Selection"; readonly RecoveryCodeEntry: "Recovery Code Entry"; readonly RecoveryCodeSave: "Recovery Code Save"; readonly SMSOTPEnrollment: "SMS OTP Enrollment"; readonly SMSOTPEntry: "SMS OTP Entry"; readonly TOTPEnrollmentManual: "TOTP Enrollment Manual"; readonly TOTPEnrollmentQRCode: "TOTP Enrollment QR Code"; readonly TOTPEntry: "TOTP Entry"; readonly EmailMethodSelection: "Email Method Selection"; readonly EmailOTPEntry: "Email OTP Entry"; readonly SSODiscoveryEmail: "SSO Discovery Email"; readonly SSODiscoveryFallback: "SSO Discovery Fallback"; readonly SSODiscoveryMenu: "SSO Discovery Menu"; }; type AppScreens$1 = Values; declare const MainScreenComponent: { readonly EmailForm: "EmailForm"; readonly EmailDiscoveryForm: "EmailDiscoveryForm"; readonly OAuthButtons: "OAuthButtons"; readonly SSOButtons: "SSOButtons"; readonly PasswordsEmailForm: "PasswordsEmailForm"; readonly PasswordEmailCombined: "PasswordEmailCombined"; readonly PasswordEmailCombinedDiscovery: "PasswordEmailCombinedDiscovery"; readonly Divider: "Divider"; }; type MainScreenComponent = Values; type ButtonComponent = typeof MainScreenComponent.SSOButtons | typeof MainScreenComponent.OAuthButtons; type ProductId$1 = 'emailMagicLinks' | 'emailOtp' | 'sso' | 'passwords' | 'oauth'; type StytchB2BProduct = { id: ProductId$1; screens: Partial>; mainScreen?: Partial>; icons?: Partial>; ssoAndOAuthButtons?: Partial<{ SsoAndOAuthButtons: ComponentType<{ buttons: ButtonComponent[]; }>; B2BGoogleOneTap: ComponentType; OAuthB2BButton: ComponentType; SSOButton: ComponentType; }>; }; type StartPasskeyAuth = () => Promise>; declare const AppScreens: { readonly Main: "Main"; readonly FloatingOneTap: "FloatingOneTap"; readonly PasskeyRegistrationStart: "PasskeyRegistrationStart"; readonly PasskeyRegistrationSuccess: "PasskeyRegistrationSuccess"; readonly PasskeyConfirmation: "PasskeyConfirmation"; readonly PasswordCreateOrLogin: "PasswordCreateOrLogin"; readonly PasswordResetForm: "PasswordResetForm"; readonly PasswordForgot: "PasswordForgot"; readonly PasswordBreached: "PasswordBreached"; readonly PasswordSetNew: "PasswordSetNew"; readonly PasswordDedupe: "PasswordDedupe"; readonly PasswordConfirmation: "PasswordConfirmation"; readonly EmailConfirmation: "EmailConfirmation"; readonly OTPAuthenticate: "OTPAuthenticate"; readonly OTPConfirmation: "OTPConfirmation"; readonly CryptoConnect: "CryptoConnect"; readonly CryptoSignMessage: "CryptoSignMessage"; readonly CryptoOtherScreen: "CryptoOtherScreen"; readonly CryptoSetupWallet: "CryptoSetupWallet"; readonly CryptoError: "CryptoError"; readonly CryptoConfirmation: "CryptoConfirmation"; }; type AppScreens = keyof typeof AppScreens; type ProductId = 'emailMagicLinks' | 'oauth' | 'otp' | 'crypto' | 'passwords' | 'passkeys' | 'passkeyRegistration'; declare const MagicLinkMethods: { readonly Email: "emailMagicLinks"; }; type MagicLinkMethods = Values; declare const PasswordMethods: { readonly Email: "passwords"; }; type PasswordMethods = Values; type TabMethods = OTPMethods | MagicLinkMethods | PasswordMethods; type MainScreenKey = 'oauth' | 'crypto' | 'login-form' | 'divider' | 'passkey-button'; type MainScreenChildProps = { startPasskeyAuth: StartPasskeyAuth; }; type StytchProduct = Readonly<{ id: ProductId; screens: Partial>; tabs?: Partial>; mainScreen?: Partial>>; icons?: Partial>; }>; type PresentationConfig = { theme?: Partial | readonly [light: Partial, dark: Partial]; options?: Partial; icons?: Partial>; }; /** * The products array allows you to specify the authentication methods that you would like to * expose to your users. The order of the products that you include here will also be the order * in which they appear in the login form, */ type StytchLoginConfig = CommonLoginConfig & { products: StytchProduct[]; }; /** * The products array allows you to specify the authentication methods that you would like to * expose to your users. The order of the products that you include here will also be the order * in which they appear in the login form, */ type StytchB2BUIConfig = CommonB2BLoginConfig & { /** * The products array allows you to specify the authentication methods that you would like to * expose to your users. The order of the products that you include here will also be the order * in which they appear in the login form, */ products: StytchB2BProduct[]; }; type SDKConfig = { client: StytchClient; config: StytchLoginConfig; presentation?: PresentationConfig; callbacks?: Callbacks; } & StringsOptions; type B2BSDKConfig = { client: StytchB2BClient; config: StytchB2BUIConfig; presentation?: PresentationConfig; callbacks?: Callbacks; } & StringsOptions; type ResetPasswordSDKConfig = SDKConfig & { passwordResetToken?: string; }; type IDPConsentManifestGenerator = (input: { scopes: string[]; clientName: string; }) => IDPConsentScreenManifest; type AuthTokenParams = { trustedAuthToken: string; tokenProfileID: string; }; type IDPSDKConfig = Pick, 'client' | 'presentation' | 'callbacks' | 'strings'> & { /** * Optional {@link IDPConsentManifestGenerator} to customize the consent screen. */ getIDPConsentManifest?: IDPConsentManifestGenerator; /** * Optional {@link AuthTokenParams} to provide a trusted auth token to provide for attestation prior to running OAuth flow. */ authTokenParams?: AuthTokenParams; }; type B2BIDPConsentManifestGenerator = (input: { scopes: string[]; clientName: string; }) => IDPConsentScreenManifest; type B2BIDPSDKConfig = Pick, 'client' | 'presentation' | 'callbacks' | 'strings'> & { /** * Optional {@link B2BIDPConsentManifestGenerator} to customize the consent screen. */ getIDPConsentManifest?: B2BIDPConsentManifestGenerator; /** * Optional {@link AuthTokenParams} to provide a trusted auth token to provide for attestation prior to running OAuth flow. */ trustedAuthTokenParams?: AuthTokenParams; }; type ValidPropKeys = Exclude; /** * See https://stytch.com/docs/sdks/ui-callbacks for B2C and https://stytch.com/docs/b2b/sdks/ui-callbacks for B2B * event types and data */ declare class StytchDOMEvent extends Event { readonly stytchEventType: T['type']; readonly stytchEventData: T['data']; constructor(event: T); } /** * DOM event wrapper around {@link StytchSDKUIError} */ declare class StytchError extends Event { readonly error: StytchSDKUIError; constructor(error: StytchSDKUIError); } interface StytchWebComponentMethods { render(props: Props): void; flushRender(): void; } type StytchWebComponent> = HTMLElement & Props & StytchWebComponentMethods; type StytchWebComponentConstructor> = new (init?: { shadow?: boolean; }) => StytchWebComponent; declare const iconsWhite: { amazon: (props: react.SVGProps) => JSX.Element; apple: (props: react.SVGProps) => JSX.Element; bitbucket: (props: react.SVGProps) => JSX.Element; coinbase: (props: react.SVGProps) => JSX.Element; discord: (props: react.SVGProps) => JSX.Element; facebook: (props: react.SVGProps) => JSX.Element; figma: (props: react.SVGProps) => JSX.Element; github: (props: react.SVGProps) => JSX.Element; gitlab: (props: react.SVGProps) => JSX.Element; google: (props: react.SVGProps) => JSX.Element; linkedin: (props: react.SVGProps) => JSX.Element; microsoft: (props: react.SVGProps) => JSX.Element; salesforce: (props: react.SVGProps) => JSX.Element; slack: (props: react.SVGProps) => JSX.Element; snapchat: (props: react.SVGProps) => JSX.Element; tiktok: (props: react.SVGProps) => JSX.Element; twitch: (props: react.SVGProps) => JSX.Element; xTwitter: (props: react.SVGProps) => JSX.Element; yahoo: (props: react.SVGProps) => JSX.Element; phantom: (props: react.SVGProps) => JSX.Element; metamask: (props: react.SVGProps) => JSX.Element; binance: (props: react.SVGProps) => JSX.Element; gmail: (props: react.SVGProps) => JSX.Element; outlook: (props: react.SVGProps) => JSX.Element; }; declare const iconsBlack: { amazon: (props: react.SVGProps) => JSX.Element; apple: (props: react.SVGProps) => JSX.Element; bitbucket: (props: react.SVGProps) => JSX.Element; coinbase: (props: react.SVGProps) => JSX.Element; discord: (props: react.SVGProps) => JSX.Element; facebook: (props: react.SVGProps) => JSX.Element; figma: (props: react.SVGProps) => JSX.Element; github: (props: react.SVGProps) => JSX.Element; gitlab: (props: react.SVGProps) => JSX.Element; google: (props: react.SVGProps) => JSX.Element; linkedin: (props: react.SVGProps) => JSX.Element; microsoft: (props: react.SVGProps) => JSX.Element; salesforce: (props: react.SVGProps) => JSX.Element; slack: (props: react.SVGProps) => JSX.Element; snapchat: (props: react.SVGProps) => JSX.Element; tiktok: (props: react.SVGProps) => JSX.Element; twitch: (props: react.SVGProps) => JSX.Element; xTwitter: (props: react.SVGProps) => JSX.Element; yahoo: (props: react.SVGProps) => JSX.Element; phantom: (props: react.SVGProps) => JSX.Element; metamask: (props: react.SVGProps) => JSX.Element; binance: (props: react.SVGProps) => JSX.Element; gmail: (props: react.SVGProps) => JSX.Element; outlook: (props: react.SVGProps) => JSX.Element; }; declare const shadcnTheme: Theme; declare const defaultTheme: Theme; declare const defaultDarkTheme: Theme; export { defaultDarkTheme as f, defaultTheme as g, iconsWhite as h, iconsBlack as i, StytchDOMEvent as n, StytchError as o, shadcnTheme as s }; export type { AuthTokenParams as A, B2BIDPSDKConfig as B, IDPSDKConfig as I, PresentationConfig as P, ResetPasswordSDKConfig as R, StytchB2BProduct as S, StytchWebComponentConstructor as a, B2BSDKConfig as b, B2BIDPConsentManifestGenerator as c, StytchWebComponent as d, StytchB2BUIConfig as e, StytchProduct as j, SDKConfig as k, IDPConsentManifestGenerator as l, StytchLoginConfig as m };