///
import type { Clerk, ClerkOptions, ClientResource, LoadedClerk, RedirectOptions, SignOutCallback, UserResource } from '@clerk/types';
export interface IsomorphicClerkOptions extends ClerkOptions {
scriptUrl?: string;
}
export interface BrowserClerkConstructor {
new (frontendApi: string): BrowserClerk;
}
export declare type WithClerkProp = T & {
clerk: LoadedClerk;
};
export declare type WithUserProp = T & {
user: UserResource;
};
export interface MountProps {
mount: (node: HTMLDivElement, props: any) => void;
unmount: (node: HTMLDivElement) => void;
props?: any;
}
export interface BrowserClerk extends Clerk {
load: (opts?: ClerkOptions) => Promise;
updateClient: (client: ClientResource) => void;
onComponentsReady: Promise;
components: any;
}
export declare type ClerkProp = BrowserClerkConstructor | BrowserClerk | undefined | null;
declare type ButtonProps = {
afterSignInUrl?: string;
afterSignUpUrl?: string;
redirectUrl?: string;
mode?: 'redirect' | 'modal';
children?: React.ReactNode;
};
export declare type SignInButtonProps = ButtonProps;
export declare type SignUpButtonProps = ButtonProps;
export declare type SignOutButtonProps = {
signOutCallback?: SignOutCallback;
children?: React.ReactNode;
};
export declare type RedirectToProps = {
/**
* @deprecated The returnBack prop has been deprecated and will be removed soon. Use `redirectUrl` instead.
*/
returnBack?: boolean;
} & RedirectOptions;
export {};
//# sourceMappingURL=types.d.ts.map