/** 文件状态枚举 */ export declare enum FileStatus { UPLOADING = "uploading", PROCESSING = "processing", READY = "ready", FAILED = "failed", DELETED = "deleted", QUARANTINED = "quarantined" } export interface FileEntity { /** 唯一标识符 */ id: string; /** 原始文件名 */ originalName: string; /** 存储的文件名(经过安全处理) */ fileName: string; /** MIME类型 */ mimeType: string; /** 文件大小(字节) */ size: number; /** 文件哈希值(SHA-256) */ hash: string; /** 使用的存储提供者 */ storage: string; /** 存储路径/键 */ path: string; /** 公开访问URL(如果可公开访问) */ url?: string; /** 文件元数据 */ metadata?: FileEntityMetadata; /** 上传者ID */ uploadedBy?: string; /** 上传时间 */ uploadedAt: Date; /** 文件状态 */ status: FileStatus; /** 是否已删除(软删除) */ isDeleted?: boolean; /** 删除时间 */ deletedAt?: Date; /** 文件版本号 */ version?: number; /** 标签 */ tags?: string[]; /** 父级文件ID(用于版本管理) */ parentFileId?: string; /** 所属文件集合ID */ collectionId?: string; /** 访问次数 */ accessCount?: number; /** 最后访问时间 */ lastAccessedAt?: Date; /** 过期时间 */ expiresAt?: Date; /** 存储提供商返回的额外信息 */ providerMetadata?: Record; } /** 文件实体元数据 */ export interface FileEntityMetadata { /** 文件类型分类 */ category?: FileCategory; /** 文件扩展名 */ extension?: string; /** 文件编码 */ encoding?: string; /** 宽度(适用于图片/视频) */ width?: number; /** 高度(适用于图片/视频) */ height?: number; /** 持续时间(适用于音频/视频) */ duration?: number; /** 页数(适用于文档) */ pages?: number; /** DPI(适用于图片) */ dpi?: number; /** 色彩模式(适用于图片) */ colorMode?: string; /** 压缩率 */ compressionRatio?: number; /** EXIF信息(适用于图片) */ exif?: Record; /** 自定义元数据 */ custom?: Record; } /** 文件分类 */ export declare enum FileCategory { IMAGE = "image", VIDEO = "video", AUDIO = "audio", DOCUMENT = "document", SPREADSHEET = "spreadsheet", PRESENTATION = "presentation", ARCHIVE = "archive", CODE = "code", TEXT = "text", BINARY = "binary", OTHER = "other" } /** 文件集合 */ export interface FileCollection { /** 集合ID */ id: string; /** 集合名称 */ name: string; /** 集合描述 */ description?: string; /** 包含的文件列表 */ files?: FileEntity[]; /** 集合所有者 */ ownerId?: string; /** 创建时间 */ createdAt?: Date; /** 更新时间 */ updatedAt?: Date; /** 是否公开 */ isPublic?: boolean; /** 访问密码 */ password?: string; /** 下载限制 */ downloadLimit?: number; /** 过期时间 */ expiresAt?: Date; /** 集合配置 */ settings?: CollectionSettings; } /** 集合设置 */ export interface CollectionSettings { /** 是否允许添加文件 */ allowAddFiles?: boolean; /** 是否允许删除文件 */ allowDeleteFiles?: boolean; /** 是否允许下载 */ allowDownload?: boolean; /** 是否需要密码访问 */ requirePassword?: boolean; /** 生成ZIP包 */ generateZip?: boolean; /** 最大文件数 */ maxFiles?: number; /** 最大总大小 */ maxTotalSize?: number; }