import { ParallelFileUploaderOptions } from './type';
import { type PerformanceData } from './modules';
/**
 * 并行文件上传器类
 *
 * 主要特性：
 * - 支持多文件并发上传
 * - 大文件自动分片上传
 * - 使用Web Worker实现多线程处理
 * - 支持断点续传
 * - 自动失败重试
 * - 完整的事件回调系统
 * - 速度限制
 * - 性能监控
 * - 队列持久化
 *
 * @example
 * ```typescript
 * const uploader = new ParallelFileUploader({
 *   maxConcurrentFiles: 3,
 *   chunkSize: 5 * 1024 * 1024, // 5MB
 *   enableSpeedLimit: true,
 *   maxUploadSpeed: 1024 * 1024, // 1MB/s
 *   enablePerformanceMonitor: true,
 *   enableQueuePersistence: true,
 *   onFileProgress: (fileInfo) => {
 *     console.log(`${fileInfo.fileName}: ${fileInfo.progress}%`)
 *   }
 * })
 *
 * uploader.addFiles(fileList)
 * ```
 */
export declare class ParallelFileUploader {
    private fileManager;
    private chunkManager;
    private speedLimiter;
    private performanceMonitor;
    private queuePersistence;
    private workerManager;
    private maxConcurrentFiles;
    private maxConcurrentChunks;
    private maxRetries;
    private uploadPartUrl;
    private onFileAdded?;
    private onFileProgress?;
    private onFileSuccess?;
    private onFileError?;
    private onFileComplete?;
    private onAllComplete?;
    private onFileRejected?;
    private onPerformanceUpdate?;
    private sendFileInfoToServer?;
    private sendFilePartToServer?;
    private sendFileCompleteToServer?;
    private getFilePartsFromServer?;
    private sendPauseToServer?;
    private performanceTimer?;
    /**
     * 创建并行文件上传器实例
     * @param options 配置选项
     */
    constructor(options?: ParallelFileUploaderOptions);
    /**
     * 添加文件到上传队列
     */
    addFiles(files: File[] | FileList): void;
    /**
     * 处理文件队列
     */
    private processFileQueue;
    /**
     * 初始化文件上传
     */
    private initFileUpload;
    /**
     * 开始上传文件
     */
    private uploadFile;
    /**
     * 处理分片队列
     */
    private processChunkQueue;
    /**
     * 使用Web Worker上传分片
     */
    private uploadChunkWithWorker;
    /**
     * 直接在主线程上传分片
     */
    private uploadChunkDirect;
    /**
     * 处理Worker消息
     */
    private handleWorkerMessage;
    /**
     * 发送Worker处理过的数据
     */
    private sendProcessedChunk;
    /**
     * 处理分片上传成功
     */
    private handleChunkSuccess;
    /**
     * 处理分片上传错误
     */
    private handleChunkError;
    /**
     * 更新文件上传进度
     */
    private updateFileProgress;
    /**
     * 完成文件上传
     */
    private completeFileUpload;
    /**
     * 处理文件错误
     */
    private handleFileError;
    /**
     * 清理文件资源
     */
    private cleanupFile;
    /**
     * 保存队列状态
     */
    private saveQueueState;
    /**
     * 加载持久化队列
     */
    private loadPersistedQueue;
    /**
     * 启动性能监控
     */
    private startPerformanceMonitoring;
    /**
     * 暂停指定文件的上传
     */
    pauseFile(fileId: string): void;
    /**
     * 暂停所有文件的上传
     */
    pauseAll(): void;
    /**
     * 恢复指定文件的上传
     */
    resumeFile(fileId: string): void;
    /**
     * 恢复所有暂停的文件上传
     */
    resumeAll(): void;
    /**
     * 取消指定文件的上传
     */
    cancelFile(fileId: string): void;
    /**
     * 取消所有文件的上传
     */
    cancelAll(): void;
    /**
     * 获取上传状态统计
     */
    getStats(): {
        queued: number;
        active: number;
        completed: number;
        failed: number;
        paused: number;
    };
    /**
     * 获取性能数据
     */
    getPerformanceData(): PerformanceData;
    /**
     * 设置速度限制
     */
    setSpeedLimit(bytesPerSecond: number, enabled?: boolean): void;
    /**
     * 启用/禁用性能监控
     */
    setPerformanceMonitoring(enabled: boolean): void;
    /**
     * 启用/禁用队列持久化
     */
    setQueuePersistence(enabled: boolean): void;
    /**
     * 销毁上传器实例
     */
    destroy(): void;
    /**
     * 计算文件MD5值（静态方法）
     */
    static calculateFileMD5(file: File, chunkSize?: number, onProgress?: (progress: number) => void): Promise<string>;
    /**
     * 获取性能指标（兼容性方法）
     * @deprecated 使用 getPerformanceData() 代替
     */
    getPerformanceMetrics(): {
        workerPoolSize: number;
        activeConnections: number;
        averageSpeed: number;
        currentSpeed: number;
        memoryUsage?: any;
    };
    /**
     * 获取队列统计（兼容性方法）
     * @deprecated 使用 getStats() 代替
     */
    getQueueStats(): {
        total: number;
        active: number;
        queued: number;
        completed: number;
        failed: number;
    };
}
//# sourceMappingURL=index.d.ts.map