import { Clerk, Without, ClerkOptions, ClientResource, MultiDomainAndOrProxyPrimitives, InternalClerkScriptProps, ProtectParams } from '@clerk/shared/types'; import { ClerkUIConstructor } from '@clerk/shared/ui'; import { Ui, Appearance } from '@clerk/ui/internal'; type AstroClerkUpdateOptions = Pick & { appearance?: Appearance; }; type AstroClerkIntegrationParams = Without & MultiDomainAndOrProxyPrimitives & { appearance?: Appearance; /** * Controls prefetching of the `@clerk/ui` script. * - `false` - Skip prefetching the UI (for custom UIs using Control Components) * - `undefined` (default) - Prefetch UI normally */ prefetchUI?: boolean; }; type AstroClerkCreateInstanceParams = AstroClerkIntegrationParams & InternalClerkScriptProps & { publishableKey: string; }; interface HeadlessBrowserClerk extends Clerk { load: (opts?: Without) => Promise; updateClient: (client: ClientResource) => void; } interface BrowserClerk extends HeadlessBrowserClerk { onComponentsReady: Promise; components: any; } declare global { interface Window { __astro_clerk_component_props: Map>>; __astro_clerk_function_props: Map>>; Clerk: BrowserClerk; __internal_ClerkUICtor?: ClerkUIConstructor; } } type ProtectProps = ProtectParams; type ButtonProps = { asChild?: boolean; }; type InternalUIComponentId = 'sign-in' | 'sign-up' | 'create-organization' | 'organization-list' | 'organization-profile' | 'organization-switcher' | 'user-avatar' | 'user-button' | 'user-profile' | 'google-one-tap' | 'waitlist' | 'pricing-table' | 'api-keys' | 'oauth-consent'; export type { AstroClerkUpdateOptions as A, ButtonProps as B, InternalUIComponentId as I, ProtectProps as P, AstroClerkIntegrationParams as a, AstroClerkCreateInstanceParams as b };