@mui/internal-docs-infra
Version:
MUI Infra - internal documentation creation tools.
38 lines • 1.5 kB
text/typescript
import * as React from 'react';
import type { Externals } from "../CodeHighlighter/types.mjs";
type DefaultController = React.ComponentType<{
children: React.ReactNode;
}>;
type Simplify<T> = { [K in keyof T]: T[K] } & {};
type ControllerProps<C extends DefaultController> = Simplify<Omit<React.ComponentProps<C>, 'children'>>;
export type CreateDemoClientMeta<C extends DefaultController> = {
name?: string;
slug?: string;
displayName?: string;
variantType?: string;
skipPrecompute?: boolean;
precompute?: {
externals?: Externals;
[key: string]: any;
};
controllerProps?: ControllerProps<C>;
[key: string]: any;
};
type AbstractCreateDemoClientOptions<C extends DefaultController> = {
DemoController: C;
[key: string]: any;
};
/**
* Abstract factory function for creating demo client providers.
* This creates a provider component that supplies externals to child components.
*
* @param options Configuration options for the demo client factory
* @returns A function that creates demo client providers
*/
export declare function abstractCreateDemoClient<C extends DefaultController>(options: AbstractCreateDemoClientOptions<C>, url: string, meta?: CreateDemoClientMeta<C>): React.ComponentType<{
children: React.ReactNode;
}>;
export declare function createDemoClientFactory<C extends DefaultController>(options: AbstractCreateDemoClientOptions<C>): (url: string, meta?: CreateDemoClientMeta<C>) => React.ComponentType<{
children: React.ReactNode;
}>;
export {};