import { FieldPropsSchemaKey, FieldComputedConfig } from '../../domain/field/field-props-schema-type';
import { FIELD_TYPE } from '../../domain/field/field-type';
import { ExternalComponentType, FieldNodeRenderers } from '../../domain/widget/component-type';
/** 单个字段类型的声明信息 用来确定当前套件“支持哪些字段类型 + 如何渲染 + 如何配置” */
export interface FieldManifest {
    /** 唯一 key */
    key: string;
    /** 字段类型 */
    type: FIELD_TYPE;
    /** 名称 */
    label: string;
    /** icon 标识 */
    icon: string;
    /** icon 版本 */
    version: 'v1' | 'v2';
    /** 是否允许拖入 Word */
    allowDrag?: boolean;
    /** 渲染的组件类型 */
    component: ExternalComponentType;
    /** 渲染组件节点类型 */
    renderers: FieldNodeRenderers;
    /** 右侧面板配置 schema key */
    propsSchema?: FieldPropsSchemaKey;
    /** 默认配置 */
    defaultProps?: Record<string, any>;
    computed?: FieldComputedConfig;
    /** 扩展能力 */
    extensions?: Record<string, any>;
}
/** 一个套件注册的字段 Manifest 集合 */
export type FieldManifestMap = Partial<Record<FIELD_TYPE, FieldManifest>>;
