import { FieldDataBindingMeta } from '../../domain/field/field-binding';
import { PaperWidgetDataBindingMeta } from '../../domain/paper-widget/widget-binding';
import { ExternalComponentType } from '../../domain/widget/component-type';
/** 组件基础信息 */
interface WidgetMetaBase {
    /** 节点唯一标识 */
    id: string;
    /** 组件类型 */
    type: ExternalComponentType;
    /** 节点状态 */
    state?: {
        hidden?: boolean;
        readonly?: boolean;
        disabled?: boolean;
        locked?: boolean;
    };
}
/** 组件布局 */
interface WidgetLayoutMeta {
    /** 尺寸 */
    width?: number;
    height?: number;
}
/** 组件行为 */
interface WidgetBehaviorMeta {
    /** 是否允许拖拽 */
    draggable?: boolean;
    /** 是否允许调整尺寸 */
    resizable?: boolean;
    /** 是否允许复制 */
    copyable?: boolean;
    /** 是否允许删除 */
    removable?: boolean;
    /** 是否允许作为容器 */
    droppable?: boolean;
    /** 是否允许脱离文档流 */
    outOfFlow?: boolean;
    /** 事件映射 */
    events?: Record<string, {
        action: string;
        payload?: any;
    }>;
}
/** 组件样式 */
interface WidgetStyleMeta {
    className?: string;
    style?: Record<string, string | number>;
}
/** 扩展声明 */
interface WidgetExtraMeta {
    /** 设计器扩展能力 */
    extensions?: Record<string, any>;
    /** 业务自定义数据 */
    biz?: any;
}
export interface WidgetMeta extends WidgetMetaBase {
    /** 布局信息 */
    layout?: WidgetLayoutMeta;
    /** 参数信息 */
    props: WidgetPropsMeta;
    /** 行为信息 */
    behavior?: WidgetBehaviorMeta;
    /** 样式信息 */
    style?: WidgetStyleMeta;
    /** 字段信息 */
    field?: FieldDataBindingMeta;
    /** 页面组件信息 */
    widget?: PaperWidgetDataBindingMeta;
    /** 扩展能力 */
    extra?: WidgetExtraMeta;
}
export {};
