import { FileProgress, FileStatus, ScannedFile, TaskError, TaskProgress, TaskStatus, TaskSummary, UploadTaskOptions } from '../create-task/types'; export declare type FastUploadTaskOptions = UploadTaskOptions & { /** * Callback throttle interval for task progress updates. * Default: 120ms */ progressThrottleMs?: number; /** * Maximum number of pending scan batches in memory. * Default: 32 */ maxScanQueueSize?: number; /** * Number of files in a scan batch. * Default: 512 */ scanBatchSize?: number; /** * Yield interval while scanning large FileList. * Default: 12ms */ scanTimeSliceMs?: number; /** * Prefer uploading small files first. * Default: true */ preferSmallFilesFirst?: boolean; /** * Dynamic floor for fileInfo concurrency. * Default: 48 */ fileInfoConcurrencyMin?: number; /** * Dynamic cap for fileInfo concurrency. * Default: 256 */ fileInfoConcurrencyMax?: number; /** * Dynamic floor for upload concurrency. * Default: 24 */ uploadConcurrencyMin?: number; /** * Dynamic cap for upload concurrency. * Default: 128 */ uploadConcurrencyMax?: number; }; export interface ScannedFileBatch { files: ScannedFile[]; totalScanned: number; done: boolean; } export interface ScanSummary { scannedFiles: number; emptyDirectories: number; filteredFiles: number; totalBytes: number; } export interface PipelineStats { startAt: number; scanEndAt: number; taskStartAt: number; endAt?: number; scannedFiles: number; acceptedFiles: number; smallFiles: number; largeFiles: number; totalBytes: number; } export interface FastTaskLike { pause(): void; resume(): void; cancel(): void; getProgress(): TaskProgress; getTaskId(): number; getStatus(): TaskStatus; getAllFiles(): FileProgress[]; getAllFilesRef(): FileProgress[]; getFile(requestId: number): FileProgress | undefined; } export declare type TaskLifecycleCallbacks = { onProgress?: (progress: TaskProgress) => void; onFileStart?: (file: FileProgress) => void; onFileComplete?: (file: FileProgress) => void; onComplete?: (summary: TaskSummary) => void; onError?: (error: TaskError) => void; }; export { FileStatus, TaskStatus };