/** * 存储适配器工厂类 * 用于创建不同类型的存储适配器实例,支持插件化扩展 */ import { StorageAdapter, StorageConfig } from '../interfaces/StorageAdapter'; /** * 内置存储类型枚举 */ export declare enum StorageType { MySQL = "mysql", MongoDB = "mongodb", PostgreSQL = "postgresql", SQLite = "sqlite", FileSystem = "fileSystem", Memory = "memory", Redis = "redis", AWS_S3 = "awsS3" } /** * 存储适配器注册器接口 */ export interface StorageAdapterCreator { /** * 创建存储适配器实例的方法 * @returns 存储适配器实例 */ create(): any; } /** * 存储工厂类 - 支持插件化扩展 */ export declare class StorageFactory { private static adapterRegistry; /** * 注册存储适配器创建器 * @param type 存储类型标识 * @param creator 适配器创建器实现 */ static registerAdapter(type: string, creator: StorageAdapterCreator): void; /** * 注销存储适配器创建器 * @param type 存储类型标识 * @returns 是否成功注销 */ static unregisterAdapter(type: string): boolean; /** * 获取所有已注册的存储类型 * @returns 已注册的存储类型数组 */ static getRegisteredTypes(): string[]; /** * 创建存储适配器实例 * @param type 存储类型标识 * @returns 存储适配器实例 * @throws Error 当未找到对应类型的适配器时抛出错误 */ static createAdapter(type: string | StorageType): StorageAdapter; /** * 根据配置创建并初始化存储适配器实例 * @param config 存储配置 * @returns Promise 初始化后的存储适配器实例 */ static createAndInitializeAdapter(config: StorageConfig): Promise; /** * 检查存储类型是否已注册 * @param type 存储类型标识 * @returns 是否已注册 */ static isTypeRegistered(type: string): boolean; }