export interface DownloadResults {
    successful: string[];
    failed: Array<{
        operation: string;
        error: string;
    }>;
    skipped: string[];
    totalDuration: number;
    guidProcessed: string;
    logFilePath?: string;
}
export interface DownloaderConfig {
    onOperationStart?: (operationName: string, guid: string) => void;
    onOperationComplete?: (operationName: string, guid: string, success: boolean) => void;
}
export declare class Downloader {
    private config;
    constructor(config?: DownloaderConfig);
    /**
     * Execute all operations for a single GUID
     */
    guidDownloader(guid: string): Promise<DownloadResults>;
    /**
     * Orchestrate multiple GUIDs concurrently (DEFAULT METHOD)
     */
    instanceOrchestrator(): Promise<DownloadResults[]>;
    /**
     * Execute specific data elements for a GUID
     */
    private downloadDataElements;
    /**
     * Reset orchestrator state
     */
    reset(): void;
    /**
     * Update configuration
     */
    updateConfig(config: Partial<DownloaderConfig>): void;
}
