import { Theme, Ui } from '@clerk/ui/internal';
import * as _clerk_shared_types from '@clerk/shared/types';
import { Without, APIKeysProps, CreateOrganizationProps, OrganizationListProps, OrganizationProfileProps, OrganizationSwitcherProps, SignInProps, SignUpProps, TaskChooseOrganizationProps, TaskResetPasswordProps, TaskSetupMFAProps, UserAvatarProps, UserButtonProps, UserProfileProps, WaitlistProps, SignInButtonProps, SignOutOptions, SignUpButtonProps, SetActiveNavigate, SignInResource, CreateEmailLinkFlowReturn, SignInStartEmailLinkFlowParams, SignUpResource, StartEmailLinkFlowParams, EmailAddressResource, SignInSignalValue, SignUpSignalValue, WaitlistSignalValue } from '@clerk/shared/types';
export { BrowserClerk, BrowserClerkConstructor, ClerkProp, HeadlessBrowserClerk, HeadlessBrowserClerkConstructor, IsomorphicClerkOptions } from '@clerk/shared/types';
import React, { ReactNode, PropsWithChildren } from 'react';
import { WithClerkProp, OrganizationProfilePageProps, OrganizationProfileLinkProps, UserProfilePageProps, UserProfileLinkProps, UserButtonActionProps, UserButtonLinkProps, SignInWithMetamaskButtonProps, ClerkProviderProps } from './types.mjs';
export { A as AuthenticateWithRedirectCallback, C as ClerkDegraded, a as ClerkFailed, b as ClerkLoaded, c as ClerkLoading, R as RedirectToCreateOrganization, d as RedirectToOrganizationProfile, e as RedirectToSignIn, f as RedirectToSignUp, g as RedirectToTasks, h as RedirectToUserProfile, S as Show, i as ShowProps, j as useAuth } from './useAuth-BYiDKD-3.mjs';
export { UNSAFE_PortalProvider, __experimental_CheckoutProvider, __experimental_PaymentElement, __experimental_PaymentElementProvider, __experimental_useCheckout, __experimental_usePaymentElement, useClerk, useOrganization, useOrganizationCreationDefaults, useOrganizationList, useReverification, useSession, useSessionList, useUser } from '@clerk/shared/react';
export { getToken } from '@clerk/shared/getToken';
import '@clerk/shared/ui';
/**
* Augments the global ClerkAppearanceRegistry with the Theme type from @clerk/ui.
* This provides full type safety for appearance props in @clerk/react without creating circular dependencies.
*/
declare global {
interface ClerkAppearanceRegistry {
theme: Theme;
}
}
type FallbackProp = {
/**
* An optional element to render while the component is mounting.
*/
fallback?: ReactNode;
};
type UserProfileExportType = typeof _UserProfile & {
Page: typeof UserProfilePage;
Link: typeof UserProfileLink;
};
type UserButtonExportType = typeof _UserButton & {
UserProfilePage: typeof UserProfilePage;
UserProfileLink: typeof UserProfileLink;
MenuItems: typeof MenuItems;
Action: typeof MenuAction;
Link: typeof MenuLink;
/**
* The `` component can be used in conjunction with `asProvider` in order to control rendering
* of the `` without affecting its configuration or any custom pages that could be mounted
* @experimental This API is experimental and may change at any moment.
*/
__experimental_Outlet: typeof UserButtonOutlet;
};
type UserButtonPropsWithoutCustomPages = Without & {
userProfileProps?: Pick;
/**
* Adding `asProvider` will defer rendering until the `` component is mounted.
*
* @experimental This API is experimental and may change at any moment.
* @default undefined
*/
__experimental_asProvider?: boolean;
};
type OrganizationProfileExportType = typeof _OrganizationProfile & {
Page: typeof OrganizationProfilePage;
Link: typeof OrganizationProfileLink;
};
type OrganizationSwitcherExportType = typeof _OrganizationSwitcher & {
OrganizationProfilePage: typeof OrganizationProfilePage;
OrganizationProfileLink: typeof OrganizationProfileLink;
/**
* The `` component can be used in conjunction with `asProvider` in order to control rendering
* of the `` without affecting its configuration or any custom pages that could be mounted
*
* @experimental This API is experimental and may change at any moment.
*/
__experimental_Outlet: typeof OrganizationSwitcherOutlet;
};
type OrganizationSwitcherPropsWithoutCustomPages = Without & {
organizationProfileProps?: Pick;
/**
* Adding `asProvider` will defer rendering until the `` component is mounted.
*
* @experimental This API is experimental and may change at any moment.
* @default undefined
*/
__experimental_asProvider?: boolean;
};
declare const SignIn: {
(props: Without, "clerk">): React.JSX.Element | null;
displayName: string;
};
declare const SignUp: {
(props: Without, "clerk">): React.JSX.Element | null;
displayName: string;
};
declare function UserProfilePage({ children }: PropsWithChildren): React.JSX.Element;
declare function UserProfileLink({ children }: PropsWithChildren): React.JSX.Element;
declare const _UserProfile: {
(props: Without> & FallbackProp>, "clerk">): React.JSX.Element | null;
displayName: string;
};
declare const UserProfile: UserProfileExportType;
declare const _UserButton: {
(props: Without & FallbackProp>, "clerk">): React.JSX.Element | null;
displayName: string;
};
declare function MenuItems({ children }: PropsWithChildren): React.JSX.Element;
declare function MenuAction({ children }: PropsWithChildren): React.JSX.Element;
declare function MenuLink({ children }: PropsWithChildren): React.JSX.Element;
declare function UserButtonOutlet(outletProps: Without): React.JSX.Element;
declare const UserButton: UserButtonExportType;
declare function OrganizationProfilePage({ children }: PropsWithChildren): React.JSX.Element;
declare function OrganizationProfileLink({ children }: PropsWithChildren): React.JSX.Element;
declare const _OrganizationProfile: {
(props: Without> & FallbackProp>, "clerk">): React.JSX.Element | null;
displayName: string;
};
declare const OrganizationProfile: OrganizationProfileExportType;
declare const CreateOrganization: {
(props: Without, "clerk">): React.JSX.Element | null;
displayName: string;
};
declare const _OrganizationSwitcher: {
(props: Without & FallbackProp>, "clerk">): React.JSX.Element | null;
displayName: string;
};
declare function OrganizationSwitcherOutlet(outletProps: Without): React.JSX.Element;
declare const OrganizationSwitcher: OrganizationSwitcherExportType;
declare const OrganizationList: {
(props: Without, "clerk">): React.JSX.Element | null;
displayName: string;
};
declare const GoogleOneTap: {
(props: Without, "clerk">): React.JSX.Element | null;
displayName: string;
};
declare const Waitlist: {
(props: Without, "clerk">): React.JSX.Element | null;
displayName: string;
};
declare const PricingTable: {
(props: Without;
} & {
ctaPosition?: "top" | "bottom";
collapseFeatures?: boolean;
newSubscriptionRedirectUrl?: string;
} & FallbackProp>, "clerk">): React.JSX.Element | null;
displayName: string;
};
/**
* @experimental This component is in early access and may change in future releases.
*/
declare const APIKeys: {
(props: Without, "clerk">): React.JSX.Element | null;
displayName: string;
};
declare const UserAvatar: {
(props: Without, "clerk">): React.JSX.Element | null;
displayName: string;
};
declare const TaskChooseOrganization: {
(props: Without, "clerk">): React.JSX.Element | null;
displayName: string;
};
declare const TaskResetPassword: {
(props: Without, "clerk">): React.JSX.Element | null;
displayName: string;
};
declare const TaskSetupMFA: {
(props: Without, "clerk">): React.JSX.Element | null;
displayName: string;
};
declare const SignInButton: {
(props: _clerk_shared_types.Without>, "clerk">): React.JSX.Element | null;
displayName: string;
};
declare const SignInWithMetamaskButton: {
(props: _clerk_shared_types.Without, "clerk">): React.JSX.Element | null;
displayName: string;
};
type SignOutButtonProps = {
redirectUrl?: string;
signOutOptions?: SignOutOptions;
children?: React.ReactNode;
};
declare const SignOutButton: {
(props: _clerk_shared_types.Without>, "clerk">): React.JSX.Element | null;
displayName: string;
};
declare const SignUpButton: {
(props: _clerk_shared_types.Without>, "clerk">): React.JSX.Element | null;
displayName: string;
};
interface HandleSSOCallbackProps {
/**
* Called when the SSO callback is complete and a session has been created.
*/
navigateToApp: (...params: Parameters) => void;
/**
* Called when a sign-in requires additional verification, or a sign-up is transfered to a sign-in that requires
* additional verification.
*/
navigateToSignIn: () => void;
/**
* Called when a sign-in is transfered to a sign-up that requires additional verification.
*/
navigateToSignUp: () => void;
}
/**
* Use this component when building custom UI to handle the SSO callback and navigate to the appropriate page based on
* the status of the sign-in or sign-up. By default, this component might render a captcha element to handle captchas
* when required by the Clerk API.
*
* @example
* ```tsx
* import { HandleSSOCallback } from '@clerk/react';
* import { useNavigate } from 'react-router';
*
* export default function Page() {
* const navigate = useNavigate();
*
* return (
* {
* if (session?.currentTask) {
* const destination = decorateUrl(`/onboarding/${session?.currentTask.key}`);
* if (destination.startsWith('http')) {
* window.location.href = destination;
* return;
* }
* navigate(destination);
* return;
* }
*
* const destination = decorateUrl('/dashboard');
* if (destination.startsWith('http')) {
* window.location.href = destination;
* return;
* }
* navigate(destination);
* }}
* navigateToSignIn={() => {
* navigate('/sign-in');
* }}
* navigateToSignUp={() => {
* navigate('/sign-up');
* }}
* />
* );
* }
* ```
*/
declare function HandleSSOCallback(props: HandleSSOCallbackProps): ReactNode;
declare function ClerkProviderBase(props: ClerkProviderProps): React.JSX.Element;
declare const ClerkProvider: typeof ClerkProviderBase & {
displayName: string;
};
type UseEmailLinkSignInReturn = CreateEmailLinkFlowReturn;
type UseEmailLinkSignUpReturn = CreateEmailLinkFlowReturn;
type UseEmailLinkEmailAddressReturn = CreateEmailLinkFlowReturn;
declare function useEmailLink(resource: SignInResource): UseEmailLinkSignInReturn;
declare function useEmailLink(resource: SignUpResource): UseEmailLinkSignUpReturn;
declare function useEmailLink(resource: EmailAddressResource): UseEmailLinkEmailAddressReturn;
/**
* This hook allows you to access the Signal-based `SignIn` resource.
*
* @example
* import { useSignIn } from "@clerk/react";
*
* function SignInForm() {
* const { signIn, errors, fetchStatus } = useSignInSignal();
* //
* }
*/
declare function useSignIn(): SignInSignalValue;
/**
* This hook allows you to access the Signal-based `SignUp` resource.
*
* @example
* import { useSignUp } from "@clerk/react";
*
* function SignUpForm() {
* const { signUp, errors, fetchStatus } = useSignUpSignal();
* //
* }
*/
declare function useSignUp(): SignUpSignalValue;
/**
* This hook allows you to access the Signal-based `Waitlist` resource.
*
* @example
* import { useWaitlist } from "@clerk/react";
*
* function WaitlistForm() {
* const { waitlist, errors, fetchStatus } = useWaitlist();
* //
* }
*/
declare function useWaitlist(): WaitlistSignalValue;
export { APIKeys, ClerkProvider, ClerkProviderProps, CreateOrganization, GoogleOneTap, HandleSSOCallback, OrganizationList, OrganizationProfile, OrganizationSwitcher, PricingTable, SignIn, SignInButton, SignInWithMetamaskButton, SignOutButton, SignUp, SignUpButton, TaskChooseOrganization, TaskResetPassword, TaskSetupMFA, UserAvatar, UserButton, UserProfile, Waitlist, useEmailLink, useSignIn, useSignUp, useWaitlist };