/**
 * Concurrent operations utility for S3 file transfers
 */
import { S3ClientWrapper } from '../s3-client';
import { FileOperation, ConcurrentProgress } from '../types';
export interface ConcurrentOperationOptions {
    concurrency: number;
    onProgress?: (progress: ConcurrentProgress) => void;
    dryRun?: boolean;
}
export interface ConcurrentOperationResult {
    completed: FileOperation[];
    failed: Array<{
        operation: FileOperation;
        error: Error;
    }>;
    totalBytes: number;
}
/**
 * Execute file operations concurrently with controlled concurrency
 */
export declare function executeConcurrentOperations(client: S3ClientWrapper, operations: FileOperation[], options: ConcurrentOperationOptions): Promise<ConcurrentOperationResult>;
/**
 * Create file operations for upload directory
 */
export declare function createUploadOperations(sourceDir: string, bucket: string, keyPrefix: string, files: string[]): FileOperation[];
/**
 * Create file operations for download directory
 */
export declare function createDownloadOperations(bucket: string, objects: Array<{
    key: string;
    size: number;
}>, keyPrefix: string, destination: string): FileOperation[];
//# sourceMappingURL=concurrent.d.ts.map