import { KnowhowSimpleClient } from "./services/KnowhowClient";
import { S3Service } from "./services/S3";
export declare const DEFAULT_BATCH_SIZE = 5;
export interface FileSyncOptions {
    upload?: boolean;
    download?: boolean;
    apiUrl?: string;
    configPath?: string;
    dryRun?: boolean;
}
export declare function batchRun<T>(tasks: (() => Promise<T>)[], batchSize?: number): Promise<T[]>;
export declare function listFilesRecursively(dir: string): string[];
export declare function fileSync(options?: FileSyncOptions): Promise<void>;
export declare function downloadFile(client: KnowhowSimpleClient, s3Service: S3Service, remotePath: string, localPath: string, dryRun: boolean, hashes?: any): Promise<void>;
export declare function uploadFile(client: KnowhowSimpleClient, s3Service: S3Service, remotePath: string, localPath: string, dryRun: boolean, hashes?: any): Promise<void>;
export declare function uploadDirectory(client: KnowhowSimpleClient, s3Service: S3Service, remotePath: string, localPath: string, dryRun: boolean): Promise<number>;
export declare function downloadDirectory(client: KnowhowSimpleClient, s3Service: S3Service, remotePath: string, localPath: string, dryRun: boolean): Promise<number>;
