import { Http } from "../../utils/http"; /** * 视频号分片上传配置 */ interface UploadConfig { chunkSize?: number; concurrentLimit?: number; singleFileSize?: number; http?: Http; timeout?: number; retries?: number; retryDelay?: number; } /** * 上传进度回调 */ type ProgressCallback = (progress: { uploadedChunks: number; totalChunks: number; percent: number; speed?: number; }) => void; /** * 视频号分片上传器 * 参考前端代码逻辑实现 */ export declare class VideoChannelUploader { private chunkSize; private concurrentLimit; private singleFileSize; private http; private reqOptions; private uploadTaskId; private partInfo; private md5; private chunkCount; private uploadedChunks; private startTime; private uploadSpeed; private speedRecords; private speedInterval?; constructor(config?: UploadConfig); /** * 计算 Buffer MD5(前 5MB) */ private calculateMd5; /** * 计算分片 MD5(完整分片) */ private calculateChunkMd5; /** * 生成 UUID */ private generateUUID; /** * 获取图片尺寸 */ private getImageSize; /** * 读取文件为 Buffer */ private readFile; /** * 获取上传认证参数(UploadID) */ private getUploadId; /** * 上传单个分片 */ private uploadChunk; /** * 确认分片上传(用于断点续传检查) */ private confirmChunks; /** * 完成上传 */ private completeUpload; /** * 并发控制执行器 */ private asyncPool; /** * 开始上传(核心方法) */ upload(imagePath: string, uin: number, authKey: string, options?: { onProgress?: ProgressCallback; transFlag?: string; }): Promise<{ downloadUrl: string; width: number; height: number; fileSize: number; md5: string; }>; /** * 更新进度 */ private updateProgress; /** * 启动速度监控 */ private startSpeedWatch; /** * 停止速度监控 */ private stopSpeedWatch; } export {};