import { ReactNode } from 'react'; import { Root } from 'react-dom/client'; import { TokenProviderProps } from './TokenProvider/TokenProvider'; import { TokenProviderAllowedAppSlug } from './TokenProvider/types'; export type ClAppKey = `clApp_${TokenProviderAllowedAppSlug}`; /** * Method to mount the React application in the provider `node` with the set of options passed as `props`. */ type ClApp = Record Root | undefined; }>; declare global { interface Window extends ClApp { clAppConfig: { /** * Enable Google Tag Manager for the provided GTM ID. */ gtmId?: string; }; } } export interface ClAppProps extends Partial> { /** * Base path for internal routing. * Example: `my-app` if you want to serve the app at `https://my-domain.com/my-app/`. */ routerBase?: string; } /** * Create a new app instance by adding the `clApp` methods into the global `window` object. * The React application will them be mounted into the provided `node` element, when the `init` method is called. * @param children - The root component of the app. **/ export declare function createApp(children: (props: ClAppProps) => ReactNode, appSlug: TokenProviderAllowedAppSlug): void; export {};