/**
 * Enhanced Upload Service - Complete Integration
 * Implements the full upload flow: Azure files → JSON + URLs → TestDino API
 */
import type { Config } from '../config';
import { ReportUploadResponse } from './api';
/**
 * Service to upload Playwright report and metadata to TestDino
 */
export declare class UploadService {
    private readonly config;
    private readonly apiClient;
    private readonly sasService;
    constructor(config: Config);
    /**
     * Get report directory from JSON file path
     */
    private getReportDirectory;
    /**
     * Create clean blob path for JSON attachments maintaining directory structure
     */
    private createJsonAttachmentPath;
    /**
     * Main upload orchestration method
     * Flow: Collect Metadata → Upload Azure Files → Send JSON + URLs to API
     */
    uploadReport(jsonPath: string, htmlDir?: string, traceDir?: string): Promise<ReportUploadResponse>;
    /**
     * Collect all metadata (git, ci, system, test)
     */
    private collectMetadata;
    /**
     * Extract test configuration metadata from Playwright report
     */
    private extractTestMetadata;
    /**
     * Extract reporter configuration from Playwright config
     */
    private extractReporterConfig;
    /**
     * Upload HTML, trace files, and attachments to Azure storage with proper directory structure
     */
    private uploadToAzure;
    /**
     * Build the final payload combining base report + metadata + Azure URLs
     * This must match the exact structure from sample-report.json
     */
    private buildFinalPayload;
    /**
     * Upload with graceful fallback for failed Azure uploads
     */
    uploadWithFallback(jsonPath: string, htmlDir?: string, traceDir?: string): Promise<ReportUploadResponse>;
}
//# sourceMappingURL=upload.d.ts.map