import { ModuleManager } from "@clerk/shared/moduleManager";
import { Clerk, ClerkOptions, EnvironmentResource } from "@clerk/shared/types";
import { ClerkUIInstance, ComponentControls } from "@clerk/shared/ui";
//#region src/ClerkUI.d.ts
/**
* Core rendering engine for Clerk's prebuilt UI components.
*
* `ClerkUI` bootstraps the component renderer that powers Clerk's drop-in
* authentication and user-management components (``, ``,
* etc.). It is created internally by Clerk SDKs when the `ui` prop is passed to
* `ClerkProvider` and should not be instantiated directly by application code.
*
* This module is marked `'use client'` so that React Server Components can
* serialize `ClerkUI` as a client reference rather than attempting to serialize
* the class itself.
*
* @public
*/
declare class ClerkUI implements ClerkUIInstance {
#private;
static version: any;
version: any;
/**
* Creates a new `ClerkUI` instance and mounts the internal component renderer.
*
* Validates that the active `@clerk/clerk-js` version satisfies the minimum
* required version ({@link MIN_CLERK_JS_VERSION}). In development instances a
* mismatch throws a {@link ClerkRuntimeError}; in production it logs a warning.
*
* @param getClerk - Accessor that returns the active {@link Clerk} instance.
* @param getEnvironment - Accessor that returns the current {@link EnvironmentResource}, or `null`/`undefined` if not yet loaded.
* @param options - Global {@link ClerkOptions} forwarded to the component renderer.
* @param moduleManager - The SDK's {@link ModuleManager} used for module resolution and lazy loading.
* @throws {ClerkRuntimeError} When running in a development instance with an incompatible `@clerk/clerk-js` version.
*
* @internal
*/
constructor(getClerk: () => Clerk, getEnvironment: () => EnvironmentResource | null | undefined, options: ClerkOptions, moduleManager: ModuleManager);
/**
* Ensures the UI component renderer is mounted and ready.
*
* Returns a promise that resolves with {@link ComponentControls} once the
* renderer is fully initialised. Subsequent calls return the same promise.
*
* @param opts - Optional hints for the renderer.
* @param opts.preloadHint - An optional component name to preload assets for (e.g. `"SignIn"`).
* @returns A promise resolving to {@link ComponentControls} for mounting, unmounting, and updating components.
*
* @public
*/
ensureMounted(opts?: {
preloadHint?: string;
}): Promise;
}
//#endregion
export { ClerkUI };
//# sourceMappingURL=ClerkUI.d.ts.map