import type { RendererEnv, RendererProps, Schema, SchemaNode } from 'jamis-core'; import type { History } from 'history'; import type { ReactNode } from 'react'; import type { SchemaCollection } from '../sdk'; import type { IRendererStore } from './RendererStore'; export type { IRendererStore } from './RendererStore'; export type { IRootStore } from './RootStore'; export type { TailwindSpacing, TailwindWidth, TailwindHeight } from './Tailwind'; export interface RootRenderProps { location?: History['location']; [propName: string]: any; } export interface RootProps { schema: SchemaNode; rootStore: IRendererStore; env: RendererEnv; pathPrefix?: string; [propName: string]: any; } export interface RootWrapperProps { env: RendererEnv; children: React.ReactNode; schema: SchemaNode; rootStore: IRendererStore; [propName: string]: any; } export interface RenderChildProps extends Partial { env: RendererEnv; } export type ReactElement = React.ReactNode[] | JSX.Element | null | false; export interface SchemaRendererProps extends Partial { schema: Schema; $path: string; env: RendererEnv; } /** * 替换`classNameParam`参数对应的元素为slots body里配置的schema */ export type RenderSlotBodyType = (classNameParam: string | string[], schemaRegion: string, restParams?: { data?: Record; props?: Record; defaultSchema?: SchemaCollection; children?: ReactNode | (() => ReactNode); }) => ReactNode;