import { type UNIComponent } from '@redneckz/uni-jsx'; import { type JSONSchema7Definition } from 'json-schema'; import { type SlotName } from '../model/BlockDecorator'; import { type BlockDef, type Slot } from '../model/ContentPageDef'; import { type VNode } from '../model/VNode'; import { type UniBlockProps } from './UniBlockProps'; export interface UniBlockMeta { displayName?: string; childrenTypes?: string[] | { include?: string[]; exclude?: string[]; }; childSchema?: (content: BlockDef['content']) => Record; allowAddChild?: (slot?: Slot) => boolean; allowRemoveChild?: (slot?: Slot) => boolean; slots?: (props: Props) => SlotName[]; } export declare type UniBlockComponent = UniBlockMeta & UNIComponent; export declare function UniBlock(InputComponent: UniBlockComponent, meta?: UniBlockMeta): UniBlockComponent;