import { EditorMetadata } from './widget-editor-metadata'; export type WidgetViewsRegistration = { [key: string]: Function | { Title: string; ViewFunction: Function; }; }; /** * Represents a minimum subset of the widget's metadata that is safe for transfer from the server to the client. */ export interface WidgetMetadataBase { /** * The widget's designer metadata - a JSON object that contains the widget's properties with all their metadata. * It is used to generate the widget's designer (configuration UI). * It will be automatically generated by the framework based on the provided entity and should not be modified. * It can be used instead of providing the entity class function. */ designerMetadata?: any; /** * Specifies the widget's properties and behavior in the editor - category, toolbox, section, icons, labels, empty text, etc. */ editorMetadata?: EditorMetadata; /** * Specifies whether the widget should be rendered on the server side or not. */ ssr?: boolean; /** * Optional default values for any of the widget's properties. * This will override the default values defined in the entity/designer metadata. */ defaultValues?: any; } /** * Represents the widget's metadata that should be registered in the widget registry. * This metadata consists at minimum of the widget's entity, editor metadata, SSR flag, and the widget's React component function. * It allows the widget to be available in the Page editor and to be rendered in the Sitefinity Next.js Renderer. */ export interface WidgetMetadata extends WidgetMetadataBase { /** * The widget's corresponding React component function. */ componentType: any; /** * The widget's entity class function. */ entity?: any; /** * @deprecated: Use 'views' property instead. */ templates?: WidgetViewsRegistration; /** * The widget's views registration - an object providing implementations for the optional different ways to render the component. * The widget should implement a {@link RenderView} component in its output and a SfViewName property in its entity class to be able to use views. * The views are provided as a dictionary of view names and an object for their corresponding React components and friendly name. */ views?: WidgetViewsRegistration; } export declare function getMinimumMetadata(metadata: WidgetMetadata, isEdit: boolean): WidgetMetadataBase;