export interface IPureObject extends Record { } export declare type MapValueType = T extends Map ? V : never; export interface IUnitBase { name: IDescriptionMeta; description: IWeakDescriptionMeta | null; } export interface IWeakDescriptionMeta { value: string; i18n: { [key: string]: string | null; }; } export interface IDescriptionMeta extends IWeakDescriptionMeta { displayValue: string | null; } export declare type IBasicLiteralType = string | boolean | number | object; export interface ICildAttachRefExpression { id: string; value: string; } export declare type TypeLiteralMeta = "object" | "string" | "number" | "boolean" | "enums" | "map"; export interface IMetaTypeMapItem { type?: string; allowValues?: any[]; validate?: RegExp | ((value: any) => boolean); } export interface IMetaTypeMapInfo { key?: IMetaTypeMapItem["type"] | IMetaTypeMapItem["validate"] | IMetaTypeMapItem["allowValues"] | IMetaTypeMapItem; value?: IMetaTypeMapItem["type"] | IMetaTypeMapItem["validate"] | IMetaTypeMapItem["allowValues"] | IMetaTypeMapItem; } export interface IMetaTypeEnumRule { allowValues?: any[]; validate?: (value: any) => boolean; } export declare type IMetaTypeEnumInfo = IMetaTypeEnumRule | IMetaTypeEnumRule["allowValues"] | IMetaTypeEnumRule["validate"]; export declare type MetaExpressionType = "literal" | "complexLogic" | "entityRef"; export declare type MetaEntityRefType = "reference" | "observable"; export interface IEntityRefExpressionType { ref: string; type: MetaEntityRefType; expression: string; } export interface IMetaType { meta: TypeLiteralMeta; expressionType: MetaExpressionType; entityRefType: MetaEntityRefType; enumsInfo: IMetaTypeEnumInfo | null; mapInfo: IMetaTypeMapInfo | null; constructor: any; } export interface IPropertyGroupBase extends IUnitBase { } export interface IPropertyBase extends IUnitBase { realName: string; group: string | null; type: IMetaType; required: boolean; } /** * 基本可扩展参数结构体 */ export interface ITypedSyntaxExpression = Record> { type: E; expression: P; extensions?: Partial; } export declare type RecordValue = T extends Record ? P : never; /** * 基本可扩展参数结构体的字典类型 */ export interface ITypedSyntaxExpressionMap { [name: string]: ITypedSyntaxExpression; } /** * 基本可扩展参数结构体(包含group)的字典类型 */ export interface ITypedSyntaxExpressionGroupMap { [groupOrName: string]: ITypedSyntaxExpressionMap | ITypedSyntaxExpression; } /** 组件、指令输入参数字典类型:字面量 */ export declare type IComponentInputMap = ITypedSyntaxExpressionGroupMap<"literal", IBasicLiteralType>; /** 指令的输入参数字典类型:实体引用 */ export declare type IDirectiveInputEntityRefMap = ITypedSyntaxExpressionGroupMap<"entityRef", IEntityRefExpressionType>; /** 指令的输入参数字典类型:字面量+指令引用 */ export declare type IDirectiveInputMap = IComponentInputMap | IDirectiveInputEntityRefMap; /** 组件的附加参数字典类型:child附加列表 */ export declare type IComponentAttachMap = ITypedSyntaxExpressionMap<"childRefs", Array>; export interface ILiteralExpression extends ITypedSyntaxExpression<"literal", any, { type: TypeLiteralMeta; }> { } export interface IStateExpression extends ITypedSyntaxExpression<"state", string, { reverse: boolean; }> { } export interface IPropsExpression extends ITypedSyntaxExpression<"props", string, { reverse: boolean; }> { } export interface IEntityRefExpression extends ITypedSyntaxExpression<"entityRef", IEntityRefExpressionType, {}> { } export interface IComplexLogicDefine { vars?: string[]; expressions: string[]; } export interface IComplexLogicExpression extends ITypedSyntaxExpression<"complexLogic", IComplexLogicDefine, {}> { } export declare type IComponentProp = ILiteralExpression | IStateExpression | IPropsExpression | IEntityRefExpression | IComplexLogicExpression; /** comp-child的prop参数字典类型:字面量+状态 */ export declare type IComponentPropMap = Record;