export interface UploadProgress { uploadId: string; fileName: string; totalSize: number; bytesUploaded: number; chunksCompleted: number; totalChunks: number; percent: number; status: 'initializing' | 'uploading' | 'completing' | 'completed' | 'error' | 'paused' | 'aborted'; error?: string; filePath?: string; } export type ProgressCallback = (progress: UploadProgress) => void; export interface UploaderOptions { maxParallel?: number; desiredChunkSize?: number; maxRetries?: number; chunkTimeoutMs?: number; } export interface UploadApiClient { get(url: string, config?: any): Promise<{ data: T; }>; post(url: string, data?: any, config?: any): Promise<{ data: T; }>; put(url: string, data?: any, config?: any): Promise<{ data: T; }>; } /** * Chunked file uploader with: * - Adaptive chunk sizing based on connection speed * - Configurable parallel uploads (auto-reduced on slow networks) * - Automatic retry with exponential back-off * - Pause / resume support * - Real-time progress callbacks */ export declare class ChunkedUploader { private file; private onProgress; private maxParallel; private desiredChunkSize; private maxRetries; private chunkTimeoutMs; private uploadId; private chunkSize; private totalChunks; private abortControllers; private stopped_; private paused_; private bytesUploadedSoFar; private chunksCompletedSoFar; private readonly uploadPath; private readonly apiClient; constructor(file: File, onProgress: ProgressCallback, apiClient: UploadApiClient, opts?: UploaderOptions | number); private getClient; upload(): Promise; resume(uploadId: string): Promise; pause(): void; abort(): Promise; private killControllers; private initSession; private uploadAllChunks; private uploadOneChunk; private finalizeSession; private emit; } //# sourceMappingURL=chunkedUploader.d.ts.map