@easy-editor/core 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,15 @@
1
1
  import type { Designer } from '../designer';
2
- import type { ComponentMetadata } from '../types';
2
+ import type { ComponentMetadata, NpmInfo } from '../types';
3
3
  export declare enum COMPONENT_META_EVENT {
4
4
  CHANGE = "componentMeta:metadata.change"
5
5
  }
6
6
  export declare class ComponentMeta {
7
7
  readonly designer: Designer;
8
8
  readonly isComponentMeta = true;
9
+ private _npm?;
9
10
  private emitter;
11
+ get npm(): any;
12
+ set npm(_npm: any);
10
13
  private _componentName?;
11
14
  get componentName(): string;
12
15
  private _isContainer?;
@@ -23,10 +26,21 @@ export declare class ComponentMeta {
23
26
  get advanced(): import("..").Advanced;
24
27
  get snippets(): import("..").Snippet[];
25
28
  constructor(designer: Designer, metadata: ComponentMetadata);
29
+ setNpm(info: NpmInfo): void;
26
30
  private parseMetadata;
27
31
  refreshMetadata(): void;
28
32
  setMetadata(metadata: ComponentMetadata): void;
29
33
  getMetadata(): ComponentMetadata;
30
34
  onMetadataChange(fn: (args: any) => void): () => void;
35
+ /**
36
+ * 销毁 ComponentMeta,清理事件监听器
37
+ */
38
+ dispose(): void;
39
+ /**
40
+ * 判断当前节点是否为远程物料组件
41
+ * 远程物料是指通过 CDN 或 NPM 动态加载的组件,而非内置组件
42
+ * @returns boolean 是否为远程物料
43
+ */
44
+ isRemoteMaterial(): boolean;
31
45
  }
32
46
  export declare function isComponentMeta(obj: any): obj is ComponentMeta;
@@ -1,2 +1,3 @@
1
1
  export * from './component-meta';
2
2
  export * from './materials';
3
+ export * from './registry';
@@ -1,24 +1,74 @@
1
1
  import type { Designer } from '../designer';
2
2
  import type { Component, ComponentMetadata, Editor } from '../types';
3
- import { ComponentMeta } from './component-meta';
3
+ import { type ComponentMeta } from './component-meta';
4
+ import { MaterialRegistry, type RegisterOptions } from './registry';
4
5
  export declare class Materials {
5
6
  readonly editor: Editor;
6
- private accessor _componentMetasMap;
7
- private _lostComponentMetasMap;
7
+ /** 物料注册表(新架构核心) */
8
+ private _registry;
8
9
  get designer(): Designer;
10
+ /** 获取物料注册表 */
11
+ get registry(): MaterialRegistry;
12
+ /** 获取版本号(用于缓存失效) */
13
+ get version(): number;
9
14
  constructor(editor: Editor);
15
+ /**
16
+ * 批量构建组件元数据
17
+ */
10
18
  buildComponentMetasMap: (metas: ComponentMetadata[]) => void;
11
- createComponentMeta(data: ComponentMetadata): ComponentMeta | null;
19
+ /**
20
+ * 创建或更新组件元数据
21
+ */
22
+ createComponentMeta(data: ComponentMetadata, options?: RegisterOptions): ComponentMeta | null;
23
+ /**
24
+ * 移除组件元数据
25
+ * @deprecated 推荐使用 registry.unload() 并检查使用情况
26
+ */
27
+ removeComponentMeta(componentName: string): boolean;
28
+ /**
29
+ * 获取组件元数据(带懒加载)
30
+ */
12
31
  getComponentMeta(componentName: string, generateMetadata?: () => ComponentMetadata | null): ComponentMeta;
13
- getComponentSnippets(): import("..").Snippet[];
32
+ /**
33
+ * 获取所有代码片段
34
+ */
35
+ getComponentSnippets(): unknown[];
36
+ /**
37
+ * 获取组件元数据映射(Map)
38
+ */
14
39
  getComponentMetasMap(): Map<string, ComponentMeta>;
40
+ /**
41
+ * 组件元数据映射(Record)
42
+ */
15
43
  get componentMetasMap(): Record<string, ComponentMetadata>;
44
+ /**
45
+ * 组件实现映射
46
+ */
16
47
  get componentsMap(): {
17
48
  [key: string]: Component;
18
49
  };
19
50
  /**
20
- * 刷新 componentMetasMap,可间接触发模拟器里的 buildComponents
51
+ * 刷新映射,触发依赖更新
21
52
  */
22
53
  refreshComponentMetasMap(): void;
23
- isComponentMeta(obj: any): obj is ComponentMeta;
54
+ /**
55
+ * 增加组件使用计数
56
+ */
57
+ incrementUsage(componentName: string): void;
58
+ /**
59
+ * 减少组件使用计数
60
+ */
61
+ decrementUsage(componentName: string): void;
62
+ /**
63
+ * 检查组件是否可以安全卸载
64
+ */
65
+ canUnload(componentName: string): boolean;
66
+ /**
67
+ * 检查是否为 ComponentMeta
68
+ */
69
+ isComponentMeta(obj: unknown): obj is ComponentMeta;
70
+ /**
71
+ * 销毁 Materials 实例
72
+ */
73
+ dispose(): void;
24
74
  }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Material Registry Module
3
+ * 物料注册表模块导出
4
+ */
5
+ export { MaterialRegistry } from './material-registry';
6
+ export { type IMaterialRegistry, type MaterialEntry, MaterialSource, MaterialStatus, type RegisterOptions, type RegistryEvent, RegistryEventType, type RegistryEventListener, type UnloadOptions, } from './types';
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Material Registry Implementation
3
+ * 物料注册表实现
4
+ */
5
+ import type { Designer } from '../../designer';
6
+ import type { ComponentMetadata } from '../../types';
7
+ import { ComponentMeta } from '../component-meta';
8
+ import { type IMaterialRegistry, type MaterialEntry, MaterialSource, type RegisterOptions, type RegistryEventListener, type UnloadOptions } from './types';
9
+ /**
10
+ * 物料注册表
11
+ * 统一管理所有物料的注册、卸载、状态追踪
12
+ */
13
+ export declare class MaterialRegistry implements IMaterialRegistry {
14
+ private readonly designer;
15
+ /** 物料条目映射 */
16
+ private accessor entries;
17
+ /** 待激活物料(懒加载时创建的占位) */
18
+ private accessor pendingEntries;
19
+ /** 版本号(用于触发依赖更新) */
20
+ private accessor _version;
21
+ /** 事件监听器 */
22
+ private listeners;
23
+ /** 是否已销毁 */
24
+ private disposed;
25
+ constructor(designer: Designer);
26
+ /** 获取版本号 */
27
+ get version(): number;
28
+ /**
29
+ * 验证组件名称
30
+ */
31
+ private validateComponentName;
32
+ /**
33
+ * 发送事件
34
+ */
35
+ private emit;
36
+ /**
37
+ * 创建物料条目
38
+ */
39
+ private createEntry;
40
+ register(metadata: ComponentMetadata, options?: RegisterOptions): ComponentMeta;
41
+ unload(componentName: string, options?: UnloadOptions): Promise<boolean>;
42
+ get(componentName: string): MaterialEntry | undefined;
43
+ getOrCreate(componentName: string, generateMetadata?: () => ComponentMetadata | null): ComponentMeta;
44
+ has(componentName: string): boolean;
45
+ incrementUsage(componentName: string): void;
46
+ decrementUsage(componentName: string): void;
47
+ canUnload(componentName: string): boolean;
48
+ subscribe(listener: RegistryEventListener): () => void;
49
+ getAll(): Map<string, MaterialEntry>;
50
+ getBySource(source: MaterialSource): MaterialEntry[];
51
+ refresh(): void;
52
+ /** 获取所有组件元数据映射 */
53
+ get componentMetasMap(): Record<string, ComponentMetadata>;
54
+ /** 获取所有组件映射 */
55
+ get componentsMap(): Record<string, unknown>;
56
+ /** 获取所有代码片段 */
57
+ getComponentSnippets(): unknown[];
58
+ dispose(): void;
59
+ }
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Material Registry Types
3
+ * 物料注册表类型定义
4
+ */
5
+ import type { Component, ComponentMetadata } from '../../types';
6
+ import type { ComponentMeta } from '../component-meta';
7
+ /** 物料状态 */
8
+ export declare enum MaterialStatus {
9
+ /** 加载中 */
10
+ LOADING = "loading",
11
+ /** 已注册(元数据已加载) */
12
+ REGISTERED = "registered",
13
+ /** 活跃(组件已加载且可用) */
14
+ ACTIVE = "active",
15
+ /** 卸载中 */
16
+ UNLOADING = "unloading",
17
+ /** 错误状态 */
18
+ ERROR = "error"
19
+ }
20
+ /** 物料来源 */
21
+ export declare enum MaterialSource {
22
+ /** 内置物料(打包时包含) */
23
+ BUILTIN = "builtin",
24
+ /** 远程物料(CDN/NPM) */
25
+ REMOTE = "remote",
26
+ /** 本地调试物料 */
27
+ DEBUG = "debug"
28
+ }
29
+ /** 物料条目 */
30
+ export interface MaterialEntry {
31
+ /** 组件名称(唯一标识) */
32
+ componentName: string;
33
+ /** 物料状态 */
34
+ status: MaterialStatus;
35
+ /** 物料来源 */
36
+ source: MaterialSource;
37
+ /** 组件元数据包装 */
38
+ meta: ComponentMeta;
39
+ /** 组件实现(可选,懒加载时可能未加载) */
40
+ component?: Component;
41
+ /** 版本号(远程物料) */
42
+ version?: string;
43
+ /** 加载时间戳 */
44
+ loadedAt: number;
45
+ /** 最后访问时间戳 */
46
+ lastAccessedAt: number;
47
+ /** 使用计数(画布上的实例数) */
48
+ usageCount: number;
49
+ /** 扩展数据 */
50
+ extensions?: Map<string, unknown>;
51
+ }
52
+ /** 注册选项 */
53
+ export interface RegisterOptions {
54
+ /** 物料来源 */
55
+ source?: MaterialSource;
56
+ /** 版本号 */
57
+ version?: string;
58
+ /** 组件实现 */
59
+ component?: Component;
60
+ /** 是否覆盖已存在的物料 */
61
+ override?: boolean;
62
+ }
63
+ /** 卸载选项 */
64
+ export interface UnloadOptions {
65
+ /** 强制卸载(即使有使用中的实例) */
66
+ force?: boolean;
67
+ }
68
+ /** 注册表事件类型 */
69
+ export declare enum RegistryEventType {
70
+ /** 物料注册 */
71
+ REGISTERED = "registered",
72
+ /** 物料更新 */
73
+ UPDATED = "updated",
74
+ /** 物料卸载 */
75
+ UNLOADED = "unloaded",
76
+ /** 状态变更 */
77
+ STATUS_CHANGED = "status_changed",
78
+ /** 使用计数变更 */
79
+ USAGE_CHANGED = "usage_changed",
80
+ /** 错误 */
81
+ ERROR = "error"
82
+ }
83
+ /** 注册表事件 */
84
+ export interface RegistryEvent {
85
+ type: RegistryEventType;
86
+ componentName: string;
87
+ entry?: MaterialEntry;
88
+ previousStatus?: MaterialStatus;
89
+ error?: Error;
90
+ timestamp: number;
91
+ }
92
+ /** 注册表事件监听器 */
93
+ export type RegistryEventListener = (event: RegistryEvent) => void;
94
+ /** 物料注册表接口 */
95
+ export interface IMaterialRegistry {
96
+ /**
97
+ * 注册物料
98
+ * @param metadata 组件元数据
99
+ * @param options 注册选项
100
+ * @returns ComponentMeta 实例
101
+ */
102
+ register(metadata: ComponentMetadata, options?: RegisterOptions): ComponentMeta;
103
+ /**
104
+ * 卸载物料
105
+ * @param componentName 组件名称
106
+ * @param options 卸载选项
107
+ * @returns 是否成功卸载
108
+ */
109
+ unload(componentName: string, options?: UnloadOptions): Promise<boolean>;
110
+ /**
111
+ * 获取物料条目
112
+ * @param componentName 组件名称
113
+ */
114
+ get(componentName: string): MaterialEntry | undefined;
115
+ /**
116
+ * 获取或创建物料(懒加载)
117
+ * @param componentName 组件名称
118
+ * @param generateMetadata 元数据生成函数
119
+ */
120
+ getOrCreate(componentName: string, generateMetadata?: () => ComponentMetadata | null): ComponentMeta;
121
+ /**
122
+ * 检查物料是否存在
123
+ * @param componentName 组件名称
124
+ */
125
+ has(componentName: string): boolean;
126
+ /**
127
+ * 增加使用计数
128
+ * @param componentName 组件名称
129
+ */
130
+ incrementUsage(componentName: string): void;
131
+ /**
132
+ * 减少使用计数
133
+ * @param componentName 组件名称
134
+ */
135
+ decrementUsage(componentName: string): void;
136
+ /**
137
+ * 检查物料是否可以安全卸载
138
+ * @param componentName 组件名称
139
+ */
140
+ canUnload(componentName: string): boolean;
141
+ /**
142
+ * 订阅注册表事件
143
+ * @param listener 事件监听器
144
+ * @returns 取消订阅函数
145
+ */
146
+ subscribe(listener: RegistryEventListener): () => void;
147
+ /**
148
+ * 获取所有物料条目
149
+ */
150
+ getAll(): Map<string, MaterialEntry>;
151
+ /**
152
+ * 获取按来源分组的物料
153
+ * @param source 物料来源
154
+ */
155
+ getBySource(source: MaterialSource): MaterialEntry[];
156
+ /**
157
+ * 获取版本号(用于缓存失效)
158
+ */
159
+ readonly version: number;
160
+ /**
161
+ * 刷新版本号(触发依赖更新)
162
+ */
163
+ refresh(): void;
164
+ /**
165
+ * 销毁注册表
166
+ */
167
+ dispose(): void;
168
+ }
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Remote Load Errors
3
+ * 远程资源加载统一错误定义
4
+ */
5
+ /** 远程资源加载错误类型 */
6
+ export declare enum RemoteLoadErrorType {
7
+ /** 网络错误 */
8
+ NETWORK_ERROR = "NETWORK_ERROR",
9
+ /** 包不存在 */
10
+ PACKAGE_NOT_FOUND = "PACKAGE_NOT_FOUND",
11
+ /** 版本不存在 */
12
+ VERSION_NOT_FOUND = "VERSION_NOT_FOUND",
13
+ /** 脚本加载失败 */
14
+ SCRIPT_LOAD_FAILED = "SCRIPT_LOAD_FAILED",
15
+ /** CSS 加载失败 */
16
+ CSS_LOAD_FAILED = "CSS_LOAD_FAILED",
17
+ /** 全局变量未找到 */
18
+ GLOBAL_NOT_FOUND = "GLOBAL_NOT_FOUND",
19
+ /** 元数据格式无效 */
20
+ METADATA_INVALID = "METADATA_INVALID",
21
+ /** 所有 CDN 都失败 */
22
+ CDN_ALL_FAILED = "CDN_ALL_FAILED",
23
+ /** 加载超时 */
24
+ TIMEOUT = "TIMEOUT"
25
+ }
26
+ /** 资源类型 */
27
+ export type ResourceType = 'material' | 'setter';
28
+ /**
29
+ * 远程资源加载错误
30
+ */
31
+ export declare class RemoteLoadError extends Error {
32
+ /** 错误类型 */
33
+ readonly type: RemoteLoadErrorType;
34
+ /** 资源名称(包名或全局变量名) */
35
+ readonly resourceName: string;
36
+ /** 资源类型 */
37
+ readonly resourceType: ResourceType;
38
+ /** 原始错误 */
39
+ readonly originalError?: unknown | undefined;
40
+ readonly name = "RemoteLoadError";
41
+ constructor(
42
+ /** 错误类型 */
43
+ type: RemoteLoadErrorType,
44
+ /** 资源名称(包名或全局变量名) */
45
+ resourceName: string,
46
+ /** 资源类型 */
47
+ resourceType: ResourceType,
48
+ /** 错误消息 */
49
+ message: string,
50
+ /** 原始错误 */
51
+ originalError?: unknown | undefined);
52
+ /**
53
+ * 获取用户友好的错误消息
54
+ */
55
+ toUserMessage(): string;
56
+ /**
57
+ * 创建错误实例的便捷方法
58
+ */
59
+ static create(type: RemoteLoadErrorType, resourceName: string, resourceType: ResourceType, message?: string, originalError?: unknown): RemoteLoadError;
60
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Remote Core Module
3
+ * 远程资源加载核心模块导出(纯类型和错误定义,无浏览器依赖)
4
+ */
5
+ export { RemoteLoadError, RemoteLoadErrorType, type ResourceType } from './errors';
6
+ export type { LoadOptions, LoadProgress, MaterialInfo, SetterInfo } from './types';
7
+ export { DEFAULT_TIMEOUT, LoadingStatus } from './types';
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Remote Load Types
3
+ * 远程资源加载公共类型定义(纯 TypeScript,无浏览器依赖)
4
+ */
5
+ import type { NpmInfo } from '../../types/npm-info';
6
+ import type { ResourceType } from './errors';
7
+ /** 加载状态枚举 */
8
+ export declare enum LoadingStatus {
9
+ /** 空闲 */
10
+ IDLE = "idle",
11
+ /** 加载中 */
12
+ LOADING = "loading",
13
+ /** 已加载 */
14
+ LOADED = "loaded",
15
+ /** 错误 */
16
+ ERROR = "error"
17
+ }
18
+ /**
19
+ * 物料信息
20
+ * 继承自 NpmInfo,添加远程加载所需的额外字段
21
+ */
22
+ export interface MaterialInfo extends NpmInfo {
23
+ /** 是否启用 */
24
+ enabled?: boolean;
25
+ }
26
+ /**
27
+ * 设置器信息
28
+ */
29
+ export interface SetterInfo {
30
+ /** NPM 包名 */
31
+ package: string;
32
+ /** 版本号 */
33
+ version?: string;
34
+ /** UMD 全局变量名 */
35
+ globalName: string;
36
+ /** 是否启用 */
37
+ enabled?: boolean;
38
+ }
39
+ /** 加载选项(不包含浏览器特定内容) */
40
+ export interface LoadOptions {
41
+ /** 超时时间(毫秒) */
42
+ timeout?: number;
43
+ /** 是否使用缓存 */
44
+ useCache?: boolean;
45
+ /** 是否加载 CSS */
46
+ loadCSS?: boolean;
47
+ }
48
+ /** 加载进度信息 */
49
+ export interface LoadProgress {
50
+ /** 资源类型 */
51
+ type: ResourceType;
52
+ /** 资源名称 */
53
+ name: string;
54
+ /** 当前阶段 */
55
+ stage: 'resolving' | 'loading' | 'parsing' | 'registering';
56
+ /** 进度百分比 (0-100) */
57
+ percent: number;
58
+ }
59
+ /** 默认超时时间(毫秒) */
60
+ export declare const DEFAULT_TIMEOUT = 30000;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Remote Module
3
+ * 远程资源加载模块统一导出
4
+ */
5
+ export * from './core';
6
+ export * from './state';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Remote State Module
3
+ * 远程资源状态管理模块导出
4
+ */
5
+ export { LoadingStateManager, LoadingStatus, loadingState, type ResourceState, type StateChangeListener, } from './loading-state';
6
+ export { ResourceRegistry, resourceRegistry, type LoadedResource } from './resource-registry';
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Loading State Manager
3
+ * 远程资源加载状态管理器
4
+ */
5
+ import type { ResourceType } from '../core/errors';
6
+ import { LoadingStatus } from '../core/types';
7
+ export { LoadingStatus };
8
+ /** 资源状态条目 */
9
+ export interface ResourceState {
10
+ /** 资源类型 */
11
+ type: ResourceType;
12
+ /** 资源名称(包名) */
13
+ name: string;
14
+ /** 加载状态 */
15
+ status: LoadingStatus;
16
+ /** 进度百分比 (0-100) */
17
+ progress?: number;
18
+ /** 错误信息 */
19
+ error?: Error;
20
+ /** 加载完成时间 */
21
+ loadedAt?: number;
22
+ }
23
+ /** 状态变化监听器 */
24
+ export type StateChangeListener = (states: Map<string, ResourceState>) => void;
25
+ /**
26
+ * 加载状态管理器
27
+ * 使用 MobX 管理远程资源的加载状态
28
+ */
29
+ export declare class LoadingStateManager {
30
+ /** 资源状态映射 */
31
+ private accessor states;
32
+ /** 状态变化监听器 */
33
+ private listeners;
34
+ /**
35
+ * 是否有资源正在加载
36
+ */
37
+ get isLoading(): boolean;
38
+ /**
39
+ * 获取所有正在加载的资源
40
+ */
41
+ get loadingResources(): ResourceState[];
42
+ /**
43
+ * 获取所有错误
44
+ */
45
+ get errors(): ResourceState[];
46
+ /**
47
+ * 获取所有已加载的资源
48
+ */
49
+ get loadedResources(): ResourceState[];
50
+ /**
51
+ * 获取指定类型的加载状态
52
+ */
53
+ isTypeLoading(type: ResourceType): boolean;
54
+ /**
55
+ * 获取资源状态
56
+ */
57
+ getState(key: string): ResourceState | undefined;
58
+ /**
59
+ * 更新资源状态
60
+ */
61
+ updateState(key: string, state: Partial<ResourceState>): void;
62
+ /**
63
+ * 开始加载资源
64
+ */
65
+ startLoading(key: string, type: ResourceType, name: string): void;
66
+ /**
67
+ * 更新加载进度
68
+ */
69
+ updateProgress(key: string, progress: number): void;
70
+ /**
71
+ * 标记加载完成
72
+ */
73
+ markLoaded(key: string): void;
74
+ /**
75
+ * 标记加载错误
76
+ */
77
+ markError(key: string, error: Error): void;
78
+ /**
79
+ * 清除资源状态
80
+ */
81
+ clearState(key: string): void;
82
+ /**
83
+ * 清除所有状态
84
+ */
85
+ clearAll(): void;
86
+ /**
87
+ * 等待所有资源加载完成
88
+ */
89
+ waitForAll(timeout?: number): Promise<void>;
90
+ /**
91
+ * 等待指定类型资源加载完成
92
+ */
93
+ waitForType(type: ResourceType, timeout?: number): Promise<void>;
94
+ /**
95
+ * 订阅状态变化
96
+ */
97
+ subscribe(listener: StateChangeListener): () => void;
98
+ /**
99
+ * 等待条件满足
100
+ */
101
+ private waitFor;
102
+ /**
103
+ * 通知所有监听器
104
+ */
105
+ private notifyListeners;
106
+ }
107
+ /** 导出单例 */
108
+ export declare const loadingState: LoadingStateManager;
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Resource Registry
3
+ * 已加载资源注册表
4
+ */
5
+ import type { ResourceType } from '../core/errors';
6
+ /** 已加载资源条目 */
7
+ export interface LoadedResource<T = unknown> {
8
+ /** 资源类型 */
9
+ type: ResourceType;
10
+ /** 资源名称(包名) */
11
+ name: string;
12
+ /** 版本号 */
13
+ version: string;
14
+ /** UMD 全局变量名 */
15
+ globalName: string;
16
+ /** 资源数据 */
17
+ data: T;
18
+ /** 加载完成时间 */
19
+ loadedAt: number;
20
+ }
21
+ /**
22
+ * 资源注册表
23
+ * 管理已加载的远程资源
24
+ */
25
+ export declare class ResourceRegistry {
26
+ /** 物料资源 */
27
+ private accessor materials;
28
+ /** 设置器资源 */
29
+ private accessor setters;
30
+ /**
31
+ * 获取所有物料数量
32
+ */
33
+ get materialCount(): number;
34
+ /**
35
+ * 获取所有设置器数量
36
+ */
37
+ get setterCount(): number;
38
+ /**
39
+ * 注册资源
40
+ */
41
+ register<T>(resource: LoadedResource<T>): void;
42
+ /**
43
+ * 获取资源
44
+ */
45
+ get<T>(type: ResourceType, name: string): LoadedResource<T> | undefined;
46
+ /**
47
+ * 检查资源是否已加载
48
+ */
49
+ has(type: ResourceType, name: string): boolean;
50
+ /**
51
+ * 卸载资源
52
+ */
53
+ unload(type: ResourceType, name: string): boolean;
54
+ /**
55
+ * 获取所有资源
56
+ */
57
+ getAll(type?: ResourceType): LoadedResource[];
58
+ /**
59
+ * 获取所有物料名称
60
+ */
61
+ getMaterialNames(): string[];
62
+ /**
63
+ * 获取所有设置器名称
64
+ */
65
+ getSetterNames(): string[];
66
+ /**
67
+ * 清除指定类型的所有资源
68
+ */
69
+ clearType(type: ResourceType): void;
70
+ /**
71
+ * 清除所有资源
72
+ */
73
+ clearAll(): void;
74
+ /**
75
+ * 获取资源映射
76
+ */
77
+ private getMap;
78
+ }
79
+ /** 导出单例 */
80
+ export declare const resourceRegistry: ResourceRegistry;