import { DynamicModule } from '@nestjs/common'; import { IFileProcessor } from './interfaces/file-processor.interface'; import { LocalStorageOptions, S3StorageOptions } from './interfaces/storage-provider.interface'; import { CustomFileTypes } from './interfaces/custom-file-type.interface'; import { MaliciousDetectorOptions } from './services/malicious-file-detector.service'; /** * 文件上传模块配置选项(增强版) */ export interface FileUploadModuleOptions { /** 默认配置 */ defaults?: { maxSize?: number; types?: string[]; scan?: boolean | 'auto'; }; /** 安全配置 */ security?: { /** 病毒扫描配置 */ virusScan?: { enabled: boolean; endpoint?: string; }; /** 速率限制 */ rateLimit?: { max: number; window: number; }; }; /** 存储配置 */ storage?: { /** 默认存储提供者 */ default?: 'local' | 's3' | 'oss' | 'minio'; /** 本地存储配置 */ local?: LocalStorageOptions; /** S3 存储配置 */ s3?: S3StorageOptions; /** OSS 存储配置 (待实现) */ oss?: any; /** MinIO 存储配置 (待实现) */ minio?: any; }; /** 自定义文件类型 */ customFileTypes?: CustomFileTypes; /** 是否启用文件签名验证(默认 true) */ validateSignature?: boolean; /** 签名验证配置 */ signatureValidation?: { maxReadBytes?: number; strict?: boolean; tolerance?: number; }; /** 恶意文件检测配置(增强) */ maliciousDetection?: MaliciousDetectorOptions; /** TypeORM 相关配置 */ database?: { /** 是否自动创建表(默认 true) */ autoCreateTable?: boolean; /** 数据库模式 */ schema?: string; /** 表前缀 */ tablePrefix?: string; }; /** 自定义处理器 */ processors?: Array IFileProcessor>; } /** * 异步配置选项 */ export interface FileUploadModuleAsyncOptions { useFactory: (...args: any[]) => Promise | FileUploadModuleOptions; inject?: any[]; } /** * 文件上传模块(增强版) */ export declare class FileUploadModule { /** * 同步配置模块 */ static forRoot(options?: FileUploadModuleOptions): DynamicModule; /** * 异步配置模块 */ static forRootAsync(asyncOptions: FileUploadModuleAsyncOptions): DynamicModule; /** * 创建存储提供者 */ private static createStorageProviders; }