import { SomeSchema } from '@ui-schema/ui-schema/CommonTypings'; import { WidgetPayloadFieldSchema, WidgetPayloadFieldLocation, WidgetPayload } from '@ui-schema/ui-schema/Widget'; import type { ComponentType, ReactNode } from 'react'; import { UIMetaContext } from '@ui-schema/react/UIMeta'; import { onErrorHandler } from '@ui-schema/ui-schema/ValidatorOutput'; import { WithOnChange, WithValuePlain } from '@ui-schema/react/UIStore'; import { WidgetType, WidgetProps } from '@ui-schema/react/Widget'; type WidgetEngineRootProps = { isRoot: true; } & Pick; type WidgetEngineNestedProps = { isRoot?: false; } & WidgetPayloadFieldLocation & (WidgetPayloadFieldSchema & { parentSchema: WidgetPayloadFieldSchema['parentSchema']; }); type WidgetEngineRootOrNestedProps = WidgetEngineRootProps | WidgetEngineNestedProps; export type WidgetEngineWrapperProps = { children: ReactNode; schema: SomeSchema; } & WidgetPayloadFieldLocation; export type WidgetEngineProps = Omit & WidgetEngineRootOrNestedProps & { /** * @todo why is this defined here? this is also mixing up engine and plugin props, * but something which doesn't reach binding; and atm. it should not get any child error, just errors in the next layer * @deprecated use `store.extractValidity` to get reported validations */ onErrors?: onErrorHandler; StackWrapper?: ComponentType; wrapperProps?: PWrapper; } & Pick; export type WidgetEngineOverrideProps | undefined = undefined> = (TWidgetOverride extends WidgetType ? InferredPWidget : object) & NoInfer & { WidgetOverride?: TWidgetOverride; }; export declare const WidgetEngine: | undefined = undefined, CMeta extends UIMetaContext = UIMetaContext, PWrapper extends object = object>(props: WidgetEngineProps> & Partial> & Omit, keyof WidgetEngineProps | keyof NoInfer | keyof WithValuePlain | keyof WithOnChange>) => ReactNode; export {};