import { type ResourceId, ResourceTypeId, isResourceIdOf, parseResourceIdOf, ResourceIdOf } from '../resource-id.js'; import type { Resource } from '../resource.js'; import type { ModelRevision } from './revision.js'; import type { RootModelConfiguration, RootModelJobConfiguration } from './configuration.js'; import type { ModelContext } from './context.js'; export { isMergeDemergeModel, mergeDemergeModel, TEXT_X_HEIGHT, TEXT_Y_OFFSET, MERGE_DEMERGE_COMPONENTS, } from './utils/merge-demerge.js'; export { fillPinMap, fillArgumentMap, fillDiagramComponent } from './utils/component.js'; export * from './revision.js'; export * from './configuration.js'; export * from './context.js'; export * from './graphic.js'; export * from './implements/index.js'; export * from './pin.js'; export * from './parameter.js'; /** 模型的资源类型 `'model'` */ export type RESOURCE_TYPE = 'model'; export const RESOURCE_TYPE = ResourceTypeId('model'); /** 模型 RID */ export type ModelId = ResourceId; export const ModelId = (ResourceIdOf).bind(undefined, RESOURCE_TYPE); export const parseModelId = (parseResourceIdOf).bind(undefined, RESOURCE_TYPE); export const isModelId = (val: unknown): val is ModelId => isResourceIdOf(RESOURCE_TYPE, val); /** 表示一个模型 */ export interface Model extends Resource { /** 模型版本 */ revision: ModelRevision; /** 模型的参数配置 */ configs: RootModelConfiguration[]; /** 模型的运行配置 */ jobs: RootModelJobConfiguration[]; /** 上下文 */ context: ModelContext; }